登录
点击去登陆,对登录页面进行部署
<%--
Created by IntelliJ IDEA.
User: 小贠
Date: 2023/2/18
Time: 15:23
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 action="login" method="post">
账号:<input type="text" name="username" value=""><br/>
密码:<input type="password" name="password" value=""><br/>
<input type="submit" value="登录">
</form>
<a href="zhuce.jsp">没有账号,去注册</a>
</body>
</html>
登录成功,跳转到主页
全查
点击登录,跳转到主页,把商品信息展示到页面
创建一个selvelt类(SelectAllGoods)
在Goodsdao里面写jdbc全查的代码
public List<Goods> selectAll() throws SQLException {
List<Goods> goodsList = new ArrayList<>();
con = JDBCUtil.getCon();
String sql="select * from t_goods";
ps = con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
Goods goods=null;
goods=new Goods();
goods.setGid(rs.getInt("gid"));
goods.setGname(rs.getString("gname"));
goods.setPrice(rs.getDouble("price"));
goods.setMark(rs.getString("mark"));
goodsList.add(goods);
}
JDBCUtil.close(rs,ps,con);
return goodsList;
}
package com.servlet;
import com.bean.Goods;
import com.dao.Goodsdao;
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.sql.SQLException;
import java.util.List;
@WebServlet("/SelectAllGoods")
public class SelectAllGoods 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 {
//1.设置请求代码的格式
req.setCharacterEncoding("utf-8");//设置请求代码为中文
resp.setCharacterEncoding("utf-8");//设置响应的代码为中文
System.out.println("SelectAllGoods.....dopost");
//去查询数据库中商品信息表中的数据
Goodsdao goodsDao=new Goodsdao();
try {
List<Goods> goosList = goodsDao.selectAll();
System.out.println(goosList);
HttpSession session=req.getSession();//获取HttpSession对象
//把查询到商品信息集合储存到session对象中,起名为goodsList
session.setAttribute("goodsList",goosList);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
resp.sendRedirect("zhuye.jsp");
}
}
页面展示
添加
1.点击添加跳转到商品信息录入页面,对页面进行部署(addGoods)
<%--
Created by IntelliJ IDEA.
User: 小贠
Date: 2023/2/23
Time: 12:12
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>商品信息录入</h2>
<form action="addGoods" method="post">
商品名称:<input type="text" name="gname" value="" placeholder="商品名称"><br/>
商品名称:<input type="number" name="price" value="" placeholder="商品价格"><br/>
商品名称:<input type="text" name="mark" value="" placeholder="商品说明"><br/>
<input type="submit" value="提交">
</form>
</body>
</html>
2.点击提交把添加的信息部署到页面上
创建一个selvelt类(AddGoods)
在Goodsdao里面写jdbc添加的代码
public int add(Goods goods) throws SQLException {
con = JDBCUtil.getCon();
String sql="insert into t_goods(gname,price,mark) values(?,?,?)";
ps = con.prepareStatement(sql);
ps.setObject(1,goods.getGname());
ps.setObject(2,goods.getPrice());
ps.setObject(3,goods.getMark());
row= ps.executeUpdate();
JDBCUtil.close(rs,ps,con);
return row;
}
package com.servlet;
import com.bean.Goods;
import com.dao.Goodsdao;
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;
import java.sql.SQLException;
@WebServlet("/addGoods")
public class AddGoods 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");//设置响应的代码为中文
Goods goods=new Goods();
goods.setGname(req.getParameter("gname"));
goods.setPrice(Double.parseDouble(req.getParameter("price")));
goods.setMark(req.getParameter("mark"));
Goodsdao goodsDao=new Goodsdao();
try {
int row= goodsDao.add(goods);
if(row>0){
req.getRequestDispatcher("SelectAllGoods").forward(req,resp);
}else {
req.setAttribute("error_msg","添加商品信息失败");
req.getRequestDispatcher("error.jsp").forward(req,resp);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
成功查询所有,跳转到SelectAllGoods执行代码,失败跳转到失败页面
3.运行结果
信息录入
页面展示
删除
1.对页面进行部署 三者相互对应
2.点击删除删除商品的全部信息
创建一个selvelt类(DelGoods )
在Goodsdao里面写jdbc删除的代码
public int delect(int gid) throws SQLException {
con = JDBCUtil.getCon();
String sql="delete from t_goods where gid=?";
ps = con.prepareStatement(sql);
ps.setObject(1,gid);
row= ps.executeUpdate();
JDBCUtil.close(rs,ps,con);
return row;
}
package com.servlet;
import com.dao.Goodsdao;
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;
import java.sql.SQLException;
@WebServlet("/del")
public class DelGoods 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 {
int gid=Integer.parseInt(req.getParameter("gid"));
Goodsdao goodsdao=new Goodsdao();
try {
int row=goodsdao.delect(gid);
if(row>0){
req.getRequestDispatcher("SelectAllGoods").forward(req,resp);
}else {
req.setAttribute("error_msg","删除出现了问题");
req.getRequestDispatcher("error.jsp").forward(req,resp);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
成功再次查询所有,跳转到SelectAllGoods执行代码,失败跳转到失败页面
3.运行结果
点击删除5 西瓜
运行结果
修改
点击修改跳转到修改信息页面,对页面进行部署(showGoods)
<%--
Created by IntelliJ IDEA.
User: 小贠
Date: 2023/2/25
Time: 9:59
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>商品信息修改</title>
</head>
<body>9
<h2>商品信息修改</h2>
<form action="update" method="post">
商品编号:<input type="text" name="gid" value="${goods.gid}" readonly="readonly" placeholder="商品编号"/><br/>
商品名称:<input type="text" name="gname" value="${goods.gname}" placeholder="商品名称"/><br/>
商品价格:<input type="number" name="price" value="${goods.price}" placeholder="商品价格"/><br/>
商品说明:<input type="text" name="mark" value="${goods.mark}" placeholder="商品说明"/><br/>
<input type="submit" value="修改">
</form>
</body>
</html>
2.点击修改跳转到servlet,后端根据id查询到该商品的信息
package com.servlet;
import com.bean.Goods;
import com.dao.Goodsdao;
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;
import java.sql.SQLException;
@WebServlet("/findById")
public class FindById 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 {
int gid=Integer.parseInt(req.getParameter("gid"));
Goodsdao goodsdao=new Goodsdao();
try {
Goods goods =goodsdao.selectById(gid);
if (goods!=null){
//查询商品信息成功,存入request域中,然后请求转发到页面展示数据
req.setAttribute("goods",goods);
req.getRequestDispatcher("showGoods.jsp").forward(req,resp);
}else {
req.setAttribute("error_msg","修改出现了异常");
req.getRequestDispatcher("error.jsp").forward(req,resp);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
3.把商品信息添加到request作用域中请求转发到信息展示页面;
public Goods selectById(int gid) throws SQLException {
Goods goods=null;
con = JDBCUtil.getCon();
String sql="select * from t_goods where gid=?";
ps = con.prepareStatement(sql);
ps.setObject(1,gid);
rs=ps.executeQuery();
if (rs.next()){
goods=new Goods();
goods.setGid(rs.getInt("gid"));
goods.setGname(rs.getString("gname"));
goods.setPrice(rs.getDouble("price"));
goods.setMark(rs.getString("mark"));
}
JDBCUtil.close(rs,ps,con);
return goods;
}
4.编写后端servlet获取用户最新修订的商品信息,执行数据库的修改操作
public int update( Goods goods,int gid) throws SQLException {
int s=0;
con = JDBCUtil.getCon();
String sql="UPDATE t_goods set gname=?,price=?,mark=? where gid=?";
ps = con.prepareStatement(sql);
ps.setObject(1,goods.getGname());
ps.setObject(2,goods.getPrice());
ps.setObject(3,goods.getMark());
ps.setObject(4,gid);
s=ps.executeUpdate();
JDBCUtil.close(rs,ps,con);
return s;
}
}
5.重新请求查询所有商品,跳转到商品信息主页;
package com.servlet;
import com.bean.Goods;
import com.dao.Goodsdao;
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;
import java.sql.SQLException;
@WebServlet("/update")
public class UpdateGoods 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 {
//1.设置请求代码的格式
req.setCharacterEncoding("utf-8");//设置请求代码为中文
resp.setCharacterEncoding("utf-8");//设置响应的代码为中文
//获取表单提交的数据,封装到goods对象中
Goods goods =new Goods();
int gid=Integer.parseInt(req.getParameter("gid"));
goods.setGname(req.getParameter("gname"));
goods.setPrice(Double.parseDouble(req.getParameter("price")));
goods.setMark(req.getParameter("mark"));
System.out.println(goods);
Goodsdao goodsdao=new Goodsdao();
int row = 0;
try {
row = goodsdao.update(goods,gid);
if (row>0){
req.getRequestDispatcher("SelectAllGoods").forward(req,resp);
}else{
req.setAttribute("error_msg","修改出现了问题");
req.getRequestDispatcher("error.jsp").forward(req,resp);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
页面展示
点击修改
对商品进行修改
跳转到主页,修改成功
模糊查询
在主页添加搜索框,进行页面部署
2.
创建一个selvelt类(Seach)
在Goodsdao里面写jdbc模糊查询的代码
public List<Goods> seach(String keyword) throws SQLException {
List<Goods> goodsList = new ArrayList<>();
con = JDBCUtil.getCon();
String sql="select * from t_goods where gname like concat('%',?,'%')";
ps = con.prepareStatement(sql);
ps.setObject(1,keyword);
rs=ps.executeQuery();
while(rs.next()){
Goods goods=null;
goods=new Goods();
goods.setGid(rs.getInt("gid"));
goods.setGname(rs.getString("gname"));
goods.setPrice(rs.getDouble("price"));
goods.setMark(rs.getString("mark"));
goodsList.add(goods);
}
JDBCUtil.close(rs,ps,con);
return goodsList;
}
package com.servlet;
import com.bean.Goods;
import com.dao.Goodsdao;
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.sql.SQLException;
import java.util.List;
@WebServlet("/seach")
public class Seach 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");//设置响应的代码为中文
String keyword=req.getParameter("keyword");
//执行jdbc模糊查询的操作
Goodsdao goodsdao=new Goodsdao();
try {
List<Goods> goodsList=goodsdao.seach(keyword);
System.out.println(goodsList);
HttpSession session= req.getSession();
session.setAttribute("goodsList",goodsList);
resp.sendRedirect("zhuye.jsp");
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
页面展示
结果展示