java拦截器_Java拦截器[通俗易懂]

java拦截器_Java拦截器[通俗易懂]拦截器,主要用于拦截前端请求,常用于登录检查。下面是演示使用拦截器拦截未登录的用户访问需要登录的模块情景,使用配置方式实现和注解方式实现代码:配置方式:1、web.xml中配置监听器,对于所有的/admin开头的请求,都走com.blog.interceptor.LoginInterceptor这个拦截器。2、再看com.blog.interceptor.LoginInterceptor的实现代码…

大家好,又见面了,我是你们的朋友全栈君。

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

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

配置方式:

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) {

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131043.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月29日 下午1:40
下一篇 2022年4月29日 下午2:00


相关推荐

  • 数据结构:图的存储结构之邻接表

    数据结构:图的存储结构之邻接表对于图来说 邻接矩阵是不错的一种图存储结构 但是我们也发现 对于边数相对顶点较少的图 这种结构是存在对存储空间的极大浪费的 因此我们考虑另外一种存储结构方式 邻接表 AdjacencyLis 即数组与链表相结合的存储方法 邻接表的处理方法是这样的 1 图中顶点用一个一维数组存储 另外 对于顶点数组中 每个数据元素还需要存储指向第一个邻接点的指针 以便于查找该顶点的边信息 2 图中

    2026年3月19日
    2
  • ghost备份和还原_cgi备份还原

    ghost备份和还原_cgi备份还原制作系统镜像

    2025年9月17日
    6
  • 如何增加外链

    如何增加外链如何增加外链 史上最全网站外链增加方法及优劣汇总篇新站没人气 内容少 没收录 没外链 通常新站想要通过友链来获得外链是很难的 特别是好的 高质量的外链 而网站推广过程中其中一个重要的优化方法 就是添加外链 因为外链可以增加网站的权威性和 PR 值 而这两个都是搜索引擎排名的主要因素 但是 作为新网站 我们该如何添加高质量的外链呢 在了解这个问题之前 武林数据公司 http www 50xx c

    2026年3月20日
    2
  • 单例模式

    单例模式单例模式

    2022年4月25日
    51
  • 运算放大器11种经典电路

    运算放大器11种经典电路运算放大器11种经典电路

    2022年6月11日
    41
  • 如何进行APP抓包 ? – 学习/实践

    如何进行APP抓包 ? – 学习/实践1.应用场景主要用于对APP进行抓包获取详细的接口信息,这是现在开发必备的。 2.学习/操作 环境: Windows1064位专业版 需求:对公司APP进行抓包获取详细的接口信息,这是现在开发必备的。 工具:Fiddler抓包,夜神模拟器模拟手机安装APP 补充: 可以用手机开一…

    2022年5月30日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号