在页面上对商品进行登录,全查,添加,修改,删除,模糊查询

文章描述了一个使用JavaServlet和JDBC进行商品管理的系统实现。包括登录页面的部署,全查商品信息,添加新商品,删除商品,修改商品信息的功能,并涉及模糊查询。每个功能都涉及到前端页面部署和后端Servlet处理,以及与数据库的交互。
摘要由CSDN通过智能技术生成
  • 登录

  1. 点击去登陆,对登录页面进行部署

<%--
  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>
  1. 登录成功,跳转到主页

  • 全查

  1. 点击登录,跳转到主页,把商品信息展示到页面

创建一个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 西瓜

运行结果

  • 修改

  1. 点击修改跳转到修改信息页面,对页面进行部署(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();
        }

    }
}

页面展示

点击修改

对商品进行修改

跳转到主页,修改成功

  • 模糊查询

  1. 在主页添加搜索框,进行页面部署

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();
        }

    }
}

页面展示

结果展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值