Spring mvc中自定义拦截器
一、要实现的一个功能:
1、打开特定的一些页面时必需强制用户进行登录。
2、登录后再返回到之前的页面。
二、先写一个service,实现从cookie中判断用户是否登录。
1、TT_TOKEN为登录成功时,响应给浏览器的Cookie的键。
@Service public class UserServiceImpl implements UserService{@Value("${SSO_BASE_URL}")private String SSO_BASE_URL;@Value("${SSO_USER_INFO}")private String SSO_USER_INFO;@Overridepublic TbUser getCookieByToken(HttpServletRequest request, HttpServletResponse response) {try{String token = CookieUtils.getCookieValue(request, "TT_TOKEN");if (StringUtils.isBlank(token)) {return null;}//cookie中如果取到值,调用sso服务从cookie取到用户信息String json = HttpClientUtil.doGet(SSO_BASE_URL + SSO_USER_INFO + token);TaotaoResult result = TaotaoResult.format(json);if (result.getStatus() != 200) {return null;}result = TaotaoResult.formatToPojo(json, TbUser.class);TbUser user = (TbUser) result.getData();return user;}catch (Exception e) {e.printStackTrace();return null;}} }
二、拦截器代码如下
1、定义一个拦截器LoginInterceptor实现spring mvc的接口HandlerInterceptor。
2、重写里面三个方法。
public class LoginInterceptor implements HandlerInterceptor{@Autowiredprivate UserService userService;@Value("${SSO_LOGIN_URL}")private String SSO_LOGIN_URL;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {TbUser user = userService.getCookieByToken(request, response);if (user == null) {response.sendRedirect(SSO_LOGIN_URL + "?redirectUrl=" + request.getRequestURL());return false;}return true;//返回false说明拦截, true放行 }@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {//拦截后,返回modelAndView之前 }@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {//返回modelAndView之后 } }
三、在spingmvc.xml配置拦截器
<!-- 配置拦截器--><mvc:interceptors><mvc:interceptor><mvc:mapping path="/item/**"/><bean class="com.taotao.portal.Interceptor.LoginInterceptor" /></mvc:interceptor></mvc:interceptors>
1、path为要拦截的路径。
2、bean写拦截器的全限定类名。
转载于:https://www.cnblogs.com/huclouy/p/9484483.html
Spring mvc中自定义拦截器相关推荐
- spring mvc中的拦截器
本文说下spring MVC中的拦截器 文章目录 拦截器介绍 拦截器注入适配器 自定义拦截器 controller测试 测试结果 本文小结 拦截器介绍 拦截器是在servlet执行之前执行的程序(这里 ...
- Spring MVC中的拦截器/过滤器HandlerInterceptorAdapter的使用
转载自 https://www.cnblogs.com/EasonJim/p/7704740.html 一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的 而在Spring中,基于Filt ...
- 【Spring MVC】自定义拦截器 Interceptor
一.自定义拦截器 1.拦截器,跟过滤器比较像的技术. 1.1 拦截器和过滤器的区别: 拦截器只能拦Controller,Filter可以拦任何请求 因为Spring的入口是dispatcherServ ...
- 拦截webapp下jsp_Spring MVC中的拦截器/过滤器HandlerInterceptorAdapter的使用
I分享永久IDEA激活码:ntelliJ IDEA 2020.1.2 激活码,永久有效(点击该链接)! 一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的 而在Spring中,基于Filt ...
- jsp中的url拼接的参数传递到controller乱码_Spring MVC中的拦截器
拦截器是 AOP 编程思想的典型应用 详述 Spring MVC 框架中拦截器 Interceptor 的使用方法blog.csdn.net 实现 1:创建一个controller类 package ...
- springboot-2.2.5中自定义拦截器、静态资源映射、视图控制器和其他功能
在spring-boot-2.2.5中对MVC自动配置类进行的更改,之前的WebMvcConfigurerAdapter类声明为过时的,现在进行自定义扩展需要实现WebMvcConfigurer类重写 ...
- SpringBoot中自定义拦截器
场景 自定义拦截器,通过继承WebMvcConfigureAdapter然后重写父类中的方法进行扩展. 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZH ...
- Spring MVC 中自定义视图 @Component 及 配置 多个视图解析器 Excel视图
首先我们建立一个自己的View实现View接口.要注意在类上面加上@Component的注解,因为看BeanNameViewResolver的源码知道,是直接从ioc容器里面拿的根据名字拿的视图,所以 ...
- spring MVC - Inteceptors(拦截器)
Spring的Interceptor(拦截器)是Controller 方法级别的 当某一个Controller的方法进行request处理的时候 可以通过Interceptor进行拦截, 拦截器可以在 ...
最新文章
- 20秋PHP作业3,北语20秋《PHP》作业3【标准答案】
- Hibernate中两种获取Session的方式
- ASIHTTPRequest取消异步请求
- 自定义YUM软件仓库----FTP网络YUM源-----网络YUM源的配置
- ((sizeof(n)+sizeof(int)-1)~(sizeof(int)-1))
- css的fill属性,css column-fill属性怎么用
- jQuery源码研究学习笔记(二)
- 进程的优先级设置与获取,进程时间
- macbook数据线连接手机_MacBook可以为iPhone进行快充吗?用MacBook为iPhone充电好不好?...
- mac虚拟机linux性能测试,Veertu 1.0.4 – Mac上最轻便的虚拟机,可以运行Windows/Linux。...
- 分享97个上传下载PHP源码,总有一款适合你
- 苹果iPod设计及商业操作内幕
- Javascript多功能计算器
- Mac 编译 llvm / mlir
- 惠普星 TP01-055ccn电脑重装系统步骤
- Python : numpy花式切片
- 7-4 最短路径之Dijkstra(朴素dijkstra打印路径)
- 企业微信欢迎语如何将链接转换为图文卡片形式?
- SwitchyOmega代理插件的安装与使用教程
- idm一个网站不能下载两次?这几个办法彻底解决