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) 如果用户名或密码错误就跳转到失败界面。
项目源码下载地址:
点此下载
查看全文
相关阅读:
python 多进程队列数据处理
python mqtt 客户端实现
elasticsearch 父子关系
elasticsearch Mapping使用自定义分词器
elk 解决浏览器跨域问题
elasticsearch 英文数字组合字符串模糊检索
elasticsearch 关联单词查询以及Shingles
elasticsearch 分析器 分词器
Leetcode: Binary Tree Postorder Traversal
Leetcode: Binary Tree Preorder Traversal
原文地址:https://www.cnblogs.com/zqm-sau/p/10331883.html
最新文章
format内置函数
生成器内容
函数相关练习题
函数的基本内容总结
用for循环计算(1-3+5-7...99)的结果(两种方法)
if条件语句
变量的介绍
fromkeys语法/set集合/深浅拷贝/列表/字典的删除
可视化iOS应用程序开发的6个Xcode小技巧
2014-4-24
热门文章
2015 - 4- 22越狱环境搭建2
2015 - 4- 21 iOS开发越狱环境的搭建1
两个程序之间的跳转机制
系统地图的用法
友盟分享流程
让tableView的某行移动到tableView的某位置
iOS中清除缓存的方法 以及SDWebimage自带的清除缓存方法
xib中快捷键
OpenCV/Python/dlib眨眼检测
openface人脸识别框架
Copyright © 2011-2022 走看看