• atwiki
  • まとめ @ wiki
  • データベースにアクセスログを記録する-PreparedStatementインターフェイス-

まとめ @ 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にアクセスログが書き込まれる

記事メニュー
ウィキ募集バナー