userFilter类
这里给所有的用户设置一个过滤,不能访问所有的页面,除非登录!!
package com.jyuxuan.filter;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class userFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("-------------init-------------");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
if (request.getSession().getAttribute("user") == null) {
request.getSession().setAttribute("result", "请您登录后访问本系统");
servletRequest.getRequestDispatcher("/login.jsp").forward(servletRequest, servletResponse);
} else {
filterChain.doFilter(servletRequest, servletResponse);
}
}
@Override
public void destroy() {
System.out.println("-------------destroy-------------");
}
}
web.xml
一个设置fileter的class位置,一个设置拦截的所有页面,其中有许多设置方法
<filter>
<filter-name>userFilter</filter-name>
<filter-class>com.jyuxuan.filter.userFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>userFilter</filter-name>
<url-pattern>/index.jsp</url-pattern>
<url-pattern>/personal.jsp</url-pattern>
<url-pattern>/postcard.jsp</url-pattern>
<url-pattern>/recycle.jsp</url-pattern>
<url-pattern>/about.jsp</url-pattern>
<url-pattern>/postcard-input.jsp</url-pattern>
</filter-mapping>