拦截器,主要用于拦截前端请求,常用于登录检查。

下面是演示使用拦截器拦截未登录的用户访问需要登录的模块情景,使用配置方式实现和注解方式实现代码:

配置方式:

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拦截器相关推荐

  1. java的安全管理器_Java安全管理器——SecurityManager

    总的来说,Java安全应该包括两方面的内容,一是Java平台(即是Java运行环境)的安全性:二是Java语言开发的应用程序的安全性.由于我们不是Java本身语言的制定开发者,所以第一个安全性不需要我 ...

  2. java 调试 工具_Java调试器–权威的工具列表

    java 调试 工具 Java调试是一个复杂的空间. 调试器的类型很多,工具也很多. 在此页面中,我们将介绍7种类型的调试器之间的区别,并查看每个类别中的主要工具,以帮助您为正确的工作选择正确的工具. ...

  3. java 装饰器_JAVA装饰器模式

    Java程序员们应该对java.io对不会陌生,因为java.io包采用了装饰器模式. 一.定义: Decorator装饰器,顾名思义,就是动态地给一个对象添加一些额外的职责,就好比为房子进行装修一样 ...

  4. java引导类加载器_Java类加载器层次结构(一)

    类加载器有一种父/子关系.除了引导类加载器外,每个类加载器都有一个父类加载器.本章通过分析ClassLoader的源码来展示java类加载器的层次结构. 根据规定,类加载器会为它的父类加载器提供一个机 ...

  5. java 媒体播放器_Java多媒体播放器(三)

    No.3 vlcj 一.简介 The vlcj project first gives you Java bindings to just about all of the native functi ...

  6. java类加载器_JAVA类加载器

    虚拟机设计团队把加载动作放到 JVM 外部实现,以便让应用程序决定如何获取所需的类,JVM 提 供了 3 种类加载器: 1. 启动类加载器(Bootstrap ClassLoader) 负责加载 JA ...

  7. java 类加载器_Java 类加载器

    一.概述 类加载器通过一个类的全限定名来获取描述此类的二进制字节流. 类加载器在类层次划分.OSGi.热部署.代码加密等领域发挥着重要的作用. 比较两个类是否"相等",只有在这两个 ...

  8. java 文件分割器_Java分割器

    java 文件分割器 Java Spliterator is one of the four iterators – Enumeration, Iterator, ListIterator and S ...

  9. java多媒体播放器_Java多媒体播放器(四)

    No.4 gstreamer-java 一.简介 An unofficial/alternative set of java bindings for thegstreamermultimedia f ...

  10. java播放器_java播放器

    !!!各位老大我快下冈了!!! 最近开发了一个applet的视频程序,但用行在网络上不行 下载JMF2.1.1e播放组件地址 http://java.sun.com/products/java-med ...

最新文章

  1. c语言使用指定字符串替换特定的子串
  2. 算法_贪心 刷题总结
  3. TI xDAIS的深入理解
  4. VC++ CryptoAPI最基本编程
  5. 方法论、方法论——程序员的阿喀琉斯之踵
  6. php申请系统,PHP+MYSQL的文章管理系统(一)_php
  7. android 系统源码调试 局部变量值_如何方便快速的整编Android 9.0系统源码?
  8. uva 1626——Brackets sequence
  9. Docker 资源限制之内存
  10. int 最大值_十行代码说清楚:leetcode 队列的最大值
  11. 机房重构——UML图最终版本
  12. 16. Window close() 方法
  13. ace缓存扩展接口_并不是只有 Redis 才可以做缓存
  14. Linux 错误: $'\r': command not found错误解决
  15. css样式的基本定义
  16. 管理系统中计算机er图怎么画,er图怎么画?数据库E-R图画法教程详解
  17. 波司登杯2013微软office应用创意大赛烟台大学校园赛参赛历程
  18. php图片不存在输出默认图片,JS图片加载失败显示默认图片
  19. python批量改变图像大小
  20. 2022-2023级西安交通大学MBA提前面试(预报名即将开启)6月初

热门文章

  1. Centos 7/linux 安装gcc 教程
  2. java输出阶乘_Java阶乘输出
  3. python搭建图书管理系统
  4. Vim编辑器常用命令
  5. HarmonyOS开源第三方组件 —— B站开源弹幕库引擎的使用
  6. ACC - 简介与解码
  7. cadence元件编号更新_OrCAD教程:如何对元件进行替换与更新
  8. 最新免费可使用在线音乐网站+多解析源码
  9. WPE制作游戏外挂 更改封包
  10. 张孝祥《Java就业培训教程》读书笔记