1.客户端免登陆操作:
欢迎界面
2.服务器端
A.接受cookie
Default 的servlet:提取客户端的cookie信息从中提取用户名和密码,验证用户名和密码是否有效
登陆成功:跳转到Main的servlet(显示主页)
登陆失败:跳转到index.html(登陆界面)
B.撰写cookie
Login的servlet:用户登陆成功之后把用户名和密码写到cookie中
2.过滤器的使用
A.servlet1:字符集检验+检验数据的合法性
B.servlet2:字符集检验+检验数据的合法性
C.servlet3(登陆):字符集检验+检验数据的合法性——不走filter
提炼出filter:字符集检验+检验数据的合法性——提取通用功能,在访问资源之前进行过滤操作=设置网站的信息(request,response)+验证
如何创建filter:
A.第一步:创建一个类实现Filter接口,覆盖该接口的三个方法
1)Init();
2)doFilter();——过滤器的功能写到该方法中
3)destroy();
B.第二步:在web.xml配置一下Filter
<filter>
<filter-name></filter-name>
<filter-class>包名.类名(必须是准确的)<filter-class>
</filter>
<filter-mapping>
<filter-name></filter-name>
<url-pattern>/servlet/*</url-pattern>(该工程的所有servlet需要走filter而其他静态界面不需要,但如果写/*则该工程下所有的资源都要经过filter
</filter-mapping>
FIlter的特点:
1)filter是单例模式,只会创建一个对象
2)web容器启动的时候就会创建Filter对象,第一次访问时才会创建servlet
3)每次客户端请求只要符合url-pattern的条件,就会进入do-Filter方法
4)多个filter的时候执行的先后顺序是按照web.xml的配置的先后顺序来决定的
5)过滤器越多,程序执行功能越慢,3个就已经很慢了(字符核查;用户cookie验证;关键字核查)
6)过滤器有两个结果:放行或者踢出(必须选择其一)
7)并不是所有的servlet都需要经过filter,用servlet和filter的路径配置来完成