zoukankan
html css js c++ java
JAVA WEB中的Servlet过滤器
实现一个Servlet过滤器,可以对用户登录情况进行控制。要求如下:
1)访问路径是admin下的资源,需要登录,如果用户没有登录,自动转向用户登录页面。用户登录成功后,再次访问admin下的资源不需要登录。
2)访问其他路径下的资源,不需要登录,可直接访问。
3)必须使用Servlet过滤器实现该功能。
工具:eclipse、tomcat
过程如下:
一、制作登录界面,其中包含用户名以及密码的验证(实验内容),另外加了一个验证是否是因为访问受限资源而跳转到登陆界面(flag),只能将获得path通过form表单的post方式发送出去,不能在Java代码中直接将path放入request请求,这样即使放入成功,在servlet中也获取不到,因为下面还有form表单的提交,两个request不在一个作用域中,因此,我将获取的path信息放入一个input标签中,并使之隐藏,这样既可以成功发送,又不影响原界面的美观。
二、 制作访问路径过滤器
(1) 将请求转换为http请求
(2) 判断获得用户名是否为空(是否已经登陆)
(3) 获得当前请求的访问路径(用于登陆后跳转至原界面而不是一个固定的界面)
(4) 如果用户名不为空,说明已经登陆则可以直接访问
(5) 如果用户名为空,说明用户还未登陆,如果url也不为空,记录将要访问的url中的最后/和访问的文件名放入request中,并且令flag等于1(说明是重定向至登录界面,而不是直接访问登录界面)将所有请求重定向至登录界面。
三、在web.xml中配置相应属性,用于过滤器过滤admin路径下的所有资源
四、配置四个界面,基本不做任何处理,放一段文字即可,然后配置统一的css属性,改变其背景颜色,并令其居中显示,四个文件以及css配置如下:(两个界面放置在admin目录下,一个another.jsp界面放在admin外面,不需要登陆即可访问,fail.jsp是用户登录失败的界面,下面仅以介绍success1.jsp为例)
五、编写success1.jsp界面,在session中获取登陆的用户名并且展示在界面上
六、编写LoginServlet类,用于用户登陆之后进行验证等操作
(1) 将字符转码
(2) 获取请求的用户名密码以及访问路径
(3) 判断用户名及密码是否正确
(4) 如果正确,设置session有效值为30分钟,把用户名放入session中
(5) 判断访问路径是否为空,以及是否为null字符串(经过index.jsp界面的转换,可能将null转换为String类型)
(6) 判断访问路径是否为登录界面,如果不是,就跳转到用户请求的界面,否则登陆成功后就跳转到固定的admin目录下面success1.jsp界面。
(7) 如果用户名或密码错误就跳转到失败界面。
项目源码下载地址:
点此下载
查看全文
相关阅读:
struts2中拦截器与过滤器之间的区别
使用struts2中默认的拦截器以及自定义拦截器
图解Tomcat类加载机制
Eclipse项目中引用第三方jar包时将项目打包成jar文件的两种方式
SQL中的四种连接方式
My97datepicker日期控件
Java中如何判断一个日期字符串是否是指定的格式
jxl导入/导出excel
优化myeclipse启动速度以及解决内存不足问题
170726、常用 Git 命令清单
原文地址:https://www.cnblogs.com/zqm-sau/p/10331883.html
最新文章
Http Header里的Content-Type
Http请求中Content-Type讲解以及在Spring MVC中的应用
Http请求中Content-Type讲解以及在Spring MVC中的应用
spring事务管理几种方式
JAXB注解使用
hibernate annotation 之 注解声明
Hibernate的一个注释 @Transient
fastjson 过滤不需要序列化的属性
transient在java中的作用
sql stuff拼接字符串的用法
热门文章
sql 查询问题
C#winfrom listview 设置显示图片
C#winform datagridview单元格的单击处理
sql还原数据库时候改变数据库名
一些验证的正则表达式
利用VS2015自带的报表制作报表
VS2015遇到的自带报表的问题
SQL SERVER 备份数据库时候错误处理
导入数据思路+进度条
log4j 配置详解
Copyright © 2011-2022 走看看