java拦截器_Java拦截器
拦截器,主要用于拦截前端请求,常用于登录检查。
下面是演示使用拦截器拦截未登录的用户访问需要登录的模块情景,使用配置方式实现和注解方式实现代码:
配置方式:
1、web.xml中配置监听器,对于所有的/admin开头的请求,都走com.blog.interceptor.LoginInterceptor这个拦截器。
2、再看com.blog.interceptor.LoginInterceptor的实现代码:
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
SysUser currentUser = SessionHelper.getCurrentUser(arg0);
if (currentUser == null) {
// 拦截,重定向到登陆页面
// 需要加上当前请求路径
arg1.sendRedirect(arg0.getContextPath() + "/Login/loginpage.do");
return false;
}
return true;
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
// TODO Auto-generated method stub
}
@Override
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
}
}
对于客户端的每次登录,都先记录登录用户的用户名信息,对于每次请求,获取session中的用户信息,如果用户信息为空,则认为该用户未登录,则跳转到登录页面。
注解方式:
拦截类是一样的,只需要增加配置类。
//页面配置类,不再使用xml配置需要拦截打请求
@Configuration
public class WebMvcConfg extends WebMvcConfigurationSupport {
@Autowired
private LoginInterceptor loginInterceptor;// 需要使用的拦截器,对于所有admin开头的请求都需要进行登录拦截
// 拦截器链
@Override
public void addInterceptors(InterceptorRegistry registry) {
// addPathPatterns 用于添加拦截规则
// excludePathPatterns 用于排除拦截
registry.addInterceptor(loginInterceptor).addPathPatterns("/admin/**")
.excludePathPatterns("/admin/**/exportUser","/admin/**/exportAllUser");
}
// 处理静态资源
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
}
}
java拦截器_Java拦截器相关推荐
- java的安全管理器_Java安全管理器——SecurityManager
总的来说,Java安全应该包括两方面的内容,一是Java平台(即是Java运行环境)的安全性:二是Java语言开发的应用程序的安全性.由于我们不是Java本身语言的制定开发者,所以第一个安全性不需要我 ...
- java 调试 工具_Java调试器–权威的工具列表
java 调试 工具 Java调试是一个复杂的空间. 调试器的类型很多,工具也很多. 在此页面中,我们将介绍7种类型的调试器之间的区别,并查看每个类别中的主要工具,以帮助您为正确的工作选择正确的工具. ...
- java 装饰器_JAVA装饰器模式
Java程序员们应该对java.io对不会陌生,因为java.io包采用了装饰器模式. 一.定义: Decorator装饰器,顾名思义,就是动态地给一个对象添加一些额外的职责,就好比为房子进行装修一样 ...
- java引导类加载器_Java类加载器层次结构(一)
类加载器有一种父/子关系.除了引导类加载器外,每个类加载器都有一个父类加载器.本章通过分析ClassLoader的源码来展示java类加载器的层次结构. 根据规定,类加载器会为它的父类加载器提供一个机 ...
- java 媒体播放器_Java多媒体播放器(三)
No.3 vlcj 一.简介 The vlcj project first gives you Java bindings to just about all of the native functi ...
- java类加载器_JAVA类加载器
虚拟机设计团队把加载动作放到 JVM 外部实现,以便让应用程序决定如何获取所需的类,JVM 提 供了 3 种类加载器: 1. 启动类加载器(Bootstrap ClassLoader) 负责加载 JA ...
- java 类加载器_Java 类加载器
一.概述 类加载器通过一个类的全限定名来获取描述此类的二进制字节流. 类加载器在类层次划分.OSGi.热部署.代码加密等领域发挥着重要的作用. 比较两个类是否"相等",只有在这两个 ...
- java 文件分割器_Java分割器
java 文件分割器 Java Spliterator is one of the four iterators – Enumeration, Iterator, ListIterator and S ...
- java多媒体播放器_Java多媒体播放器(四)
No.4 gstreamer-java 一.简介 An unofficial/alternative set of java bindings for thegstreamermultimedia f ...
- java播放器_java播放器
!!!各位老大我快下冈了!!! 最近开发了一个applet的视频程序,但用行在网络上不行 下载JMF2.1.1e播放组件地址 http://java.sun.com/products/java-med ...
最新文章
- c语言使用指定字符串替换特定的子串
- 算法_贪心 刷题总结
- TI xDAIS的深入理解
- VC++ CryptoAPI最基本编程
- 方法论、方法论——程序员的阿喀琉斯之踵
- php申请系统,PHP+MYSQL的文章管理系统(一)_php
- android 系统源码调试 局部变量值_如何方便快速的整编Android 9.0系统源码?
- uva 1626——Brackets sequence
- Docker 资源限制之内存
- int 最大值_十行代码说清楚:leetcode 队列的最大值
- 机房重构——UML图最终版本
- 16. Window close() 方法
- ace缓存扩展接口_并不是只有 Redis 才可以做缓存
- Linux 错误: $'\r': command not found错误解决
- css样式的基本定义
- 管理系统中计算机er图怎么画,er图怎么画?数据库E-R图画法教程详解
- 波司登杯2013微软office应用创意大赛烟台大学校园赛参赛历程
- php图片不存在输出默认图片,JS图片加载失败显示默认图片
- python批量改变图像大小
- 2022-2023级西安交通大学MBA提前面试(预报名即将开启)6月初