jsp经验-Filter

过滤器

1.

jsp经验-Filter

2.配置web.xml

jsp经验-Filter
和配servlet几乎相同的格式

3.init() 方法介绍

与Servlet需要配置自启动才会随着tomcat的启动而执行init()方法不一样。 (有点考验语文水平 这句子)

而对于Filter, Filter一定会随着tomcat的启动自启动。

4.Filter启动失败

jsp经验-Filter

jsp经验-Filter
jsp经验-Filter

额外小知识

jsp经验-Filter
jsp经验-Filter

login.html中加上

之前还以为:上面这句话是当前页面以UTF-8编码 ![](https://images2018.cnblogs.com/blog/1175089/201804/1175089-20180408222626140-1168803018.png) ![](https://images2018.cnblogs.com/blog/1175089/201804/1175089-20180408222643561-2001138447.png)

2.返回中文的响应
在Servlet中,加上

response.setContentType("text/html; charset=UTF-8");

在通过Servlet获取中文参数 时

Filter帮我们解决 ,在每个servlet都写request.setCharacterEncoding("UTF-8");的麻烦问题

小疑惑

<%@ page contentType="text/html;charset=UTF-8" language="java"
pageEncoding="UTF-8"%>

我把charset=UTF-8" 删了,既然也是不会报乱码错误的

pageEncoding="UTF-8" 原来这个才是 此JSP页面编码。

1 : 在Servlet中进行登陆验证的局限性

在用户是否登陆的验证中,我们可以通过在StudentListServlet中增加对session的判断代码来做到登陆验证。
但是按照这样的做法,所有的Servlet都要加上一样的代码,就会显得比较累赘。
与通过Filter处理中文问题一样,也可以通过Filter一次性解决所有的登陆验证问题
jsp经验-Filter

注意:

因为这个过滤器的存在,在登陆之前所有的资源都不能访问。 所以在login.jsp上如果有图片,js和css,也不能够正常显示和工作。

这样做当然是不行的,那么如何让js css和图片文件即使在不登陆的情况下,也可以访问呢?