业务逻辑
模拟用户登陆操作:
如上图所示,当客户端通过浏览器访问login.jsp页面进行登陆操作,用户输入用户名、密码提交请求至服务端check.jsp页面,check.jsp页面拿到用户名、密码去数据库进行校验,若该用户名及密码存在数据库中,即登陆成功,页面跳转至success.jsp页面,否则跳转至failure.jsp页面。
前期准备
1.数据库建表以及插入数据
drop table if exists user;
create table user(
id varchar(30) primary key,
name varchar(30) not null,
password varchar(30) not null
);
insert into user values ('110','张三','abc');
insert into user values ('111','李四','123');
insert into user values ('112','王五','456');
2.通过数据库可视化工具查看表中数据
业务实现
1.新建一个动态web项目(以IDEA为例)
2.导入数据库驱动(以mysql为例)
右键web目录,新建lib文件夹,将mysql驱动复制到该文件夹下即可注意是web目录右键新建lib目录不是WEB-INF右键
3.login.jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登陆页</title>
</head>
<body>
<form action="check.jsp" method="post">
用户名:<input type="text" name="uname"><br/>
密码:<input type="password" name="upwd"><br/>
<input type="submit" value="提交">
</form>
</body>
</html>
4.check.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %> //导入需要的包
<html>
<head>
<title>检查页</title>
</head>
<body>
<%!
// 定义变量
String URL = "jdbc:mysql://localhost:3306/test?useSSL=false";
String UNAME = "root";
String UPWD = "19960825";
%>
<%
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
boolean flag = false;
%>
<%
request.setCharacterEncoding("utf-8");
try {
// 注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 获取连接
connection = DriverManager.getConnection(URL,UNAME,UPWD);
// 获取数据库操作对象
String sql = "select * from user where name=? and password=?";
pstmt = connection.prepareStatement(sql);
pstmt.setString(1,request.getParameter("uname"));
pstmt.setString(2,request.getParameter("upwd"));
rs = pstmt.executeQuery();
if (rs.next()){
// 能到这一步说明用户名、密码合法
flag = true;
}
}catch (Exception e){
e.printStackTrace();
}finally {
try {
rs.close();
pstmt.close();
connection.close();
}catch (Exception e){
e.printStackTrace();
}
}
%>
<%
if (flag){
request.getRequestDispatcher("success.jsp").forward(request,response);
}else {
response.sendRedirect("failure.jsp");
}
%>
</body>
</html>
5.success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>欢迎页</title>
</head>
<body>
欢迎您:<br/>
<%
request.setCharacterEncoding("utf-8");
String name = request.getParameter("uname");
out.print(name);
%>
</body>
</html>
6.failure.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>失败页</title>
</head>
<body>
用户名或密码有误!
</body>
</html>
部署项目并运行
1.开启tomcat,并访问login.jsp进行登陆操作
2.输入用户名:张三
密码:abc
3.用户名、密码正确,页面跳转到了success.jsp页面