JavaWeb 过滤器——验证登录 防止未登录进入界面
2018-07-25 13:06:21来源:博客园 阅读 ()
昨天刚刚完成老师布置的一个Web小项目,项目中用到了两个过滤器(编码过滤、登录过滤)
我完成电商网页中有些不需要登录也能访问(首页、商品详细信息...),其他都需要过滤在会话作用域(session)中是否含有个人信息对象
示例代码:
package com.star.miniShop.Filter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebFilter("/*") public class LoginFiter implements Filter{ //实例化一个静态的集合 private static List<String> urls = new ArrayList<>(); //静态代码块中向集合中存放所有可以放行的请求或网页地址(不用账号密码即可访问) static { urls.add("/logining"); urls.add("/shopLogin.html"); urls.add("/css"); urls.add("/js"); urls.add("/images"); urls.add("/shopHome.html"); urls.add("/HomeShop"); urls.add("/Searchs"); urls.add("/regist"); urls.add("/shopRegist.html"); } @Override public void destroy() { // TODO Auto-generated method stub } /** * 拦截请求,看看用户是否登陆,如果没有登陆, * 则跳转回登录页面,否则就放行 */ @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //注意:ServletRequest是HttpServletRequest父接口,因此需要强转 //同样,ServletResponse是HttpServletResponse父接口,因此需要强转 HttpServletRequest req=(HttpServletRequest)request; HttpServletResponse res=(HttpServletResponse)response; //得到当前页面所在目录下全名称 String urlPattern=req.getServletPath(); //得到页面所在服务器的绝对路径 String path = req.getRequestURI(); //System.out.println(urlPattern); for (String url : urls) { if(url.equals(urlPattern) || path.contains(url)) { // System.out.println("reaource do chain..."); chain.doFilter(request, response); //防止重复响应 return; } } //如果person为null,表示没有登录 if(req.getSession().getAttribute("person")==null) { res.sendRedirect("shopLogin.html"); }else { //放行 chain.doFilter(request, response); } } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:JVM内存介绍和划分
- 第六章第三十一题(金融应用:信用卡号的合法性验证)(Finan 2020-05-20
- LeetCode 680. 验证回文字符串 Ⅱ 2020-05-19
- 如何用SpringBoot集成JWT实现token验证及token注销?一招教 2020-05-13
- JavaWeb 之 EL与JSTL 2020-05-06
- Https双向验证与Springboot整合测试-人来人往我只认你 2020-05-05
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash