📒 개발기록/JSP 프로젝트
[JSP][도서쇼핑몰 프로젝트]#9.로그 기록하기
초코붕붕
2023. 2. 10. 08:00
728x90
안녕하세요! 오늘은 페이지를 실행했을 때
로그가 기록되는 것을 만드려고 합니다.
그럼 진행순서부터 살펴볼까요?
📋순서
1. Filter인터페이스 클래스 작성
2. web.xml파일에 필터 구성
3. 결과
#01. Filter인터페이스의 구현 클래스 작성
/src/ 폴더에 filter패키지를 만들어 준 후 LogFilter.java파일을 생성해주고 다음과 같이 코드를 작성하여 주면 되는데요.
필터를 초기화 하도록 init()메소드를 작성하여 줍니다.
public void init(FilterConfig config) throws ServletException{
System.out.println("BOOK 초기화....");
}
필터를 리소스에 적용하도록 doFilter()메소드를 작성하여 줍니다.
public void doFilter(ServletRequest request,ServletResponse response,
FilterChain chain) throws java.io.IOException, ServletException {
System.out.println(" 접속한 클라이언트 IP : " + request.getRemoteAddr());
long start = System.currentTimeMillis();
System.out.println(" 접근한 URL 경로 : " + getURLPath(request));
System.out.println(" 요청 처리 시작 시각 : " + getCurrentTime());
chain.doFilter(request,response);
long end = System.currentTimeMillis();
System.out.println(" 요청 처리 종료 시각 : " + getCurrentTime());
System.out.println(" 요청 처리 소요 시간 : " + (end-start)+ "ms ");
System.out.println("=======================================================");
}
필터를 종료하기 전에 호출하도록 destpry()메소드를 작성합니다.
public void destroy( ){
}
현재 접속한 URL을 얻어오는 사용자 정의 메소드인 getURLPath()작성하여 줍니다.
private String getURLPath(ServletRequest request) {
HttpServletRequest req;
String currentPath="";
String queryString="";
if(request instanceof HttpServletRequest){
req = (HttpServletRequest)request;
currentPath = req.getRequestURI();
queryString = req.getQueryString();
queryString = queryString == null ? "" : "?" + queryString;
}
return currentPath+queryString;
}
현재 시간을 얻어오는 사용자 정의 메소드인 getCurrentTime()작성합니다.
private String getCurrentTime() {
DateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
return formatter.format(calendar.getTime());
}
반응형
#02. web.xml파일에 필터 구성하기
web.xml에 LogFilter와 Filter인터페이스를 구현한 자바 클래스 LogFilter을 설정하도록 <filter>요소를 작성하여 줍니다. 필터 이름LogFilter와 요청 URL 패턴 /*을 설정하도록 <filter-mapping>요소를 작성합니다.
<filter>
<filter-name>LogFilter</filter-name>
<filter-class>filter.LogFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LogFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
#03. 결과
실행을 시키면 콘솔창에 로그 기록들이 뜨는 것을 확인할 수 있습니다.
반응형