我们可能经常会用到这一功能,比如有时,我们不希望用户没有进行登录访问后台的操作页面,而且这样的非法访问会让系统极为的不安全,所以我们常常需要进行登录才授权访问其它页面,否则只会出现登录页面,当然我的思路:
一种是在jsp页面进行session的判断,如果不存在该用户的session,就跳转到登录页面,否则执行jsp页面代码,但是你会发现这样做逻辑也简单,但是非常麻烦,如果有很多个jsp,那么就要写多个判断
另一种则是利用过滤器,访问页面时都进行过滤验证,如果存在该用户session,则访问该页面,否则跳转到登陆页面登录,保存session后访问其它页面
一下是我的实现
package com.test.filter; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class LoginFilter implements Filter { public static final String login_page = "/test/admin/index.jsp"; public static final String logout_page = "/test/admin/Public/login.jsp"; public void destroy(){ } public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)throws ServletException, IOException { HttpServletRequest request = (HttpServletRequest)servletRequest; HttpServletResponse response = (HttpServletResponse)servletResponse; String currentURL = request.getRequestURI(); String ctxPath = request.getContextPath(); //除掉项目名称时访问页面当前路径 String targetURL = currentURL.substring(ctxPath.length()); HttpSession session = request.getSession(false); //对当前页面进行判断,如果当前页面不为登录页面 if(!("/admin/Public/login.jsp".equals(targetURL))){ System.out.println("1"+targetURL+"ctxPath:"+ctxPath+"currentURL:"+currentURL); //在不为登陆页面时,再进行判断,如果不是登陆页面也没有session则跳转到登录页面, if(session == null || session.getAttribute("admin") == null){ response.sendRedirect(logout_page); return; }else{ //这里表示正确,会去寻找下一个链,如果不存在,则进行正常的页面跳转 filterChain.doFilter(request, response); return; } }else{ //这里表示如果当前页面是登陆页面,跳转到登陆页面 filterChain.doFilter(request, response); return; } } public void init(FilterConfig filterConfig)throws ServletException{ } }
接下来在web.xml中进行配置
<filter> <filter-name>LoginFilter</filter-name> <filter-class>com.loveplusplus.weixin.util.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/elecmgServlet</url-pattern> </filter-mapping> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping>
那么,这样功能就实现了
相关推荐
主要为大家详细介绍了servlet+jsp实现过滤器,防止用户未登录访问,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
jsp+servlet登录验证过滤器jsp+servlet登录验证过滤器jsp+servlet登录验证过滤器
若用户没有登录成功,而直接访问主界面,则被过滤器过滤到index.jsp,若登录成功,验证身份后,才有权限访问产品和其他功能。 例如:如果没登录成功,则被过滤到index.jsp 二、技术介绍: 主要框架技术:jsp+...
数字转中文<br>128 自动计算金额<br>129 JSP页面打印中使用WebBrowser控件<br>130 <select...>不刷新页面添加新的类别<br>131 鼠标滚动缩放图片<br>132 根据输入的表名生成输入数据表格<br>133 JSP表格输出到Excel...
主要内容包括web应用程序运行原理、主流集成开发工具(eclipse/myeclipse)和运行环境(tomcat)的配置和使用、servlet、jsp、jdbc、jsp表达式语言(el)、servlet监听器和过滤器、定制标记库、jstl、mvc模式、dao...
本程序采用jsp+javabean+servlet结构开发,包含登录、商品管理两大模块;用到的技术包括:jsp、servlet、javabea、过滤器、EL表达式、JSTL标签库、jdbc技术。
20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与国际化 610 21.1 中文乱码问题产生的由来 610 21.1.1 常用字符集 610 21.1.2 对...
1 用过滤器实现数据初始化<br>2 用过滤器实现中文编码转换<br>3 用servlet实现页面控件<br>4 sql2005 由于sql2000不支持对text类型的查询.sql2005则支持.<br>5 HashMap是随机从中取数据的.而采用LinkedHashMap即链表...
- 安全性:采用JSP页面过滤器来防止SQL注入等安全问题。 - 易用性:对于初学者来说,该框架提供了很好的学习和实践的机会。 该框架中的jsp文件负责页面的展示和用户交互,servlet文件负责控制器的功能,javaBean...
20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与国际化 610 21.1 中文乱码问题产生的由来 610 21.1.1 常用字符集 610 21.1.2 对...
孙卫琴《Tomcat与Java Web开发技术详解》培训讲义.rar<br>01__JavaWeb应用简介.pdf<br>02_Servlet技术.pdf<br>03_JSP技术.pdf<br>04_使用HTTP会话(Session).pdf<br>05_使用JavaBean.pdf<br>06_使用Servlet过滤器....
Tomcat 10<br>5 初始化和预装载servlet与JSP页面 10<br>5.1 分配servlet初始化参数 10<br>5.2 分配JSP初始化参数 13<br>5.3 提供应用范围内的初始化参数 15<br>5.4 在服务器启动时装载servlet 15<br>6 声明过滤器 16...
20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与国际化 610 21.1 中文乱码问题产生的由来 610 21.1.1 常用字符集 610 21.1.2 对...
Servlet + JSP + MySQL + JDBCTempleat + Duird + BeanUtils+ tomcat实现用户信息的增删改查操作,过滤器登录验证,敏感词汇和谐等功能,打造用户信息管理系统
使用JSP + Servlet + JDBC实现MVC 使用JSP + Servlet + DBUtils实现MVC 1.Servlet 封装,使用反射Servlet支持多个方法(BaseServlet抽取) 2.使用BaseServlet解决中文乱码问题 ...
JSP 演示代码 技术:JSP Servlet JavaBean Filter 实现:过滤器实现权限登录功能。
完美实现应聘人员信息的录入 ,对员工的增删改查(分页),处罚和奖惩管理,工资管理,工资,培训的管理,
jsp+servlet实现CRUD功能,ajax验证用户名,退出系统,数据库密码加密,过滤器解决中文乱码,实现分页功能,实现导出Excel等等功能。页面不是很美观、、、、
1、利用JSP+Servlet实现简单的个人博客网站,主要功能包括用户注册(注册验证)、用户登录、发文、删除发文和查看发文。...(3)设计用户登录验证过滤器,当用户访问发文页面时,要求用户先进行登录,跳转到登录页面。