• session失效后跳转到登陆页面


    一、编写Filter拦截器类 

     1 package com.pv.utils;
     2 
     3 import java.io.IOException;
     4 import java.io.PrintWriter;
     5 
     6 import javax.servlet.*;
     7 import javax.servlet.http.HttpServletRequest;
     8 import javax.servlet.http.HttpServletResponse;
     9 import javax.servlet.http.HttpSession;
    10 
    11 public class RequestFilter implements Filter  {
    12     private FilterConfig config;
    13     //实现初始化方法
    14     public void init(FilterConfig config){
    15         this.config = config;
    16     }
    17     public void destroy(){
    18         this.config = null;
    19     }
    20     
    21     @Override
    22     public void doFilter(ServletRequest req, ServletResponse res,
    23             FilterChain chain) throws IOException, ServletException {
    24         // TODO Auto-generated method stub
    25         req.setCharacterEncoding("utf-8");        
    26         HttpServletRequest request  = (HttpServletRequest) req;        
    27         HttpServletResponse response  = (HttpServletResponse) res;
    28         HttpSession session = request.getSession();
    29         //获取客户请求的页面
    30         String url = request.getServletPath();
    31         System.out.println("wangming"+url);
    32         if((!request.getServletPath().equals("/login.jsp"))
    33             &&(!request.getServletPath().equals("/solar.jsp"))
    34             &&(!request.getServletPath().equals("/index.jsp"))){
    35             System.out.println(request.getServletPath());  
    36             if(session.getAttribute("username")==null){
    37                 session.invalidate();  
    38                 response.setContentType("text/html;charset=gb2312");  
    39                 PrintWriter out = response.getWriter();  
    40                 out.println("<script language='javascript' type='text/javascript'>");  
    41                 out.println("alert('由于你长时间没有操作,导致Session失效!请你重新登录!');top.location.href='" + request.getContextPath() + "/solar.jsp'");  
    42                 out.println("</script>");  
    43             }else{
    44                 chain.doFilter(request , response );
    45             }
    46         }else{
    47             chain.doFilter(request , response );
    48         }        
    49     }    
    50 }

    二、在web.xml中配置拦截器  

     1 <session-config>
     2      <session-timeout>1</session-timeout>
     3 </session-config>
     4 
     5 <filter>
     6     <filter-name>RequestFilter</filter-name>
     7     <filter-class>com.pv.utils.RequestFilter</filter-class>
     8 </filter>
     9 <filter-mapping>
    10     <filter-name>RequestFilter</filter-name>
    11     <url-pattern>*.jsp</url-pattern>
    12 </filter-mapping>
  • 相关阅读:
    520 简单表白代码(JS)
    2017总结+展望2018
    JavaScript中标识符的命名
    ubuntu16.04 CUDA, CUDNN 安装
    Educational Codeforces Round 46 (Rated for Div. 2) D. Yet Another Problem On a Subsequence
    Codeforces Round #489 (Div. 2) E. Nastya and King-Shamans
    AtCoder Regular Contest 098 F.Donation
    hackerrank Project Euler #210: Obtuse Angled Triangles
    论文阅读 | CrystalBall: A Visual Analytic System for Future Event Discovery and Analysis from Social Media Data
    python学习笔记5
  • 原文地址:https://www.cnblogs.com/wmcoder/p/5688964.html
Copyright © 2020-2023  润新知