본문 바로가기
[LANG]/- HTML&CSS

[JSP] Fillter 필터

by Hapco 2022. 6. 1.
728x90
반응형

필터는 서블릿과 비슷하게 생겻다..

그래서 상속을 받아줘야하며 재정의도해줘야하고 url패턴도 지정해줘야한다

@WebFilter (urlPatterns = "/index.jsp")
public class TestFilter implements Filter{
@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
 throws IOException, ServletException {

}

Filter (필터)

생성절차

1.상속을 통한 자격획득 javax.servlet.Filter / implements Filter

2.등록 @webFilter를 통한 등록 및 주소설정

3.메소드 재정의를 통하여 수행할 내용을 작성 (do filter메소드)

 

-do filter 메소드는 필터에더 수행할 작업을 정의하는 메소드

 

-servletRequest request

-httpservletRequest의 상위형태

-실제 사용할때는 ServletRequest request 유형의 객체가 들어간다.

 

-ServletRespnese respnse

-httpServeltResponese의 상위형태

-실제 사용할때는 httpServletRespnoese 유형의 객체가 들어간다.

-FilterChain chain : 필터끼리 서로 연결되어 있는 연결정보를 의미하며, 이를 이용하여 통과 명령을 사용할 수 있다.

- 다음으로 이동하여 계속 진행하려면 사용자가 전달한 요청(request) ,응답(response)이 유지되어야한다

- 매개변수에 인자로 넣어서 전달해준다(유지시켜준다)

★★결론★★ 서블릿에서 하던 작업을 filter에서 하고싶다면 request와 response객체를 다운캐스팅해서 사용한다 !

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		//설치하고 아무런 코드도 작성하지 않으면 필터를 통과할 수 없다.(대상에게 전달되지 않고 차단).
//		System.out.println("테스트필터 실행!");
		
//		//요청을 통과시키고 싶다면 다음 명령을 사용
		chain.doFilter(request, response);
		
		//차단명령 (다운캐스팅 후 진행)
		HttpServletRequest req=(HttpServletRequest)request;
		HttpServletResponse resp=(HttpServletResponse)response;
//		resp.sendError(500);//오류(500)임을 알리고 차단
//		resp.sendRedirect("http://google.com"); //다른 페이지로 재접속  지시 (redirect)
		
		
	}

}

댓글