원리 : 방문 페이지뿐만 아니라, 다른 페이지는 통합 식별 기호 가상 경로입니다. 이러한 사용 / 로그인 등
. 모든 가상 경로를 차단합니다 필터는 / 사용자 페이지로 시작합니다. 있는지 확인 성공적인 컨텐츠 후이 도착하지 말았어야 세션을 해당 필터 페이지 요청. 그렇지 않은 경우, 방문 페이지로 리디렉션합니다. 그래서, 증명하면 이미 doFilter 방법 filterChain의 구현을 착륙했습니다.
필터代码:
공용 클래스 Myfilter 구현 필터 {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//先转为HttpServletRequest,HttpServletResponse
HttpServletRequest request=(HttpServletRequest)servletRequest;
HttpServletResponse response=(HttpServletResponse)servletResponse;
//如果前面已经登陆过,在session里赋值了,该页面可以执行下一个servlet,如果没有先重定向到登陆页面!
if (request.getSession().getAttribute("loginUser")==null){
response.sendRedirect(request.getContextPath()+"/login.jsp");
}else {
filterChain.doFilter(request,response);
}
}
@Override
public void destroy() {
}
}
착륙 성공의 세션 내용에 코드를 넣어 :
마지막으로, 필터의 web.xml 구성 파일에 잊지 마세요. 또는 직접 주석을 표시 @WebFilter ( "/ 사용자")와
음, 단순히 필터 검증이 완료 될 때 사용합니다.