まとめ @ wiki
データベースにアクセスログを記録する-PreparedStatementインターフェイス-
最終更新:
shells
-
view
データベースにアクセスログを記録する-PreparedStatementインターフェイス- 【HP】
目次
ソース
accessLog.jsp
<%@ page contentType="text/html; charset=Shift_JIS" import="java.sql.*,java.util.*,java.text.*" %>
<%
Class.forName( "oracle.jdbc.driver.OracleDriver" );
Connection db = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:STS", "ユーザー名", "パスワード" );
PreparedStatement objSql = db.prepareStatement( "INSERT INTO log_rec( url, atime, usr, referer ) VALUES( ?, ?, ?, ? )" ); // 動的にパラメータをセットするプレイスホルダ
SimpleDateFormat objFmt = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
objSql.setString( 1, request.getServletPath() );
objSql.setString( 2, objFmt.format( Calendar.getInstance().getTime() ) );
objSql.setString( 3, request.getHeader( "user-agent" ) );
objSql.setString( 4, request.getHeader( "referer" ) );
objSql.executeUpdate(); // 処理を実行
objSql.close();
db.close();
%>index_accessLog.html
refererに値を入れるためのHTMLファイル
<html>
<head>
<title>accessLog.jspへのリンク</title>
</head>
<body>
accessLog.jspへはコチラ ⇒ <a href="http://localhost:8080/kenshu/IT/JSP_10/accessLog.jsp">accessLog.jsp</a>
</body>
</html>事前準備
DBにテーブル作成create table log_rec( url varchar2(50), atime varchar2(50), usr varchar2(155), referer varchar2(50) );間違って作成してしまったら、削除drop table log_rec;
実行結果
画面上には表示なし
DB内のlog_recにアクセスログが書き込まれる