博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC拦截器实例
阅读量:2491 次
发布时间:2019-05-11

本文共 1655 字,大约阅读时间需要 5 分钟。

简介

拦截器可以再请求被控制器处理前后做一些预处理或者后处理。该实例展示一个使用场景:在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; }}

配置

控制器使用

直接从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";    }

转载地址:http://wxhrb.baihongyu.com/

你可能感兴趣的文章
Arcsde表空间自动增长
查看>>
Arcsde报ora-29861: 域索引标记为loading/failed/unusable错误
查看>>
记一次断电恢复ORA-01033错误
查看>>
C#修改JPG图片EXIF信息中的GPS信息
查看>>
从零开始的Docker ELK+Filebeat 6.4.0日志管理
查看>>
How it works(1) winston3源码阅读(A)
查看>>
How it works(2) autocannon源码阅读(A)
查看>>
How it works(3) Tilestrata源码阅读(A)
查看>>
How it works(12) Tileserver-GL源码阅读(A) 服务的初始化
查看>>
uni-app 全局变量的几种实现方式
查看>>
echarts 为例讲解 uni-app 如何引用 npm 第三方库
查看>>
uni-app跨页面、跨组件通讯
查看>>
springmvc-helloworld(idea)
查看>>
JDK下载(百度网盘)
查看>>
idea用得溜,代码才能码得快
查看>>
一篇掌握python魔法方法详解
查看>>
数据结构和算法5-非线性-树
查看>>
数据结构和算法6-非线性-图
查看>>
数据结构和算法7-搜索
查看>>
数据结构和算法8-排序
查看>>