Lufer

  • 首页
  • 编程
  • 学习笔记
  • 日常折腾
Lufer
Code the World
  1. 首页
  2. 编程
  3. Java
  4. 正文

从零开始的JavaWeb(三)通过Filter实现登录验证

2018年4月20日 357点热度 0人点赞 0条评论

通过Filter验证缓存的session,从而验证当前用户的登录状态。 web.xml中对Filter进行注册。

//Filter名字与Class文件映射
  loginFilter
  pcadmin.LoginFilter 
//Filter名字与所管辖的网址进行映射
  loginFilter
  * 

写入session可通过如下操作进行。

//Sevlet中的request是HTTPRequest,直接可以getSession()
HttpSession session=request.getSession();
//设置session的Key,Value
session.setAttribute("Username", username);

Filter代码。

//Filter中的是SevletRequest,需要先转换为HttpServletRequest才有getSession方法
HttpServletRequest httpRequest=(HttpServletRequest)request;
HttpServletResponse httpResponse=(HttpServletResponse)response;
HttpSession session=httpRequest.getSession();
//获取当前想要请求的url,getRequestURI可以删掉ip域名,仅获取后面的网址,用getRequestURL可获取全部网址
String a=httpRequest.getRequestURI();
//仅拦截html网页请求,这样可以避免拦截js和css等资源文件
if(a.contains(".html"))
{
//session不为空,或者本身就要访问login页面,则按原请求放行
if(session.getAttribute("Username")!=null||a.contains("login.html"))
{
chain.doFilter(request, response);
}
else
//将客户端重定向到login页面
{
 httpResponse.sendRedirect(httpRequest.getContextPath()+"/pc/login.html");
}
}
else
//其他请求放行
chain.doFilter(request, response);
标签: Java Web
最后更新:2023年7月10日

Lufer

新的一天开始啦

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2022 lufer.cc.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021045819号