当前位置: 首页 > news >正文

无锡网页网站制作公司可信网站认证 技术支持单位

无锡网页网站制作公司,可信网站认证 技术支持单位,东仓建设网站,青岛广告设计与制作公司拦截器#xff08;Interceptor#xff09;是 Spring MVC 提供的一种强大的功能组件。它可以对用户请求进行拦截#xff0c;并在请求进入控制器#xff08;Controller#xff09;之前、控制器处理完请求后、甚至是渲染视图后#xff0c;执行一些指定的操作。 在 Spring MV… 拦截器Interceptor是 Spring MVC 提供的一种强大的功能组件。它可以对用户请求进行拦截并在请求进入控制器Controller之前、控制器处理完请求后、甚至是渲染视图后执行一些指定的操作。 在 Spring MVC 中拦截器的作用与 Servlet 中的过滤器类似它主要用于拦截用户请求并做相应的处理例如通过拦截器我们可以执行权限验证、记录请求信息日志、判断用户是否已登录等操作。 Spring MVC 拦截器使用的是可插拔式的设计如果我们需要某一拦截器只需在配置文件中启用该拦截器即可如果不需要这个拦截器则只要在配置文件中取消应用该拦截器即可。 定义拦截器 想要在 Spring MVC 项目中使用拦截器第一步就是要对拦截器类进行定义。 Spring MVC 在 org.springframework.web.servlet 包中提供了一个 HandlerInterceptor 接口该接口包含 3 个方法如下表。 方法名返回值说明preHandle () boolean该方法在控制器方法之前执行其返回值用来表示是否中断后续操作。 返回值为 true 时表示继续向下执行返回值为 false 时表示中断后续的操作。postHandle (void该方法会在控制器方法调用之后解析式图之前执行。我们可以通过此方法对请求域中的模型Model数据和视图做出进一步的修改。afterCompletion ()void该方法会在整个请求完成后即视图渲染结束之后执行。我们可以通过该方法实现资源清理、日志记录等工作。 通过实现 HandlerInterceptor 接口重写其方法来实现对拦截器类的定义示例代码如下。 public class MyInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(preHandle 执行);return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(postHandle 执行);}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(afterCompletion 执行);} } 配置拦截器 在定义完拦截器后我们还需要在 Spring MVC 的配置文件中使用 mvc:interceptors 标签及其子标签对拦截器进行配置这样这个拦截器才会生效。 在 Spring MVC 的配置文件中mvc:interceptors 标签用于定义一组拦截器其包含多个常用的子标签具体说明如下表。 标签一级子标签二级子标签说明mvc:interceptorsbean-mvc:interceptors 标签的子标签用于定义一个全局拦截器对所有的请求进行拦截。ref-mvc:interceptors 标签的子标签用于定义一个全局拦截器的引用对所有的请求进行拦截。 mvc:interceptors 标签的 ref 子标签不能单独使用它需要与 bean 标签mvc:interceptors 标签内或 mvc:interceptors标签外或 Component 等注解配合使用以保证ref 标签配置的拦截器是 Spring IOC 容器中的一个组件。mvc:interceptor mvc:mappingmvc:interceptor 标签用于定义一个指定拦截路径的拦截器。 mvc:mapping 标签则是mvc:interceptor 的子标签用来配置拦截器拦截的路径该路径则是通过其属性“path”中定义的。例如path 的属性值为“/**”时表示拦截所有请求而“/hello”则表示拦截路径为“/hello”的请求。mvc:exclude-mappingmvc:exclude-mapping 为mvc:interceptor 的子标签用来配置不需要被拦截器拦截的路径。beanbean 为mvc:interceptor 的子标签用来定义一个指定了拦截路径的拦截器。 1. 通过 bean 子标签配置全局拦截器 在 Spring MVC 的配置文件中通过 mvc:interceptors 标签及其子标签 bean 将我们自定义的拦截器配置成了一个全局拦截器。该拦截器会对项目内所有的请求进行拦截配置代码如下。 !--配置拦截器-- mvc:interceptorsbean classcom.cky.interceptor.MyInterceptor/bean /mvc:interceptors 2. 通过 ref 子标签配置全局拦截器 除了 bean 标签外还可以在 mvc:interceptors 标签中通过子标签 ref 定义一个全局拦截器引用对所有的请求进行拦截。 !--将自定义的拦截器放到 ioc 容器中-- bean idinterceptor classcom.cky.interceptor.MyInterceptor/bean !--配置拦截器-- mvc:interceptors!--通过 ref 配置全局拦截器--ref beaninterceptor/ref /mvc:interceptors 注意mvc:interceptors 标签的 ref 子标签不能单独使用它需要与 bean 标签mvc:interceptors 标签内或mvc:interceptors标签外或 Component 等注解配合使用以保证 ref 标签配置的拦截器是Spring IOC 容器中的组件。 3. 通过mvc:interceptor子标签对拦截路径进行配置 还可以在 Spring MVC 的配置文件中通过 mvc:interceptors 标签的子标签 mvc:interceptor对拦截器拦截的请求路径进行配置示例配置如下。 !--配置拦截器-- mvc:interceptors!--拦截器 1--mvc:interceptor!--配置拦截器拦截的请求路径--mvc:mapping path/**/!--配置拦截器不需要拦截的请求路径--mvc:exclude-mapping path/login/mvc:exclude-mapping path//!--定义在 mvc:interceptors 下表示拦截器只对指定路径的请求进行拦截--bean classcom.cky.interceptor.MyInterceptor/bean/mvc:interceptor /mvc:interceptors需要注意的是在 mvc:interceptor 中子元素必须按照上述代码的配置顺序进行编写即 mvc:mapping → mvc:exclude-mapping → bean 的顺序否则就会报错。其次以上这三种配置拦截器的方式我们可以根据自身的需求以任意的组合方式进行配置以实现在 mvc:interceptors 标签中定义多个拦截器的目的。 拦截器的执行流程 拦截器的执行流程如下图所示。 拦截器处理流程的步骤如下 当请求的路径与拦截器拦截的路径相匹配时程序会先执行拦截器类MyInterceptor的 preHandl() 方法。若该方法返回值为 true则继续向下执行 Controller控制器中的方法否则将不再向下执行控制器方法对请求进行处理调用拦截器的 postHandl() 方法此时我们可以对请求域中的模型Model数据和视图做出进一步的修改通过 DispatcherServlet 的 render() 方法对视图进行渲染调用拦截器的 afterCompletion () 方法完成资源清理、日志记录等工作。
http://www.hkea.cn/news/14583465/

相关文章:

  • 备案网站建设方案模板网页美工设计实践性教案
  • 网站建设及推广文案聊城专业网站建设
  • ai网站wordpress 头部引入js
  • 旅游公司网站开发与实现wordpress加载
  • 北京做招聘网站的公司常州新北建设局网站
  • 网站建设 完成山东济南网站建设公司
  • 百度搜索推广和信息流推广网站视觉优化的意义
  • 计算机多媒体辅助教学网站开发室内设计好不好学
  • 河南省建设厅官方网站 吴浩大连工业大学是211还是985
  • 网站右侧浮动广告代码招考网站开发
  • 建立网站目录结构时不正确的建议是wordpress 谷歌字体解决
  • 网站开发源代码 百度文库广告设计软件coreldraw教程
  • 怎样搭建一个企业网站做网站服务费税率
  • vps云主机可以建立几个网站广州企业网站制作推广运营
  • 做网站找哪个好现在哪个公司的网络比较好
  • 网站代运营多少钱中国企业500强名单
  • 织梦cms如何搭建网站打电话来说做网站_然后答应了
  • 一个人做网站要多久阿里云申请域名
  • 网站怎么做收入工信部网站备案登陆
  • 郑州专业做网站多少钱班级优化大师是干什么用的
  • 网站建设不完整什么意思石家庄是几线城市
  • 网站搜索显示图片微信商城怎么找
  • 外链网站 英文东乡族网站建设
  • 中国互联网头部企业北京百度搜索排名优化
  • 基于C 的网站开发源码靖江网站定制
  • 昆山网站建设书生商友官方网站开发与定制
  • 东莞建站网站怎么查询网站的域名
  • 如何免费申请公司网站wordpress手册插件
  • 厦门满山红网站建设Wordpress好看模板
  • 网站收费系统平台wordpress 前台文章