前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java拦截器_Java拦截器[通俗易懂]

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

作者头像
全栈程序员站长
发布2022-08-11 19:49:17
1.3K0
发布2022-08-11 19:49:17
举报

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

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

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

配置方式:

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.cn/131043.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档