zoukankan      html  css  js  c++  java
  • java 拦截器

    一、前言

      这是一篇关于 java 拦截器的文章,是我的写 java  web 所遇见的问题。当我们写好一个网站,必须要通过登陆页面才可以进入这个系统。那么我们就得写个 java 拦截器,如果是通过登录进入系统的用户,那么这样的用户就可以访问任何一个文件或者任何的 jsp 页面。如果非登录界面想进入系统,或者想搞事情的用户,我们是不允许他进入我们的系统的。这就是拦截器的功能。

      参考的实例:时间辜负了谁的博客 

    二、代码实现

      实现这个功能,我们需要写一个类,让这个类继承 Fliter 这个类。这里强调一下,我的这个类是创建在 com.wz.common 中的。具体的代码实现如下:

      

    package com.wz.common;
    
    import java.io.IOException;
    
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    public class LoginFilter implements Filter {
    
        @Override
        public void destroy() {
            // TODO Auto-generated method stub
            
        }
    
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {
            
            //获取在下面代码中的request、respone、session对象
            HttpServletRequest servletRequest=(HttpServletRequest)request;
            HttpServletResponse servletResponse=(HttpServletResponse)response;
            HttpSession session=servletRequest.getSession();
            
            //获取请求的URL 
            String path=servletRequest.getRequestURI();
            
            //输出看一下路径
            System.out.println("path查看一下路径"+path);
            
            String id=(String)session.getAttribute("id");
            
            //登陆页面不需要过滤
            if(path.indexOf("/login.jsp")>-1){
                chain.doFilter(servletRequest, servletResponse);
                return;
            }
            
            //判断如果没有员工的信息,就跳转到登陆页面
            if(id==null){
                servletResponse.sendRedirect("../login.jsp");
            }else{
                chain.doFilter(servletRequest, servletResponse);
            }
        }
    
        @Override
        public void init(FilterConfig arg0) throws ServletException {
            // TODO Auto-generated method stub
            
        }
    
        
    }

    三、web.xml 配置

      代码已经实现好了,我们需要这 web.xml 实现配置,我需要拦截的文件夹如下图所示:我想要拦截Admin 下面的所以文件夹。

      

      在 web.xml 的文件配置代码如下:

    <!-- 配置拦截器 -->
        <filter>
            <filter-name>login</filter-name>
              <filter-class>com.wz.common.LoginFilter</filter-class>
         </filter>
         
        <filter-mapping>
              <filter-name>login</filter-name>
              <url-pattern>/Admin/*</url-pattern>
         </filter-mapping>

    四、个人总结  

      学习新的东西,我们要静下心,多百度一下就好了。感觉一直不断学习的自己!

      

  • 相关阅读:
    用python自定义实现db2的连接池
    python写的爬虫工具,抓取行政村的信息并写入到hbase里
    201521123119《Java程序设计》第4周学习总结
    201521123119《Java程序设计》第5周学习总结
    201521123119《Java程序设计》第6周学习总结
    201521123119《Java程序设计》第1周学习总结
    log4j:WARN No appenders could be found for logger
    android 单元测试
    android手机屏幕适配2
    android手机屏幕适配
  • 原文地址:https://www.cnblogs.com/gzbit-zxx/p/7399240.html
Copyright © 2011-2022 走看看