0
点赞
收藏
分享

微信扫一扫

【JavaWeb】案例:用户登录、用户自动登录


【JavaWeb】案例:用户登录、用户自动登录_web


👀专栏介绍

【JavaWeb】 目前主要更新JavaWeb,一起学习一起进步。

👀本期介绍

本期主要介绍案例:用户登录、用户自动登录

文章目录

​​1、案例一:用户登录​​

​​1.1、需求说明​​

​​1.2、流程分析图​​

​​1.3、案例代码实现​​

​​2、案例二:用户自动登录【重点】​​

​​2.1、问题说明&流程分析​​

​​2.2、知识讲解:过滤器【重点】​​

​​2.2.1、过滤器简述及入门案例​​

​​2.2.2、过滤器的生命周期&放行​​

​​2.2.3、过滤器链及执行流程​​

​​2.2.4、过滤器的配置(知道如何配置)​​

​​2.2.5、FilterConfig 对象(了解)​​

​​2.3、案例代码实现​​

1、案例一:用户登录

1.1、需求说明

【JavaWeb】案例:用户登录、用户自动登录_javaweb_02

1.2、流程分析图


1 、点击登录按钮时,在服务器根据表单用户名和密码,判断是否登录成功(本案例不考虑登录失



败)



2、登录成功,将用户信息存入 session 作用域,请求转发到 index.jsp 展示信息



(详见老师课上讲解)


1.3、案例代码实现

login.jsp

【JavaWeb】案例:用户登录、用户自动登录_servlet_03

UserServlet

【JavaWeb】案例:用户登录、用户自动登录_mvc_04

UserService

【JavaWeb】案例:用户登录、用户自动登录_javaweb_05

 UserDao

【JavaWeb】案例:用户登录、用户自动登录_javaweb_06

index.jsp

【JavaWeb】案例:用户登录、用户自动登录_java_07


2、案例二:用户自动登录【重点】

2.1、问题说明&流程分析

登录成功后,重新打开浏览器时,index.jsp 上的登录状态就会消失,就会需要人工重新登录。

【JavaWeb】案例:用户登录、用户自动登录_mvc_08



我们希望有一个程序,在我们打开 index.jsp 时,若我们之前就已经登录成功了,即使登录状态消




失了,也




能自动帮我们输入之前的用户名和密码,帮我们重新登录。




这就是自动登录。




帮助我们实现自动登录的载体,就是过滤器。



2.2、知识讲解:过滤器【重点】

2.2.1、过滤器简述及入门案例



什么是过滤器(任何实现了 Filter 接口的实现类,都是过滤器)




过滤器是一个运行在服务器端的程序,先于与之相关的 servlet 或 JSP 页面之前运行,实现对请求



资源的过滤的功能。


【JavaWeb】案例:用户登录、用户自动登录_mvc_09


登录:成功 ( session 作用域记录用户登录状态),失败(在 request 作用域记录用错误信息)


过滤器可附加到一个或多个 servlet 或 JSP 页面上,可以检查请求信息,也可以处理响应信息。


Filter 的基本功能是对 Servlet 容器调用 Servlet 的过程进行拦截,从而在 Servlet 执行前后实现


一些特殊的功能。


过滤器常用实例


自动登录,解决全站乱码,屏蔽非法文字,进行响应数据压缩,等等

过滤器入门案例:

【JavaWeb】案例:用户登录、用户自动登录_mvc_10


【JavaWeb】案例:用户登录、用户自动登录_javaweb_11

【JavaWeb】案例:用户登录、用户自动登录_servlet_12

 

【JavaWeb】案例:用户登录、用户自动登录_web_13

访问这个项目的任意资源,都会先执行过滤器,再执行资源。

【JavaWeb】案例:用户登录、用户自动登录_web_14

2.2.2、过滤器的生命周期&放行


创建:随着项目启动而创建


销毁:随着项目关闭而销毁

目标资源:访问哪个资源 ,被过滤器拦截了,这个资源就是你的目标资源

【JavaWeb】案例:用户登录、用户自动登录_servlet_15

放行:把请求继续向后传递,直至传递给目标资源 

【JavaWeb】案例:用户登录、用户自动登录_mvc_16

【JavaWeb】案例:用户登录、用户自动登录_web_17


2.2.3、过滤器链及执行流程


开发中我们会存在多个过滤器


根据 web.xml 中 <filter-mapping> 标签的放置顺序决定:从上到下依次执行



【JavaWeb】案例:用户登录、用户自动登录_web_18


2.2.4、过滤器的配置(知道如何配置)

url-pattern 的配置与 servlet 中的配置一样:

【JavaWeb】案例:用户登录、用户自动登录_mvc_19


servlet-name 的配置,通过 url-pattern 拦截一个 Servlet 的资源 . 也可以通过 servlet-name 标签进


行拦截.


dispatcher 的配置

 

【JavaWeb】案例:用户登录、用户自动登录_servlet_20


2.2.5、FilterConfig 对象(了解)

FilterConfig 对象

【JavaWeb】案例:用户登录、用户自动登录_mvc_21

 

【JavaWeb】案例:用户登录、用户自动登录_mvc_22


2.3、案例代码实现


UserServlet (修改 servlet ,让 servlet 在登录成功时,把用户名密码永久保存到 cookie 中,方便


过滤器进行自动登录)


【JavaWeb】案例:用户登录、用户自动登录_mvc_23

web.xml 加入:(filter-class 路径自己设置)

【JavaWeb】案例:用户登录、用户自动登录_javaweb_24

 AutoLoginFilter:(过滤器通过保存用户名密码的 cookie,进行自动登录)

【JavaWeb】案例:用户登录、用户自动登录_javaweb_25

举报

相关推荐

0 条评论