1、目的:拦截器的配置主要是对请求进行相应的处理(在登录和session过时的时候是一个很好的方式)

2、由于Spring容器的优越性,在配置的时候全部交给容器管理是一个很不错的方式

3、配置拦截器:

  1)在对应的方式类中实现HandlerInterceptor接口,会要求实现3个方法

  

@Overridepublic void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)throws Exception {// TODO Auto-generated method stub}@Overridepublic void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)throws Exception {// TODO Auto-generated method stub}public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) throws Exception {return true;}

  2)所有的请求都会在拦截器里面经过,这样在做登录拦截的时候会起到数据的保护和相关的展示限权

  在preHandle方法里面加入自己的逻辑

public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) throws Exception {//获取判定登陆的session是否存在String token = (String) request.getSession().getAttribute("token");String postId = (String) request.getSession().getAttribute("postId");if(token == null || token == ""){String XRequested =request.getHeader("X-Requested-With");if("XMLHttpRequest".equals(XRequested)){response.getWriter().write("IsAjax");}else{response.sendRedirect("/m-web/");}return false;}if(postId == null || postId == ""){String XRequested =request.getHeader("X-Requested-With");if("XMLHttpRequest".equals(XRequested)){response.getWriter().write("IsAjax");}else{response.sendRedirect("/m-web/");}return false;}return true;}

  里面存在ajax请求拦截的处理详情见:http://www.cnblogs.com/ll409546297/p/6203403.html

3、在Spring的配置文件里面加入

<mvc:interceptors><mvc:interceptor><mvc:mapping path="/**"/><mvc:exclude-mapping path="/user/login"/><mvc:exclude-mapping path="/user/loginOut"/><mvc:exclude-mapping path="/user/setPostId"/><mvc:exclude-mapping path="/user/getPostId"/><mvc:exclude-mapping path="/resources/**"/><mvc:exclude-mapping path="/assets/**"/><mvc:exclude-mapping path="/css/**"/><mvc:exclude-mapping path="/fonts/**"/><mvc:exclude-mapping path="/images/**"/><mvc:exclude-mapping path="/img/**"/><mvc:exclude-mapping path="/js/**"/><mvc:exclude-mapping path="/pic/**"/><mvc:exclude-mapping path="/plugins/**"/><mvc:exclude-mapping path="/static/**"/><mvc:exclude-mapping path="/ui/**"/><bean class="com.troy.ai.web.Interceptors.LoginInterceptor"/></mvc:interceptor></mvc:interceptors>

解释:

<mvc:mapping path="/**"/>  //是对所有路径进行过滤
<mvc:exclude-mapping path="/user/login"/>  //是对该路径进行放行
<mvc:exclude-mapping path="/ui/**"/>  //是对静态资源加载放行
<bean class="com.troy.ai.web.Interceptors.LoginInterceptor"/>  //指定处理拦截的相关类

4、拦截器的配置相对简单,但是在实际的应用过程却非常常见,逻辑处理方面需要根据实际来处理

springmvc拦截器配置相关推荐

  1. springmvc 拦截器、国际化、验证

    2019独角兽企业重金招聘Python工程师标准>>> springmvc 拦截器 继承了HandlerIntercepter的类可以作为拦截器类: package com.yawn ...

  2. Spring+SpringMVC+MyBatis深入学习及搭建(十七)——SpringMVC拦截器

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7098753.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十六)--S ...

  3. SpringMVC拦截器2(资源和权限管理)(作为补充说明)

    SpringMVC拦截器(资源和权限管理) 1.DispatcherServlet SpringMVC具有统一的入口DispatcherServlet,所有的请求都通过DispatcherServle ...

  4. Java Servlet 过滤器与 springmvc 拦截器的区别?

    前言:在工作中,遇到需要记录日志的情况,不知道该选择过滤器还是拦截器,故总结了一下. servlet 过滤器 定义 java过滤器能够对目标资源的请求和响应进行截取.过滤器的工作方式分为四种 应用场景 ...

  5. 在拦截器里放入参数 controller_干货|SpringMVC拦截器的使用详解

    一.拦截器简介 Spring MVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理. 常见应用场景 1.日志记录:记录请求信息的日志,以便进行信息监控.信 ...

  6. 跨域请求/SpringMVC拦截器

    <!-- 开启允许跨域 --> <mvc:cors> <mvc:mapping path="/**"/> </mvc:cors> S ...

  7. Spring mvc 拦截器 配置心得

    session超过时间自动跳转到登录页面.要求请求的每个url都要进行拦截,当然,js,css这些东西除外. spring-mvc.xml Xml代码   <!-- 拦截器配置 --> & ...

  8. 439、Java框架93 -【SpringMVC - 拦截器】 2020.12.14

    目录 0.效果 1.拦截器类:IndexInterceptor 2.配置拦截器 3.修改 index.jsp 4.测试 5.参考链接 0.效果 访问地址之后,看到如图所示的拦截器打印的效果 http: ...

  9. SpringMVC与JSON传值,取值,使用SpringMVC实现文件的上传与下载,SpringMVC拦截器

    一. JSON 1.1 什么是JSON 在实际开发中,通常需要和别的系统交换数据,数据交换的格式通常有XML和JSON等: JSON(JavaScript Object Notation:JavaSc ...

最新文章

  1. JAVA学习笔记--4.多线程编程 part5.这些年的那些坑
  2. 10 Java程序员面试宝典视频课程之Servlet
  3. Android隐式(远程)启动Service
  4. C++比较两个字符串是否完全相同
  5. Android Lambda 表达式使用实例,-
  6. 你不知道你不懂javascript
  7. php myflow,WordPress安装使用Flowplayer简易指南
  8. oracle11 分配表权限,Oracle11g权限--角色
  9. [渝粤教育] 武汉理工大学 金属工艺学B 参考 资料
  10. 使django与数据库保持长连接
  11. Linux怎么复制文件到其他文件夹
  12. HTML网页入门练习——导航栏布局设计
  13. [Unity Mirror] FAQ
  14. Web服务器性能测试工具介绍
  15. ABAP中存储文件的方法
  16. 会议室预约系统 会议预约 会议预约触摸屏 会议预约管理系统
  17. 似然函数、最大似然函数理解
  18. lzg_ad:如何构建最小尺寸的XPE镜像文件
  19. Java中的设计者模式
  20. 如何把图片做成gif?怎样做出gif动态图?

热门文章

  1. Golang make chan 第二个参数(size)
  2. Android Studio 3.1.4 报错Failed to find style 'coordinatorLayoutStyle' in current theme
  3. vue-cli3.0相关的坑
  4. DOMJavaScript示例练习
  5. ##6.2 Neutron计算节点-- openstack pike
  6. Djaongo 中间件
  7. #js#简单的在线计算器
  8. php 迭代设计模式 -- BookList -- 分页
  9. 世界十大最有价值公司(1997-2019)
  10. 什么是机器学习?有哪些分类?到底有什么用?终于有人讲明白了