SpringMVC经典系列-14自定义SpringMVC的拦截器---【LinusZhu】

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢。

这部分主要讲解SpringMVC的拦截器的部分,会带着大家完成定义拦截器的两种方式的实例,不多说了,开始……

SpringMVC的拦截器主要是用于拦截用户的请求,并且进行相应的处理,如:权限验证、判断登录等。

定义拦截器的两种方式,如下:

1. 实现接口:

org.springframework.web.servlet.HandlerInterceptor

接口中有如下方法需要重写:

注意:参数中的Object handler是下一个拦截器。

a) public boolean preHandle

(HttpServletRequest request,HttpServletResponse response,

Object handler) throws Exception

该方法在action执行前执行,可以实现对数据的预处理,比如:编码、安全控制等。

如果方法返回true,则继续执行action。

b) public void postHandle

(HttpServletRequest request,HttpServletResponse response,

Object handler,ModelAndView modelAndView) throws Exception

该方法在action执行后,生成视图前执行。在这里,我们有机会修改视图层数据。

c) public void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex)throws Exception

最后执行,通常用于释放资源,处理异常。我们可以根据ex是否为空,来进行相关的异常处理。因为我们在平时处理异常时,都是从底层向上抛出异常,最后到了spring框架从而到了这个方法中。

2. 继承适配器类:

org.springframework.web.servlet.handler.HandlerInterceptorAdapter

这个适配器实现了HandlerInterceptor接口。提供了这个接口中所有方法的空实现。

下面是我定义的两中实现拦截器的示例代码,仅供大家参考:


//方式1

package interceptor;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;

import org.springframework.web.servlet.ModelAndView;

public class MyInterceptor implements HandlerInterceptor {

@Override

public void afterCompletion(HttpServletRequest request,

HttpServletResponse response, Object handler, Exception ex)

throws Exception {

System.out.println("zxs-最后执行!!!一般用于释放资源!!");

}

@Override

public void postHandle(HttpServletRequest request,

HttpServletResponse response, Object handler,

ModelAndView modelAndView) throws Exception {

System.out.println("zxs-Action执行之后,生成视图之前执行!!");

}

@Override

public boolean preHandle(HttpServletRequest request,

HttpServletResponse response, Object handler) throws Exception {

System.out.println("zxs-action之前执行!!!");

return true; // 继续执行action

}

}


//方式2

package interceptor;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class MyInterceptor2 extends HandlerInterceptorAdapter {

@Override

public boolean preHandle(HttpServletRequest request,

HttpServletResponse response, Object handler) throws Exception {

System.out.println("MyInterceptor2.preHandle()");

return true; // 继续执行action

}

}

3. springmvc-servlet.xml中如何添加如下配置,使用拦截器:


<mvc:interceptors>

<!-- 拦截器1会拦截所有.do请求 -->

<bean class="interceptor.MyInterceptor"></bean>

<!-- 拦截器2会拦截user.do请求 -->

<mvc:interceptor>

<mvc:mapping path="/user.do" />

<bean class="interceptor.MyInterceptor2"></bean>

</mvc:interceptor>

</mvc:interceptors>

SpringMVC经典系列-14自定义SpringMVC的拦截器---【LinusZhu】,布布扣,bubuko.com

时间: 2024-10-25 13:20:16

SpringMVC经典系列-14自定义SpringMVC的拦截器---【LinusZhu】的相关文章

SpringMVC经典系列-15对SpringMVC的总结---【LinusZhu】

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢. 到此为止,关于SpringMVC部分已经基本讲述完了,我所讲述的知识点都是在项目中能经常使用到的,所讲述项目代码都是经过验证的,可能个人的表述不是很到位,希望大家海涵,如果大家发现其中有问题可以随时联系我的邮箱,还是那句话,我发博文主要是为了分享自己的

SpringMVC经典系列-12基于SpringMVC的文件上传---【LinusZhu】

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢. 不知不觉已经把Spring的基础部分讲解完了,所讲述的都是在项目中经常用到的东西,是经得住考验的,接下来的部分主要是要讲述使用SpringMVC进行的文件上传.处理Ajax请求.自定义拦截器功能的实现,不多说了,首先讲解文件上传部分,开始--     

SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】

注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系[email protected],敬请朋友们斧正,谢谢. 这一部分主要讲解SpringMVC如何处理Ajax请求,是首先要讲解一下jackson类库,可以帮助我们在java对象和json.xml数据之间的互相转换.他可以将控制器返回的对象直接转换成json数据,供客户端使用,客户端也可以传送json数据到服务

调查管理系统 -(6)自定义Struts2的拦截器&amp;自定义UserAware接口&amp;Action中模型赋值问题&amp;Hibernate懒加载问题

1.对于一些功能,如我的调查或新建调查等,只有用户登录后才能进行操作,因此必须对用户是否登录进行判断.当用户登录后才能使用相应的功能,如果没有登录则需为用户导航到登录页面让其进行登录.这个功能可以通过自定义Struts2的拦截器来完成. 2.当用户登录之后,由于是将用户的信息保存在session中的.这样当一些Action中需要用到当前登录的用户的信息时需要手动的从session中获取,不太方便,因此我们声明了一个UserAware接口(即用户关注,类似于Struts2中的SessionAwar

自定义 spring mvc 拦截器(近期项目需求实现)

需求背景:特定文件夹下任何文件不经过登录,全部拦截强制跳转登录,并客户端禁止下载服务器定制文件夹文件 经过1天多时间的各种尝试,自定义式的强大拦截器实现了,废话不说了,直接贴代码啦. demo: 1>   根目录下 index.html 内容: <a href="html/index.html">index</a><br/> <a href="html/login3.html">login3.html---<

BOS项目 第2天(BaseDao、BaseAction、用户登录、自定义strust登录拦截器)

BOS项目 第2天 今天内容安排: 1.根据提供的pdm文件生成sql 2.持久层和表现层设计---BaseDao.BaseAction 3.实现用户登录功能 4.jQuery EasyUI 消息提示控件 5.jQuery EasyUI  menubutton菜单按钮 6.自定义struts2拦截器,实现用户未登录自动跳转到登录页面 7.基于ajax实现修改密码功能 1. 根据pdm生成sql脚本 2. 设计持久层和表现层 2.1 持久层设计(基于泛型+反射) 通用接口: /** * 抽取持久层

Struts2系列:(12)拦截器

学习拦截器 1.拦截器能够做什么?(Why 和 What) 2.如何定义拦截器?(How to use) 3.如何注册拦截器?(How to use) 4.如何使用拦截器?(How to use) 1.拦截器能够做什么? Struts2 拦截器在访问某个 Action 方法之前或之后实时拦截的可插拔的组件. 拦截器栈(Interceptor Stack): 将拦截器按一定的顺序联结成一条链. 实现原理:当请求action时,Struts 查找配置文件,根据其配置实例化拦截器对象,并形成一个列表,

2017/2/12:springMVC的简单文件上传跟拦截器

1.写文件上传的界面jsp代码如下重点为文件上传标签的类型 2.写登录成功跟失败的界面:成功自己写 3.写springMVC的文件上传的controller的方法 4.最后一步配置spring-servlet.xml一般是开始就配置 5.贴出整个demo的模型 切记:在springMVC中文件上传必须要用CommonsMultipartFile类来解析文件

SpringMVC自定义拦截器详解 (转)

经过一天的奋战,终于会使用了SpringMVC,下面讲下他的拦截器.使用SpringMVC拦截器和Struts2一样,Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor接口.完整的例子可以到我的资源下载:http://download.csdn.net/download/tjcyjd/4255319 HandlerInterceptor接口的代码如下: package org.springfra