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



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

项目源码下载地址:

点此下载

原文地址:https://www.cnblogs.com/zqm-sau/p/10331883.html

时间: 2024-08-27 10:47:06

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

Java web 实验五 Servlet过滤器

loginform.html <html> <head> <title>使用过滤器改变请求编码</title> <meta http-equiv="Content-Type" content="text/html;charset=GB2312"> </head> <body> <center> <h2>请输入用户名和口令:</h2> <for

Java Web中的servlet、jsp、session等的用法。

1.当服务器响应客户端之后,request和response会立即销毁,在客户端去访问服务器的时候就开启Servlet,当Servlet开启之后就会产生request和response. 2.访问Servlet的6种方式:通过地址栏输入网址提交访问(直接在浏览器上写网址访问),表单访问,超链接访问,伪链接访问,函数访问,用Java代码访问(不讲). ①地址栏输入网址提交访问:http://ip:port/项目名称/user.do<后面可以追加参数,别忘了追加前加一个'?'>  ===>其

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

在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可以分两种情况,当然啦两者使用相对路径是一致,本文只说绝对路径. 情况一.指向外部的web组件和本身关系不大的,这一类的有:html中使用路径的标签,比如<a>标签中的href;servlet和jsp中的重定向sendRedirect(path); 情况二.指向内部的web组件和本身有关系的,这一类我暂时看到的有:servlet或者jsp的转发 假设在myapp项目下有

java web.xml listener servlet 和filter的加载顺序

在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter. 最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 Servle

JAVA Web学习篇--Servlet

Servlet由来 做过BS项目的人都知道,浏览器可以依据HTML静态标记语言来显示各式各样的网页.可是假设我们须要在网页上完毕一些业务逻辑:比方登陆验证.或者说网页显示的内容在server的数据库中.假设是这样,除了负责显示的HTML标记之外,必须还要有完毕这些业务功能的代码存在.这样的网页我们就叫做动态网页. 对于静态网页而言,server上存在的是一个个纯HTML文件.当client浏览器发出HTTP请求时,server能够依据请求的URL找到相应的HTML文件,并将HTML代码返回给cl

jQuery框架+DWR框架实现的Java Web中的Ajax效果(异步请求,局部刷新)

一 简介和实现效果 这里用一个小例子来简单举例说明,做一个搜索引擎搜索提示效果,通过不断输入字符,然后在下方给出搜索提示.效果图如下: 通过上图可以看到,当输入一个"a"时,提示了很多内容,然后继续输入一个"e"后,提示的范围明显就变小了. 注:在文末我会给出完整源代码的下载链接,以供大家参考 二 具体实现 1 在eclipse for java ee中创建一个Java Web工程,然后导入相应的jar包,特别说明的是:这里要导入一个额外的dwr.jar.也就是说,

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

根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析:   2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码,应该先检测系统编码是什么样的,看看是否支持中文编码的字符集. System.out.println(System.getProperty("file.encoding")); a1.如果是不支持中文的就要设置jvm编码了,设置方法: Windows环境就在catalina.bat配置: s

java web中路径问题。

转自:http://blog.csdn.net/liang5630/article/details/38474543 如有侵权,请及时联系本人及时删除 在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可以分两种情况,当然啦两者使用相对路径是一致,本文只说绝对路径. 情况一.指向外部的web组件和本身关系不大的,这一类的有:html中使用路径的标签,比如<a>标签中的href;servlet和jsp中的重定向sendR

Java Web中涉及的编解码

用户从浏览器发起一个HTTP请求,存在编码的地方是URL.Cookie.Paramiter.服务器端接收到HTTP请求后要解析HTTP协议,其中URL.Cookie和POST表单参数要解码,服务器端可能还需要读取硬盘数据(数据库.文件),这些数据都可能存在编码问题.当Servlet处理完所有请求的数据后,需要将这些数据再编码通过Socket发送到用户请求的浏览器里,再经过浏览器解码成为文本.这些过程用图表示如下: 1.URL的编解码 为了验证浏览器是怎么编码URL的,我们选择FireFox浏览器