码迷,mamicode.com
首页 > 编程语言 > 详细

java 拦截器

时间:2017-08-20 12:27:14      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:vax   总结   pac   config   img   路径   red   自己   method   

一、前言

  这是一篇关于 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>

四、个人总结  

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

  

java 拦截器

标签:vax   总结   pac   config   img   路径   red   自己   method   

原文地址:http://www.cnblogs.com/gzbit-zxx/p/7399240.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!