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>

四、个人总结  

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

  

时间: 2024-12-21 21:20:25

java 拦截器的相关文章

java 拦截器、过滤器、监听器

转自:http://www.cnblogs.com/wangyuyu/archive/2013/07/02/3167354.html 一.理解Struts2拦截器 1. Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现. 2. 拦截器栈(Interceptor Stack).Struts2拦截器栈就是将拦截器按一定的顺序联结成一条链.在访问被拦截的方法或字段时,Struts2拦截器链中的拦截

Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求

Java过滤器处理Ajax请求,Java拦截器处理Ajax请求,拦截器Ajax请求 java 判断请求是不是ajax请求,Java判断是否为ajax请求 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年8月10日 http://www.cnblogs.com/

JAVA拦截器VS过滤器

拦截器的实现原理: 拦截器方法是通过代理的方式来调用的.Struts 2的拦截器实现相对简单.当请求到达Struts 2的ServletDispatcher时,Struts 2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表(list)形成一个拦截器链,最后一个一个地调用列表中的拦截器. Servlet过滤器的基本原理         在Servlet作为过滤器使用时,它可以对客户的请求进行处理.处理完成后,它会交给下一个过滤器处理,这样,客户的请求在过滤链里逐个处理,直到请

java拦截器(Interceptor)学习笔记

1,拦截器的概念    java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式.在AOP中,拦截器用于在某个方法或者字段被访问之前,进行拦截然后再之前或者之后加入某些操作.目前,我们需要掌握的主要是Spring的拦截器,Struts2的拦截器不用深究,知道即可. 过滤器.监听器.拦截器差异图2,拦截器的原理    大部分时候,拦截

Java Web学习(十)Java拦截器

一.引言 我们日常开发中,经常会遇到这个场景:在访问系统功能前,需要用户登录,不登陆的话无法使用我们的系统,那么如果在每个方法前都加上登录代码...[emmm....我想应该不会有人这么干吧...],常见的可以使用以下几种方式: 使用AOP切面功能来实现 实现WebMvcConfigurer接口,重写addCorsMappings()方法和addInterceptors()方法 下面我们就一起来看下一下怎么实现吧~ 二.代码实现 AOP切面方式 切面方式配置的话,得配置到包路径下或者每个具体方法

java拦截器的配置

在xml文件里配置: 1 <!-- 拦截器 --> 2 <mvc:interceptors> 3 <!-- 多个拦截器,顺序执行 --> 4 <mvc:interceptor> 5 <mvc:mapping path="/**"/> 6 <bean class="com.wltz.interceptor.Interceptor"></bean> 7 </mvc:intercep

java拦截器获取请求完整参数

public class OptLogAspect implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { Map ParameterMap = httpServletRequest.getParamet

java struts2入门学习---拦截器学习

转发: https://www.cnblogs.com/amosli/p/3521872.html 一.拦截器,拦截器栈 1.拦截器的作用 拦截器本质上和servlet的过滤器是一样的.在struts2中,拦截器能够对Action前后进行拦截,拦截器是一个可插拨的,你可以选择使用拦截器,也可以卸载拦截器. 2.拦截器执行顺序 在struts.xml文件中,<intercepto-ref/>中先引用的先执行,后引用的后执行.如果某个拦截器出错或不允许通过,那么下一个拦截器是不允许执行的. 需要拦

WebService学习笔记-CXF添加自定义拦截器

使用自定义拦截器实现用户名和密码的校验 客户端:出拦截器 服务器:入拦截器 客户端 AddUserInterceptor.java package com.demo.interceptors; import java.util.List; import javax.xml.namespace.QName; import org.apache.cxf.binding.soap.SoapMessage; import org.apache.cxf.headers.Header; import org