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) 如果用户名或密码错误就跳转到失败界面。
项目源码下载地址:
点此下载
查看全文
相关阅读:
本地Springboot项目打包成docker镜像并上传到云仓库的全流程
vue 组件开发到发布到npm全流程
Python创建文件
Ngrinder脚本开发各细节锦集(groovy)
Ngrinder多接口的混合场景压测比例设定方案
Pycahrm出现推送失败的处理方案,出现Push failed: Failed with error: Authentication failed for 'https://gitee.com/fxcity/Temporary_Test.git/'
接口测试提取csrf_token和session
Postman提取html返回值
HttpRunnerManager自动化测试安装部署(CentOS)
【转载】centos下搭建RabbitMQ
原文地址:https://www.cnblogs.com/zqm-sau/p/10331883.html
最新文章
使用 sp_executesql 动态执行sql
数据批量删除_从页面js到后台数据库
炫酷的Html+css (一)
[RDLC]心得整理(一)
心得整理之一--RDLC多数据源多表
数据库执行存储过程优化(1)
Linq to Sql 左连接 , 取右表可能为 null的 int类型字段
ZIP文件流压缩和解压
开发中常用的sql语句二
[反射]通用方法 命名空间,类,对象,属性
热门文章
宿主插件模式
数据交换运行状况检查
多线程学习笔记(六)线程的安全性问题
多线程学习笔记(五)守护线程
多线程学习笔记(四)线程的优先级
多线程学习笔记(三)线程的中断
多线程学习笔记(二)线程的挂起跟恢复
多线程学习笔记(一)线程的创建
关于一些java面试题的思考--数据库篇
关于一些java面试题的思考--java集合篇
Copyright © 2011-2022 走看看