0712 - Servlet Filter
- 1) HttpServletConfig --> Servlet 설정정보획득
- 2) HttpServletContext --> Application Scope
- 3) HttpServletRequest --> Request scope
- 4) HttpSession --> Session scope
request.getSession();
request.getSession().getId();
중요1: 필터 클래스는 규약에 따라, 반드시 Filter 인터페이스를 구현해야 한다.
중요2: 필터 클래스의 객체는, Servlet Container가 생성하므로, 기본(=매개변수없는) 생성자를 가져야한다.
- 명시적으로 Oracle Cloud Wallet tnsnames.ora 경로를 지정
static final String driver = "oracle.jdbc.OracleDriver"; static final String jdbcUrl = "jdbc:oracle:thin:@db202106301639_high?TNS_ADMIN=/Users/jinsung/Desktop/opt/OracleCloudWallet/ATP";
- 이 후 service 메소드 내에서 JDBC 드라이버 및 자원 객체를 할당 및 해제해 준다.
- JDBC Driver Spy 연결 설정
static final String log4jdbcDriver = "net.sf.log4jdbc.sql.jdbcapi.DriverSpy";
- 드라이버 로딩 시에
Class.forName(log4jdbcDriver);
try {
//JDBC 드라이버 로딩
Class.forName(driver);
Class.forName(log4jdbcDriver); //DriverSpy 드라이버 로딩
//JDBC 연동코드
Connection conn = DriverManager.getConnection(jdbcUrl, user, pass);
PreparedStatement pstmt = conn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
try(conn; pstmt; rs;){
log.info("conn : " + conn);
log.info("pstmt : " + pstmt);
log.info("rs : " + rs);
while(rs.next()) {
int employeeID = rs.getInt("EMPLOYEE_ID");
String employee = String.format(
"%s",
employeeID);
log.info(employee);
}//while
}//try-with-resources
} catch (Exception e) {
throw new IOException(e);
}//try-catch