SpringMVC拦截器实例
2015-11-16 11:39
453 查看
简介
拦截器可以再请求被控制器处理前后做一些预处理或者后处理。该实例展示一个使用场景:在web开发中,常常需要设置网站的公用信息,比如网站名字,路径,协议等等。一般把这些信息存放到request或者session中。这里可以使用拦截器,在所有请求处理之前加上这些公用的信息。接口声明如下:
public interface HandlerInterceptor { boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception; void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception; void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception; }
自定义拦截器
可以继承抽象类HandlerInterceptorAdapter,不需要继承接口。package com.ydoing.web.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import com.ydoing.constant.web.WebConstant; import com.ydoing.domain.CmsSite; public class SiteInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { CmsSite site = new CmsSite(); request.setAttribute(WebConstant.SITE_NAME_KEY, site);//将公用信息放入request中 return true; } }
配置
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**.html"/><!--映射路径 --> <bean class="com.ydoing.web.interceptor.SiteInterceptor"/> </mvc:interceptor> </mvc:interceptors>
控制器使用
直接从request取出即可@RequestMapping("/index.html") public String index(HttpServletRequest request, ModelMap mm) { CmsSite site = (CmsSite) request.getAttribute(WebConstant.SITE_NAME_KEY); mm.addAttribute("base", site.getSiteName());//从request取出拦截器存放的数据 return "index"; }
相关文章推荐
- Web开发之JavaScript
- Web开发/设计人员应当知道的15个网站
- linux下搭建J2EE开发环境以及IDE的安装
- [译]WEB开发者最好用的Chrome扩展程序
- Java和PHP在Web开发方面对比分析
- 揭秘PHP深受Web开发者喜爱的原因
- 作为Web开发人员,我为什么喜欢Google Chrome浏览器
- 看JQuery如何给力Web开发
- Spring整合Dwr,Cannot locate BeanDefinitionParser for element [annotation-scan]
- OpenERP Web开发
- PHP循环语句学习笔记
- 使用SAE平台迅速开发和部署PHP代码
- SAE平台API手册
- 介绍生成PHP网站页面静态化的方法
- 微软推mashup Web开发工具
- 4种无刷新页面的技术
- CentOS5.5使用yum来安装LAMP