侧边栏壁纸
  • 累计撰写 781 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

拦截器

Dettan
2021-04-10 / 0 评论 / 0 点赞 / 99 阅读 / 846 字
温馨提示:
本文最后更新于 2022-04-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。


public class LoginInterceptor implements HandlerInterceptor {
//进入 Handler方法之前执行
//用于身份认证、身份授权
//比如身份认证,如果认证通过表示当前用户没有登陆,需要此方法拦截不再向下执行
@Override
public boolean preHandle(HttpServletRequest request,
		HttpServletResponse response, Object handler) throws Exception {
	
	//获取请求的url
	String url = request.getRequestURI();
	//判断url是否是公开 地址(实际使用时将公开 地址配置配置文件中)
	//这里公开地址是登陆提交的地址
	if(url.indexOf("login.action")>=0){
		//如果进行登陆提交,放行
		return true;
	}
	
	//判断session
	HttpSession session  = request.getSession();
	//从session中取出用户身份信息
	String username = (String) session.getAttribute("username");
	
	if(username != null){
		//身份存在,放行
		return true;
	}
	
	//执行这里表示用户身份需要认证,跳转登陆页面
	request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);
	
	//return false表示拦截,不向下执行
	//return true表示放行
	return false;
}</code></pre></div></div>
0

评论区