SpringMVC拦截器实例
来源:互联网 发布:淘宝账号找回 编辑:程序博客网 时间:2024/06/08 14:00
简介
拦截器可以再请求被控制器处理前后做一些预处理或者后处理。该实例展示一个使用场景:在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"; }
1 0
- SpringMVC拦截器实例
- springmvc拦截器实例
- springmvc拦截器Interceptor实例
- SpringMVC拦截器实例之自定义注解
- SpringMVC拦截器实例之自定义注解
- [SpringMVC] SpringMVC拦截器
- SpringMVC-----9、SpringMVC拦截器
- springMVC—springMVC拦截器
- springMVC 拦截器
- SpringMVC—拦截器
- springmvc 拦截器配置
- SpringMvc拦截器
- SpringMvc 拦截器
- springMVC 拦截器
- springmvc登录拦截器
- springMVC之拦截器
- SpringMVC使用拦截器
- springMVC 自定义拦截器
- C++ 拷贝构造函数和赋值构造函数机制详解
- LoadRunner Mysql性能优化
- windows下开启关闭nginx
- Camera 施工中
- 确定天数
- SpringMVC拦截器实例
- keilMDK生成代码的内存分配
- 结构体对象与对象间的赋值到底复制了什么
- Gradle 使用Jetty插件启动web项目时出现"java.lang.OutOfMemoryError: PermGen space"解决方法
- Spring MVC 入门分析
- 设计模式-组合、责任链
- 出现次数
- Shiro框架基础
- 《如何及时处理你的坏心情》第二章:我们所担心的事情,99%是不会发生的