1.创建数据库,输入需要的内容
#判断存在即删除数据库
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;
2.创建需要跳转的页面,完成页面内容
![](https://i-blog.csdnimg.cn/blog_migrate/0dc25bfd70c1ceab58158f2e11030ff1.png)
2.1.设置成功页面
<%@ page import="com.fu.bean.Goods" %>
<%@ page import="java.util.List" %>
<%@ page import="com.fu.bean.User" %>
<%--
Created by IntelliJ IDEA.
User: 86135
Date: 2023/2/17
Time: 18:48
To change this template use File | Settings | File Templates.
--%>
<html>
<head>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<title>成功</title>
</head>
<body>
<h3>欢迎来自${login.address}的${login.username}来到成功页面</h3>
<table>
<tr>
<th>商品编号</th>
<th>商品名称</th>
<th>商品价格</th>
<th>商品编说明</th>
</tr>
<c:forEach items="${goodsList}" var="goods">
<tr>
<td>${goods.gid}</td>
<td>${goods.gname}</td>
<td>${goods.price}</td>
<td>${goods.mark}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
3.完成Java内容,进行分层
![](https://i-blog.csdnimg.cn/blog_migrate/af76dbdb305343b97e026a35837435f4.png)
3.1创建User和Goods实体类
package com.fu.bean;
public class User {
private Integer uid;
private String usermane;
private String password;
private String phone;
private String address;
public Integer getUid() {
return uid;
}
public void setUid(Integer uid) {
this.uid = uid;
}
public String getUsermane() {
return usermane;
}
public void setUsermane(String usermane) {
this.usermane = usermane;
}
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;
}
@Override
public String toString() {
return "User{" +
"uid=" + uid +
", usermane='" + usermane + '\'' +
", password='" + password + '\'' +
", phone='" + phone + '\'' +
", address='" + address + '\'' +
'}';
}
}
package com.fu.bean;
public class Goods {
private Integer gid;
private String gname;
private String price;
private String mark;
public Integer getGid() {
return gid;
}
public void setGid(Integer gid) {
this.gid = gid;
}
public String getGname() {
return gname;
}
public void setGname(String gname) {
this.gname = gname;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getMark() {
return mark;
}
public void setMark(String mark) {
this.mark = mark;
}
@Override
public String toString() {
return "Goods{" +
"gid=" + gid +
", gname='" + gname + '\'' +
", price='" + price + '\'' +
", mark='" + mark + '\'' +
'}';
}
}
3.2创建jdbc工具类
package com.fu.util;
import com.fu.bean.User;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class JDBCUtil {
//执行业务
public static String classname = "com.mysql.cj.jdbc.Driver";
public static String url = "jdbc:mysql://127.0.0.1:3306/mydb";
public static String user = "root";
public static String pwd = "root";
public static Connection connection = null;
public static ResultSet rs = null;
public static PreparedStatement ps = null;
public static Connection connection() {
try {
//添加驱动
Class.forName(classname);
//获取链接
connection = DriverManager.getConnection(url, user, pwd);
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
//关闭资源
public static void colse(ResultSet rs,PreparedStatement ps,Connection connection){
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (connection != null) {
connection.close();
}
} catch (Exception e) {
}
}
public static void colse(PreparedStatement ps,Connection connection){
try {
if (ps != null) {
ps.close();
}
if (connection != null) {
connection.close();
}
} catch (Exception e) {
}
}
}
3.3创建接口
package com.fu.dao;
import com.fu.bean.User;
public interface UserDao {
/**
* 完成用户登陆操作
* @param username
* @param password
* @return 数据库中查询到的完整xinxi
*/
User login(String username,String password);
/**
* 完成用户信息注册
* @param user 封装了用户信息
* @return 插入数据后受影响的行数
*/
int zhuce(User user);
List<Goods> selectAll();
}
3.4完善接口
package com.fu.dao.impl;
import com.fu.bean.User;
import com.fu.dao.UserDao;
import com.fu.util.JDBCUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class UserDaoImpl implements UserDao {
//执行业务
private Connection connection = null;
private PreparedStatement ps = null;
private ResultSet rs = null;
private User login = null;
private int a = 0;
@Override
public User login(String username, String password) {
try {
//调用jdbc工具类
connection = JDBCUtil.connection();
//定义sql语句
String sql = "select * from t_user where username=? and password=?";
//获取预处理
ps = connection.prepareStatement(sql);
//传参
ps.setObject(1, username);
ps.setObject(2, password);
//执行查询
rs = ps.executeQuery();
//解析结果集
if (rs.next()) {
login = new User();
login.setUid(rs.getInt("uid"));
login.setUsermane(rs.getString("username"));
login.setPassword(rs.getString("password"));
login.setPhone(rs.getString("phone"));
login.setAddress(rs.getString("address"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//释放资源
JDBCUtil.colse(rs, ps, connection);
}
return login;
}
@Override
public int zhuce(User user) {
try {
//调用jdbc工具类
connection = JDBCUtil.connection();
//定义sql语句
String sql = "insert into t_user(username,password,phone,address) values(?,?,?,?)";
//获取预处理
ps = connection.prepareStatement(sql);
//传参
ps.setObject(1, user.getUsermane());
ps.setObject(2, user.getPassword());
ps.setObject(3, user.getPhone());
ps.setObject(4, user.getAddress());
//执行添加
a = ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
//释放资源
JDBCUtil.colse(ps, connection);
}
return a;
}
public List<Goods> selectAll() {
try {
//调用jdbc工具类
connection = JDBCUtil.connection();
//定义sql语句
String sql = "select * from t_goods";
//获取预处理
ps = connection.prepareStatement(sql);
//执行添加
rs = ps.executeQuery();
//遍历结果集
while (rs.next()){
Goods goods=new Goods();
goods.setGid(rs.getInt("gid"));
goods.setGname(rs.getString("gname"));
goods.setPrice(rs.getString("price"));
goods.setMark(rs.getString("mark"));
goodsList.add(goods);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//释放资源
JDBCUtil.colse(ps, connection);
}
return goodsList;
}
}
3.5完成登录和注册
3.5.1登录代码
package com.fu.servlet;
import com.fu.bean.User;
import com.fu.dao.UserDao;
import com.fu.dao.impl.UserDaoImpl;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/login")
public class Login 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 {
//设置编码格式
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");
UserDao dao=new UserDaoImpl();
User login = dao.login(username, password);
//判断用户信息是否为空
if (login != null) {
System.out.println("登陆成功");
HttpSession session = request.getSession();
session.setAttribute("login",login);
request.getRequestDispatcher("selectGoodsAll").forward(request,response);
} else {
resp.sendRedirect("sb.jsp");
}
}
}
3.5.2注册代码
package com.fu.servlet;
import com.fu.bean.User;
import com.fu.dao.UserDao;
import com.fu.dao.impl.UserDaoImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/zhuce")
public class Zhuce 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 {
//设置编码格式
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");
String phone = req.getParameter("phone");
String address = req.getParameter("address");
//封装到User对象中
User user=new User();
user.setUsermane(username);
user.setPassword(password);
user.setPhone(phone);
user.setAddress(address);
System.out.println(user);
//JDBC操作
UserDao dao=new UserDaoImpl();
int zhuce = dao.zhuce(user);
//做出响应
if(zhuce>0){
//注册成功
resp.sendRedirect("login.jsp");
} else {
//注册失败
resp.sendRedirect("zhuce.jsp");
}
}
}
3.5.3创建selectgoodsall类
package com.fu.servlet;
import com.fu.bean.Goods;
import com.fu.dao.UserDao;
import com.fu.dao.impl.GoodsDaoImpl;
import com.fu.dao.impl.UserDaoImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;
@WebServlet("/selectGoodsAll")
public class SelectGoodsAll extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码格式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
UserDao goodsDao=new GoodsDaoImpl();
List<Goods> goodsList = goodsDao.selectAll();
System.out.println(goodsList);
HttpSession session = request.getSession();
session.setAttribute("goodsList",goodsList);
response.sendRedirect("cg.jsp");
}
}
4.浏览器页面展示
进入主界面,点击登录,没有账号点击注册账号,注册成功跳转登录界面,输入内容登录完成。
![](https://i-blog.csdnimg.cn/blog_migrate/5170bb93150db755fd287b34a8ad0035.png)