第一步,导入spring jar包(commons-logging-1.0.4.jar、jstl.jar)
第二步,项目配置文件web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
第三步,springMVC配置文件springmvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd" > <!-- 对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 --> <context:component-scan base-package="com.test.controller" /> <!--对模型视图名称的解析,即在模型视图名称添加前后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> <mvc:interceptors> <bean class="com.test.interceptor.MyInterceptor1"></bean> <!-- 拦截所有springmvc的url --> <mvc:interceptor> <mvc:mapping path="/employee" /> <bean class="com.test.interceptor.MyInterceptor2"></bean> </mvc:interceptor> </mvc:interceptors> </beans>
第四步,控制器EmployeeController.java
package com.test.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class EmployeeController { @RequestMapping("/employee") public String request(String name, Model model, ModelMap modelMap, HttpServletRequest request) { model.addAttribute("model", "测试model.addAttribute()方法"); modelMap.addAttribute("modelMap1", "测试ModelMap.addAttribute()方法"); modelMap.put("modelMap2", "测试ModelMap.put()方法"); request.setAttribute("request1", "测试request.setAttribute()方法"); request.getSession().setAttribute("session1", "测试request.getSession().setAttribute方法"); return "result"; } }
第五步,拦截器MyInterceptor1.java
package com.test.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 MyInterceptor1 implements HandlerInterceptor { public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { System.out.println("最后执行,一般用于释放资源!"); } public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { System.out.println("action执行之后,生成视图之前执行!"); } public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { System.out.println("action之前执行!"); return true; // 继续执行action } }
拦截器MyInterceptor2.java
package com.test.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; public class MyInterceptor2 extends HandlerInterceptorAdapter { public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { System.out.println("MyInterceptor2.preHandle()"); return true; // 继续执行action } }
前台页面/jsp/result.jsp
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>结果</title> </head> <body> ${model }<br> ${requestScope.model }<br> ${modelMap1 }<br> ${requestScope.modelMap1 }<br> ${modelMap2 }<br> ${requestScope.modelMap2 }<br> ${requestScope.request1 }<br> ${sessionScope.session1 }<br> </body> </html>
浏览器输入:
http://127.0.0.1:9900/springmvc_006/employee
页面显示:
后台打印:
action之前执行!
MyInterceptor2.preHandle()
action执行之后,生成视图之前执行!
最后执行,一般用于释放资源!
相关推荐
02_springmvc传值
本篇文章主要介绍了防止SpringMVC拦截器拦截js等静态资源文件的解决方法,具有一定的参考价值,有兴趣的同学可以了解一下
SpringMVC中的拦截器-拦截器方法的作用和执行顺序.avi
springmvc-机制(拦截器、aop、异常).pdfspringmvc-机制(拦截器、aop、异常).pdf
企业级开发-SpringMVC使用拦截器实现用户登录权限验证实验报告
SpringMvc 拦截器 原理清楚,代码简单,值得学习!
NULL 博文链接:https://panyongzheng.iteye.com/blog/2084629
SpringMVC拦截器例子详解,
自定义拦截器的具体实现、自定义拦截器的配置方式、多个拦截器之间的执行执行顺序
springmvc 拦截器
springMVC 拦截器源代码 内有详细文档介绍操作 @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { //可以通过...
SpringMVC框架下对限定时间拦截(适用于初学者)
可下载部署直接运行
SpringMVC拦截器源代码
初学者很容易将 Spring MVC 拦截器 和 Spring Cloud OpenFeign 拦截器搞混,误以为OpenFeign拦截器就是SpringMVC拦截器:Spring MVC拦截器发生在客户端 和 服务端之间,在客户端向服务端发送请求时进行拦截处理。...
SpringMVC学习(十二)——SpringMVC中的拦截器
SpringMVC拦截器的使用,通俗易懂!
SSM笔记-SpringMVC的自定义拦截器,简单实现拦截器,只需要跟着步骤写就好了,没有特别要注意的地方
极客学院java中级课程,SpringMVC系列教材——SpringMVC 中的拦截器与异常处理