过滤器:
public class LoginFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //转换成http... HttpServletRequest req = (HttpServletRequest) request; //获取session HttpSession session = req.getSession(); //从Session中获取User if(session.getAttribute("user")==null){ System.err.println("这货还没有登录。。。"); req.getSession().setAttribute("msg", "请先登录"); //重定向到登录 HttpServletResponse resp = (HttpServletResponse)response; resp.sendRedirect(req.getContextPath()+"/index.jsp"); }else{ //放行 chain.doFilter(request, response); } } @Override public void destroy() { } }
web.xml:
<filter> <filter-name>login</filter-name> <filter-class>com.lhy.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>login</filter-name> <url-pattern>/jsps/*</url-pattern> <url-pattern>/view/*</url-pattern> </filter-mapping>
jsp:
<body> <c:choose> <c:when test="${empty sessionScope.name}"> <form name="x" method="post" action="<c:url value='/LoginServlet'/>"> Name:<input type="text" name="name"/><br/> auto: <input type="radio" name="auto" value="-1">不自动登录 <br/> <input type="radio" name="auto" value="1">1天<br/> <input type="radio" name="auto" value="7">1周<br/> <input type="submit"/> </form> </c:when> <c:otherwise> 你已经登录了:${name}<br/> <a href="<c:url value='/LogoutServlet'/>">退出</a> </c:otherwise> </c:choose> </body>