package filter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.GregorianCalendar;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import org.apache.tomcat.dbcp.pool.impl.GenericKeyedObjectPool.Config;
/**
* Servlet Filter implementation class SimpleFilter
*/
@WebFilter(
urlPatterns ={"*.jsp"},
initParams ={
@WebInitParam(name = "filename", value ="c:\\logs\\site.log")
}
)
public class SimpleFilter implements Filter {
PrintWriter writer;
/**
* Default constructor.
*/
public SimpleFilter() {
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
writer.close();
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
GregorianCalendar now = new GregorianCalendar();
writer.printf("현재일시 : %TF %TT %n", now, now);
String clientAddr = request.getRemoteAddr();
writer.printf("클라이언트 주소 : %s %n", clientAddr);
// pass the request along the filter chain
chain.doFilter(request, response);
String contentType = response.getContentType();
writer.printf("문서의 컨테트 타입 : %s %n", contentType);
writer.println("----------------------------------------------");
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
String filename = fConfig.getInitParameter("filename");
if(filename==null) throw new ServletException("로그 파일의 이름을 찾을 수 없습니다.");
try {
writer = new PrintWriter(new FileWriter(filename, true), true);
} catch (IOException e) {
// TODO Auto-generated catch block
throw new ServletException("로그 파일을 열 수 없습니다.");
}
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
System.out.println("이것은 JSP 페이지 안에서 출력하는 메시지입니다.");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
이것은 필터 테스트를 위해 만들어진 JSP 페이지입니다.
</body>
</html>
로그 파일에 기록되는 것을 확인할 수 있다.
'JSP' 카테고리의 다른 글
응답 래퍼 클래스 (0) | 2013.03.24 |
---|---|
래퍼(Wrapper) 클래스 실습 (0) | 2013.03.22 |
필터(filter) 클래스 (0) | 2013.03.22 |
부모 자식 관계를 갖는 커스텀 액션 (0) | 2013.03.22 |
변수를 지원하는 커스텀 액션을 만드는 태그 클래스 (0) | 2013.03.22 |