MySQL驱动及JQuery文件:
链接:https://pan.baidu.com/s/10RNLJ4dwxEoJYUUE32Q9qw
提取码:fpqr
一、需求:
1、用户访问主登录页面,可填写登录信息并提交。
2、根据用户提交信息查询数据库中进行用户校验。
3、校验失败,主登录页面给提示信息。
4、登录成功,则显示登录成功页面。3天之内每次访问主登录页面即刻跳转登录成功页面。
5、在登录成功页面有一个查询数据库所有信息的按钮,一点击按钮,则立马显示数据库所有用户数据。
二、实现思路
1、三个jsp文件作页面显示,三个servlet作页面之间跳转的逻辑判断。
2、LoginServlet进行主登录页面显示之前的逻辑判断:
A、如果之前登录成功,通过浏览器cookie中的uid查询用户信息,重新缓存session,然后重定向登录成功页面succeed.jsp;
B、如果之前未登录成功,则请求转发主登录页面login.jsp。
3、login.jsp显示主登录页面,采集用户输入的用户名和密码信息,数据提交给CheckServlet。
4、CheckServlet对用户输入的数据进行校验:
A、校验成功则将该用户信息以session的形式存储,同时响应给浏览器一个三天有限的存储着用户编号的cookie;然后重定向到succeed.jsp。
B、校验失败则给request对象打一个标记,请求转发到login.jsp(login.jsp显示主登录页面时如果能拿到该标记,则提示用户名或密码错误)。
5、succeed.jsp进行登录成功的页面展示,提示“某某用户登录成功”。
注:以上可实现用户登录校验及三天免登录需求
---------------------------------------------------------------------------------------------------------------------------------------------
6、在succeed.jsp登录成功页面有一个查询数据库所有用户信息的按钮,一点击则立马重定向到ShowAllServelt。
7、ShowAllServelt根据用户可查询数据库中用户的所有信息,返回一个List集合,该List集合存储在request对象中,然后请求转发ShowAll.jsp。
8、ShowAll.jsp通过request对象拿到List集合,然后遍历输出所有用户信息。
三、部分运行效果图
1、主登录页面(未登录时)
2、主登录页面(登录失败时)
3、登录成功页面
4、显示所有用户信息页面
注意:请注意我的地址栏信息哦。
四、具体实现
前置:导入数据库驱动的jar包,引入JQuery文件(事件触发我使用JQuery写的)
1、MySQL文件
use d_student;
create table t_user(
uid int auto_increment primary key,
uname varchar(20),
pwd varchar(20)
)charset=utf8;
insert into t_user values(default,'张三','123456');
insert into t_user values(default,'李四','123456');
select * from t_user;
2、配置文件
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>04-login</display-name>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.imooc.servlet.LoginServlet</servlet-class>
</servlet>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>CheckServlet</servlet-name>
<servlet-class>com.imooc.servlet.CheckServlet</servlet-class>
</servlet>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>ShowAllServlet</servlet-name>
<servlet-class>com.imooc.servlet.ShowAllServlet</servlet-class>
</servlet>
<servlet-mappin