在web.xml配置filter
<!-- 登錄認證過濾器 -->
<filter>
<filter-name>UserFilter</filter-name>
<filter-class>com.filter.UserFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UserFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>UserFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
后台class
public class UserFilter implements Filter{
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse resp = (HttpServletResponse)response;
HttpServletRequest req = (HttpServletRequest)request;
HttpSession session = req.getSession();
User user = (User)session.getAttribute("user");
String uri = req.getRequestURI();
//簡單判斷緩存中是否有用戶
if(user==null){//沒有用戶
//判斷用戶是否是選擇跳到登錄界面
if(uri.endsWith("login.jsp")||uri.endsWith("login.do")){
chain.doFilter(request, response);
}else{
resp.sendRedirect(req.getContextPath()+"/login.jsp");
}
}else{//有用戶
chain.doFilter(request, response);
}
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
}
首先要在登錄時把user存到session中
