zoukankan      html  css  js  c++  java
  • Filter应用之-验证用户是否已经登录

    过滤器:

    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>
  • 相关阅读:
    mysql索引
    数据库修复
    数据库取值 三级分类后台遍历
    创建数据库!
    mysql按条件 导出sql
    nodejs 简单安装环境
    C++ 性能剖析 (一)
    C++ 性能剖析 (二):值语义 (value semantics)
    JavaScript Nested Function 的时空和身份属性
    C++ Reference 的“三位一体”诠释
  • 原文地址:https://www.cnblogs.com/lihaoyang/p/7381539.html
Copyright © 2011-2022 走看看