728x90
Filter는 의무는 아니지만 상황에 따라 적용할 수 있다.
package kr.or.ksmart.filter;
import java.io.IOException;
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.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebFilter("/")
public class MyFiter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("/호출");
/*
* HttpServletRequest, HttpServletResponse으로 이미 객체화가 되어있으므로
* ServletRequest, ServletResponse으로 다운 캐스팅 가능
*/
HttpServletRequest rq = (HttpServletRequest) request;
HttpServletResponse re = (HttpServletResponse) response;
String uri = rq.getRequestURI();
String contextPath = rq.getContextPath();
uri = uri.replace(contextPath, "");
if("/".equals(uri)|| "/*.do".equals(uri)) {
re.sendRedirect(rq.getContextPath()+"/main.do");
}else {
/*
* doFilter 메서드는 정상적으로 다음 페이지가 작동 될 경우에만 실행한다. (forward같은 개념인듯)
* (정상적으로 다음 서블릿이 실행되어야 할 경우에만 실행 되도록 코드 작성)
*/
chain.doFilter(request, response);
}
}
public void init(FilterConfig fConfig) throws ServletException {
}
}
반응형
'Backend > JAVA' 카테고리의 다른 글
JAVA 예외 던지기 Throw (0) | 2020.05.20 |
---|---|
JAVA 예외처리하기 RuntimeException (0) | 2020.05.20 |
Connection Pool 설정하기 (0) | 2020.05.14 |
Connection Pool 이론 (0) | 2020.05.14 |
MVC Servlet - controller 작성하기 - 3 (0) | 2020.05.13 |
댓글