一,首先完成数据库方面的建库和建表
#判断存在即删除数据库
drop database if exists mydb;
#创建数据库
create database mydb;
#使用数据库
use mydb;
#创建表
create table t_user
(
uid int primary key auto_increment,
username varchar(20),
password varchar(20),
phone varchar(11),
address varchar(50)
);
insert into t_user(username,password,phone,address) values('张三','666','18965423548','南阳');
insert into t_user(username,password,phone,address) values('李四','333','18754263548','许昌');
insert into t_user(username,password,phone,address) values('小美','123','18565234759','信阳');
select * from t_user;
create table t_goods
(
gid int primary key auto_increment,
gname varchar(20),
price double,
mark varchar(100)
);
insert into t_goods(gname,price,mark) values('泡面',4.5,'够香够辣就是这个味!');
insert into t_goods(gname,price,mark) values('火腿',8.5,'肉质细腻Q弹!');
insert into t_goods(gname,price,mark) values('雪碧',3.5,'清爽冰凉随心爽!');
select * from t_goods;
二,完成Java部分代码编写
思路:
1,首先完成首页选择去登录进入登录页面
2,通过登录(查询数据库中的)账号与密码进行登录
3,成功进入一个页面,失败进入另一个页面
一,完成首页
<%--
Created by IntelliJ IDEA.
User: ThinkPad
Date: 2023/2/15
Time: 16:29
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>首页</title>
</head>
<body>
<%-- 点击后会前往相应的页面--%>
<a href="deng.jsp">去登陆</a>
</body>
</html>
二,登录页面
<%--
Created by IntelliJ IDEA.
User: ThinkPad
Date: 2023/2/15
Time: 16:49
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登陆</title>
</head>
<body>
<%--创建表单--%>
<%--deng就是通过servlet容器来调用Java部分代码--%>
<%--post是将输入的数据隐藏,get是不隐藏--%>
<form action="deng" method="post">
账号:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登陆"><br>
<a href="index.jsp">返回首页</a><br>
</form>
</body>
</html>
三,成功进入商品页面
<%--
Created by IntelliJ IDEA.
User: ThinkPad
Date: 2023/2/17
Time: 19:28
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>主页</title>
</head>
<body>
<form>
<table >
<tr>
<td>泡面</td>
<td>4.5</td>
<td>够香够辣就是这个味!</td>
</tr>
<tr>
<td>火腿</td>
<td>8.5</td>
<td>肉质细腻Q弹!</td>
</tr>
<tr>
<td>雪碧</td>
<td>3.5</td>
<td>清爽冰凉随心爽!</td>
</tr>
</table>
</form>
</body>
</html>
四,失败进入失败页面,并可以返回到登录页面
<%--
Created by IntelliJ IDEA.
User: ThinkPad
Date: 2023/2/17
Time: 19:26
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>错误</title>
</head>
<body>
<a>出错了!!</a>
<a href="deng.jsp">重新登陆</a><br>
</body>
</html>
五,完成Java部分(JDBC)
package com.aa.servlet;
public class Login {
private int uid;
private String username;
private String password;
private String phone;
private String address;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Login() {
}
public Login(int uid, String username, String password, String phone, String address) {
this.uid = uid;
this.username = username;
this.password = password;
this.phone = phone;
this.address = address;
}
@Override
public String toString() {
return "Login{" +
"uid=" + uid +
", username='" + username + '\'' +
", password='" + password + '\'' +
", phone='" + phone + '\'' +
", address='" + address + '\'' +
'}';
}
}
package com.aa.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.*;
public class Deng extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取deng.jsp文件中账号和密码的name属性
req.setCharacterEncoding("utf-8");//解决请求时中文时出现乱码问题(请求)
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;Charset=UTF-8");//解决响应是中文时出现乱码问题(响应)
String username = req.getParameter("username");
String password = req.getParameter("password");
Connection con = null;
PreparedStatement pstm = null;
ResultSet rs = null;
Login login = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC", "root", "root");
String sql = "select * from t_user where username=? and password=?";
pstm = con.prepareStatement(sql);
pstm.setObject(1, username);
pstm.setObject(2, password);
rs = pstm.executeQuery();
if (rs.next()) {
login = new Login();
int uid = rs.getInt("uid");
login.setUid(uid);
login.setUsername(rs.getString("username"));
login.setPassword(rs.getString("password"));
login.setPhone(rs.getString("phone"));
login.setAddress(rs.getString("address"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (rs != null) {
pstm.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
if (login != null) {
resp.sendRedirect("zhuye.jsp");
} else {
resp.sendRedirect("error.jsp");
}
}
}
六,核心的Servlet部分
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--配置Servlet类-->
<servlet>
<!--起别名-->
<servlet-name>deng</servlet-name>
<!--java部分文件的路径-->
<servlet-class>com.aa.servlet.Deng</servlet-class>
</servlet>
<!--Servlet的映射-->
<servlet-mapping>
<!--起的别名-->
<servlet-name>deng</servlet-name>
<!--所要跳转的url的名-->
<url-pattern>/deng</url-pattern>
</servlet-mapping>
</web-app>