实现一个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) 如果用户名或密码错误就跳转到失败界面。



****************************************

项目源码下载地址:

点此下载

JAVA WEB中的Servlet过滤器的更多相关文章

  1. java web 中的servlet讲解

    首先,解释一下解释一下什么是servlet?说一说Servlet的生命周期? servlet有良好的生存期的定义,包括加载和实例化.初始化.处理请求以及服务结束.这个生存期由javax.servlet ...

  2. Java WEB中的servlet

    1.什么是servlet 2.servlet实现的过程 3.servlet的生命周期 4.servlet实现类及实现方法 什么是servlet Servlet 是在服务器上运行的小程序.这个词是在 J ...

  3. Java Web 中 过滤器与拦截器的区别

    过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法u ...

  4. java web中servlet、jsp、html 互相访问的路径问题

    java web中servlet.jsp.html 互相访问的路径问题 在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可 ...

  5. 深入分析Java Web中的编码问题

    编码问题一直困扰着我,每次遇到乱码或者编码问题,网上一查,问题解决了,但是实际的原理并没有搞懂,每次遇到,都是什么头疼. 决定彻彻底底的一次性解决编码问题. 1.为什么要编码 计算机的基本单元是字节, ...

  6. Java Web中解决乱码的方式

    Java Web中解决乱码的方式 方式一:添加编码过滤器 package com.itmacy.dev.filter; import javax.servlet.*; import javax.ser ...

  7. Java web中常见编码乱码问题(一)

    最近在看Java web中中文编码问题,特此记录下. 本文将会介绍常见编码方式和Java web中遇到中文乱码问题的常见解决方法: 一.常见编码方式: 1.ASCII 码 众所周知,这是最简单的编码. ...

  8. Java web中常见编码乱码问题(二)

    根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析:   2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码, ...

  9. Java Web 中使用ffmpeg实现视频转码、视频截图

    Java Web 中使用ffmpeg实现视频转码.视频截图 转载自:[ http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html  ...

随机推荐

  1. java之异常详解

    一.什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错.在java中,阻止当前方法或作用域正常运行的情况,称之为异常. 二.异常体系 Java把异常当作对象来处理,并定义一个基类java. ...

  2. Microsoft Access数据库操作类(C#)

    博文介绍的Microsoft Access数据库操作类是C#语言的,可实现对Microsoft Access数据库的增删改查询等操作.并且该操作类可实现对图片的存储,博文的最后附上如何将Image图片 ...

  3. R 实用命令 1

    Quit and restart a clean R session from within R? If you're in RStudio: command/ctrl + shift + F10 . ...

  4. Element-UI 2.4.11 版本 使用注意(发现一点更新一点)

    1.$Vue.$refs.addForm.resetFields() 的resetFields()方法重置到默认值并不是 ,你在form绑定对象上写的默认值 ,而是这个form被渲染出来之后第一次赋到 ...

  5. 小白学Python(7)——利用Requests下载网页图片、视频

    安装 Requests 如果安装了Requests就已经可用了,否则要安装 Requests,只要在你的CMD中运行这个简单命令即可: pip install requests requests使用 ...

  6. rocketMQ部署

    rocketMQ部署(单机) 1.          环境: CentOS7 64  &  JDK1.8+ 64  & 用户:www 2.          下载binary文件包: ...

  7. springboot --AopLog

    在项目 pom.xml 文件中添加依赖: <!-- aop 依赖 --> <dependency> <groupId>org.springframework.boo ...

  8. app发布当天,用户无法登录

    原因:当用户登录时候有商城用户的触发器存在,它会让商城用户也更新成登录状态. 由于用户量大,导致数据库锁死. 最后解决案:删掉触发器,在app的接口登录程序里,追加商城用户更新成登录的操作. 他案1: ...

  9. 二分查找法---scala方式

    二分查找法---scala方式 ,b) } }

  10. SSH密码和秘钥认证原理

    SSH登录方式主要分为两种: 1. 用户名密码验证方式 说明: (1) 当客户端发起ssh请求,服务器会把自己的公钥发送给用户: (2) 用户会根据服务器发来的公钥对密码进行加密: (3) 加密后的信 ...