拦截器的实现

1、编写拦截器类实现HandlerInterceptor接口;
2、将拦截器注册进springmvc框架中;
3、配置拦截器的拦截规则;
其他实现方法
WebRequestInterceptor接口:
与上一个的区别是参数区别和prehandle的方法没有返回值。没有上一个功能全,因此常用第一个。
拦截器的使用场景
处理所有请求共性问题:
1、乱码问题:用request,response参数去设置编码;
2、解决权限验证问题(是否登陆,取session对象查看);
拦截器与过滤器的区别
1、拦截器Interceptor依赖于框架容器,基于反射机制,只过滤请求;
2、过滤器Filter依赖于Servlet容器,基于回调函数,过滤范围大;
例子
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class TestInterceptor implements HandlerInterceptor {
/**
* 返回值说明是否需要将当前的请求拦截下来
* false:请求将被终止
* true:请求会被继续运行
* Object handler 表示的是被拦截的请求的目标对象
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("TestInterceptor.preHandle()");
return true;
}
/**
* modelAndView:
* 可以通过modelAndView参数改变显示的视图,或者修改发往视图的方法
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
System.out.println("TestInterceptor.postHandle()");
}
/**
* 在视图加载完毕之后调用
* 常用于作于资源的销毁,流等
* 类似于析构函数
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
System.out.println("TestInterceptor.afterCompletion()");
}
}
注册方式:
在springmvc的Dispatcherservlet配置文件中加入拦截器代码;
<!-- 注册拦截器 --> <mvc:interceptors> <!-- 单个拦截器:设置具体的拦截路径 --> <mvc:interceptor> <mvc:mapping path="/courses/view2/*"> <bean class="com.cc.mvcdemo.interceptor.TestInterceptor"></bean> </mvc:mapping></mvc:interceptor> <!-- 第二种方式:拦截经过当前Dispatcherservlet的所有请求 --> <bean class="com.cc.mvcdemo.interceptor.TestInterceptorTwo"></bean> </mvc:interceptors>
希望本篇文章内容对各位朋友有所帮助
# java中Spring
# MVC
# 拦截器实现
# springmvc拦截器实现
# java
# springmvc
# SpringMVC拦截器的实现和作用及Redis登陆功能的优化详解
# Springmvc拦截器执行顺序及各方法作用详解
# SpringMVC拦截器运行原理及配置详解
# Spring mvc拦截器实现原理解析
# Spring MVC中的拦截器案例演示
# 拦截器
# 返回值
# 的是
# 第一个
# 依赖于
# 可以通过
# 将被
# 类似于
# 回调
# 第二种
# 配置文件
# 发往
# 加载
# brush
# class
# import
# springframework
# org
# ModelAndView
相关文章:
太平洋网站制作公司,网络用语太平洋是什么意思?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
建站之星后台管理如何实现高效配置?
制作销售网站教学视频,销售网站有哪些?
如何选择适合PHP云建站的开源框架?
Python如何创建带属性的XML节点
如何配置IIS站点权限与局域网访问?
平台云上自助建站如何快速打造专业网站?
c# 服务器GC和工作站GC的区别和设置
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
如何高效搭建专业期货交易平台网站?
建站主机类型有哪些?如何正确选型
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
高防服务器租用首荐平台,企业级优惠套餐快速部署
如何在万网ECS上快速搭建专属网站?
红河网站制作公司,红河事业单位身份证如何上传?
潮流网站制作头像软件下载,适合母子的网名有哪些?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
公司网站制作价格怎么算,公司办个官网需要多少钱?
如何有效防御Web建站篡改攻击?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
常州自助建站工具推荐:低成本搭建与模板选择技巧
模具网站制作流程,如何找模具客户?
如何在阿里云购买域名并搭建网站?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
制作网站公司那家好,网络公司是做什么的?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
如何在橙子建站中快速调整背景颜色?
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
定制建站是什么?如何实现个性化需求?
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
如何高效完成自助建站业务培训?
如何快速搭建高效简练网站?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
详解jQuery中基本的动画方法
Android自定义控件实现温度旋转按钮效果
如何规划企业建站流程的关键步骤?
,购物网站怎么盈利呢?
山东云建站价格为何差异显著?
如何解决VPS建站LNMP环境配置常见问题?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
制作电商网页,电商供应链怎么做?
c# 在ASP.NET Core中管理和取消后台任务
建站之星logo尺寸如何设置最合适?
*请认真填写需求信息,我们会在24小时内与您取得联系。