Servlet例题详解未用JSP

创建ServletIDEA创建

Servlet+JDBC

主要实现对Product表的查看、删除和添加、该功能必须是在Admin管理员登录后才能查看、删除、添加Product表的信息

1.1 项目搭建

1.1.1mysql创建数据库–>SQLyog双击打开
CREATE DATABASE shopping CHARACTER SET utf8;
USE shopping;
CREATE TABLE product(
	id INT PRIMARY KEY AUTO_INCREMENT,
	NAME VARCHAR(20) NOT NULL,
	price DOUBLE NOT NULL,
	firstdate DATE NOT NULL
)CHARSET=utf8;
INSERT INTO product(NAME,price,firstdate) VALUES('且初身体乳',167,'2022-03-17');
INSERT INTO product(NAME,price,firstdate) VALUES('奥古斯汀巴德洗发水',578,'2022-02-18');
INSERT INTO product(NAME,price,firstdate) VALUES('MakeUpForEver粉底液',407,'2022-03-22');
INSERT INTO product(NAME,price,firstdate) VALUES('迪奥水桶包',28733,'2022-03-08');
INSERT INTO product(NAME,price,firstdate) VALUES('迪奥粉底液',6344.9,'2022-03-08');
CREATE TABLE admin(
	NAME VARCHAR(20) NOT NULL,
	PASSWORD VARCHAR(20) NOT NULL
)CHARSET=utf8;
INSERT INTO admin(NAME,PASSWORD) VALUES('libai','1111');

表1
表2

1.1.2

src下面创建包+src下面new–>Resource Bundle创建属性文件+web下面–>WEB-INF下面新建lib文件夹,导包,并且Add as Libaray
在这里插入图片描述

new–>Package–>entity (实体层)
new–>Package–>dao
new–>Package–>dao–>impl
new–>Package–>service
new–>Package–>service->impl
new–>Package–>controller
new–>Package–>jsp
new–>Package–>utils
new–>Package–>filter

1.1.3database.properties

注意位置在src同级目录下

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3308/shopping?useUnicode=true&characterEncoding=utf-8
username=root
password=123456
initialSize=10//初始化大小
maxActivee=20//最大连接数
minIdle=5//最小连接数
maxWait=3000//最大等待时间
1.1.4 DbUtils

通用类,使用Druid连接池和事务

package text.frist.Emp.utils;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class DbUtils {
    public static DruidDataSource ds ;
    public static final ThreadLocal<Connection> THREAD_LOCAL=new ThreadLocal<>();
    static{
        Properties properties = new Properties();
        InputStream is = DbUtils.class.getResourceAsStream("/database.properties");
        try {
            properties.load(is);
            ds = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static Connection getConnection(){
        Connection connection = THREAD_LOCAL.get();
        if(connection==null){
            try {
                connection = ds.getConnection();
                THREAD_LOCAL.set(connection);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return connection;
    }
    //开始事务
    public static void begin(){
        Connection connection = null;
        try {
            connection = getConnection();
            connection.setAutoCommit(false);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    //提交事务
    public static void commit(){
        Connection connection = null;
        try {
            connection =getConnection();
            connection.commit();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            CloseAll(connection,null,null);
        }
    }
    //回滚
    public static void rollback(){
        Connection connection = null;
        try {
            connection =getConnection();
            connection.rollback();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            CloseAll(connection,null,null);
        }
    }
    public static void CloseAll(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet){
        try {
            if(connection!=null){
                connection.close();
                THREAD_LOCAL.remove();
            }
            if(preparedStatement!=null){
                preparedStatement.close();
            }
            if(resultSet!=null){
                resultSet.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

2.1 实体层–>Product商品类+Admin管理员类

package text.frist.Emp.entity;

import java.util.Date;

public class Product {
    private int id;
    private String name;
    private double price;
    private Date firstdate;

    public Product() {
    }

    public Product(int id, String name, double price, Date firstdate) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.firstdate = firstdate;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public Date getFirstdate() {
        return firstdate;
    }

    public void setFirstdate(Date firstdate) {
        this.firstdate = firstdate;
    }

    @Override
    public String toString() {
        return "Product{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", price=" + price +
                ", firstdate=" + firstdate +
                '}';
    }
}

package text.frist.Emp.entity;

public class Admin {
    private String name;
    private String password;

    public Admin() {
    }

    public Admin(String name, String password) {
        this.name = name;
        this.password = password;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "Admin{" +
                "name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

3.dao层

3.1 ProductDao接口和AdminDao接口
import text.frist.Emp.entity.Product;

import java.util.List;

public interface ProductDao {
    public int insert(Product product);
    public int update(Product product);
    public int delete(int id);
    public Product select(int id);
    public List<Product> selectAll();
}

package text.frist.Emp.dao;

import text.frist.Emp.entity.Admin;

public interface AdminDao {
    public  Admin select(String name);
}

3.2 ProductDaoImpl类(实现ProductDao)+AdminDaoImpl类(实现AdminDao)

主要实现对数据库的访问,提供增删改查的方法

3.2.1ProductDaoImpl类,实现对商品的增删改查

使用commons-dbutils包下的QueryRunner类实现增删改查
update()方法只要给connection、sql、Object[]三个参数
query()方法要给connection、sql、new BeanHandler<Product>(Product.class)或者new BeanListHandler<Product>(Product.class)三个参数

package text.frist.Emp.dao.impl;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import text.frist.Emp.dao.ProductDao;
import text.frist.Emp.entity.Product;
import text.frist.Emp.utils.DbUtils;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class ProductDaoImpl implements ProductDao {
    private QueryRunner queryRunner = new QueryRunner();

    @Override
    public int insert(Product product) {
        Object[] param = {product.getId(),product.getName(),product.getPrice(),product.getFirstdate()};
        try {
           int result = queryRunner.update(DbUtils.getConnection(),"insert into product(id,name,price,firstdate) values(?,?,?,?); ",param);
            return result;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    @Override
    public int update(Product product) {
        Object[] param = {product.getName(), product.getPrice(), product.getFirstdate(), product.getId()};
        try {
            int result = queryRunner.update(DbUtils.getConnection(), "update product set name=?,price=?,firstdate=? where id = ?;", param);
            return result;
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return 0;
    }

    @Override
    public int delete(int id) {
        try {
            int result = queryRunner.update(DbUtils.getConnection(), "delete from product where id=?", id);
            return result;
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return 0;
    }

    @Override
    public Product select(int id) {
        Product product = null;
        try {
            product = queryRunner.query(DbUtils.getConnection(), "select *from product where id =?", new BeanHandler<Product>(Product.class), id);
            return product;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public List<Product> selectAll() {
        List<Product> productList = new ArrayList<>();
        try {
            productList = queryRunner.query(DbUtils.getConnection(),"select *from product",new BeanListHandler<Product>(Product.class));
            return productList;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}

3.2.2 AdminDaoImpl类(实现AdminDao)

主要是实现查询管理员是否存在、实现登录查询

package text.frist.Emp.dao.impl;


import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import text.frist.Emp.dao.AdminDao;
import text.frist.Emp.entity.Admin;
import text.frist.Emp.utils.DbUtils;

import java.sql.SQLException;

public class AdminDaoImpl implements AdminDao {
    private QueryRunner queryRunner = new QueryRunner();
    @Override
    public Admin select(String name) {
        Admin admin = null;
        try {
            admin =queryRunner.query(DbUtils.getConnection(),"select *from admin where name=?",new BeanHandler<Admin>(Admin.class),name);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return admin;
    }
}

4. service层–>ProductServiceImpl类+AdminServiceImpl类

4.1ProductServiceImpl类

实现添加商品、删除商品

package text.frist.Emp.serive.impl;

import text.frist.Emp.dao.ProductDao;
import text.frist.Emp.dao.impl.ProductDaoImpl;
import text.frist.Emp.entity.Product;
import text.frist.Emp.serive.ProductService;
import text.frist.Emp.utils.DbUtils;

import java.util.ArrayList;
import java.util.List;

public class ProductServiceImpl implements ProductService {
    private ProductDao productDao = new ProductDaoImpl();

    @Override
    public int modify(Product product) {
        int result = 0;
        try {
            DbUtils.begin();
            result = productDao.update(product);
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }

        return result;
    }

    @Override
    public int remove(int id) {
        int result = 0;
        try {
            DbUtils.begin();
            result = productDao.delete(id);
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return result;
    }

    @Override
    public Product show(int id) {
        Product product = null;
        try {
            DbUtils.begin();
            product = productDao.select(id);
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return product;
    }

    @Override
    public int add(Product product) {
        int result =0;
        try {
            DbUtils.begin();
            result = productDao.insert(product);
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return result;
    }

    @Override
    public List<Product> showAll() {
        List<Product> productList = new ArrayList<>();
        try {
            DbUtils.begin();
            productList = productDao.selectAll();
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }

        return productList;
    }
}

4.2 AdminServiceImpl类

实现管理员登录功能

package text.frist.Emp.serive.impl;

import text.frist.Emp.dao.AdminDao;
import text.frist.Emp.dao.impl.AdminDaoImpl;
import text.frist.Emp.entity.Admin;
import text.frist.Emp.serive.AdminService;
import text.frist.Emp.utils.DbUtils;

public class AdminServiceImpl implements AdminService {
    private AdminDao adminDao =new AdminDaoImpl();
    @Override
    public Admin login(String username, String password) {
        Admin admin = null;
        try {
            DbUtils.begin();
            Admin temp = adminDao.select(username);
            if(temp!=null){
                if(temp.getPassword().equals(password)){
                    admin = temp;
                }
            }
            DbUtils.commit();
        } catch (Exception e) {
            DbUtils.rollback();
            e.printStackTrace();
        }
        return admin;
    }
}

5.1在web目录下新建 login.html

当前项目路径(如我的路径是untitled1_war_exploded)查看方式
在这里插入图片描述

form标签提交的路径是管理员登录的Servlet,controller目录下右键new–>Create new Servlet,命名为AdminLoginController,注解@WebServlet(value=“admin/adminLoginController”)
验证码提交的路径是创建验证码的Servlet,controller目录下右键new–>Create new Servlet,命名为CreateCodeController,注解@WebServlet(value = “admin/createCodeController”)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/untitled1_war_exploded/admin/adminLoginController" method="post">
    用户名:<input type="text" name="name"><br>
    密码:<input type="password" name="password"><br>
    验证码:<input type="text" name="inputVcode"><img src="/untitled1_war_exploded/admin/createCodeController"><br>
    <input type="submit" value="登录">
</form>
</body>
</html>

6.1 Servlet

在controller和jsp目录下新建

6.1.1 CreateCodeController创建验证码的Servlet

package text.frist.Emp.controller;

import cn.dsna.util.images.ValidateCode;

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;

@WebServlet(name = "CreateCodeController", value = "/admin/createCodeController")
public class CreateCodeController extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ValidateCode code = new ValidateCode(100,30,5,10);
        String codes =code.getCode();
        HttpSession session = request.getSession();
        session.setAttribute("codes",codes);
        code.write(response.getOutputStream());
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

6.1.2 AdminLoginController用户登录的Servlet

package text.frist.Emp.controller;

import text.frist.Emp.entity.Admin;
import text.frist.Emp.serive.AdminService;
import text.frist.Emp.serive.impl.AdminServiceImpl;

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;

@WebServlet(name = "AdminLoginController", value = "/admin/adminLoginController")
public class AdminLoginController extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.收参
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        String inputVcode = request.getParameter("inputVcode");
        HttpSession session = request.getSession();
        String codes =(String)session.getAttribute("codes");
        if((!inputVcode.isEmpty())&&inputVcode.equalsIgnoreCase(codes)){
            AdminService adminService = new AdminServiceImpl();
            Admin admin =adminService.login(name,password);
            if(admin!=null){
                HttpSession session1 = request.getSession();
                session1.setAttribute("admin",admin);
                response.sendRedirect(request.getContextPath()+"/admin/safe/showAllProductController" );
            }else {
                response.sendRedirect(request.getContextPath()+"/login.html");
            }

        }else {
            response.sendRedirect(request.getContextPath()+"/login.html");
        }

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

6.1.3 ShowAllProductController展示所有商品的Servlet

package text.frist.Emp.controller;

import text.frist.Emp.entity.Product;
import text.frist.Emp.serive.ProductService;
import text.frist.Emp.serive.impl.ProductServiceImpl;

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(name = "ShowAllProductController", value = "/admin/safe/showAllProductController")
public class ShowAllProductController extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ProductService productService = new ProductServiceImpl();
        List<Product> productList = productService.showAll();
        request.setAttribute("products", productList);
        request.getRequestDispatcher("/admin/safe/showAllProductJSP").forward(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

6.1.4 ShowAllProductJSP展示所有商品的JSP、并提供删除和添加方法

对商品实现增加和删除是通过 ?传递商品id、实现操作

package text.frist.Emp.jsp;

import text.frist.Emp.entity.Product;
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.io.PrintWriter;
import java.util.List;

@WebServlet(name = "ShowAllProductJSP",value = "/admin/safe/showAllProductJSP")
public class ShowAllProductJSP extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       List<Product> productList =(List<Product>)request.getAttribute("products");
        PrintWriter printWriter = response.getWriter();
        printWriter.println("<html>");
        printWriter.println("<head>");
        printWriter.println("<meta charset='UTF-8'>");
        printWriter.println("<title>所有商品显示</title>");
        printWriter.println("</head>");
        printWriter.println("<body>");
        printWriter.println("<h1>欢迎您:</h1>");
        printWriter.println("<table border='1'>");
        printWriter.println("<tr>");
        printWriter.println("<td>Id</td>");
        printWriter.println("<td>Name</td>");
        printWriter.println("<td>price</td>");
        printWriter.println("<td>firstdate</td>");
        printWriter.println("<td>删除</td>");
        printWriter.println("<td>增加</td>");
        printWriter.println("</tr>");
        for (Product product : productList
        ) {
            printWriter.println("<tr>");
            printWriter.println("<td>" + product.getId() + "</td>");
            printWriter.println("<td>" + product.getName() + "</td>");
            printWriter.println("<td>" + product.getPrice()+ "</td>");
            printWriter.println("<td>" +product.getFirstdate() + "</td>");
            printWriter.println("<td><a href='"+request.getContextPath()+"/admin/safe/removeProductController?id="+product.getId()+"'>删除</a></td>");
            printWriter.println("<td><a href='"+request.getContextPath()+"/admin/safe/addProductInfoJSP?id="+product.getId()+"'>增加</a></td>");
            printWriter.println("</tr>");
        }
        printWriter.println("</table>");
        printWriter.println("</body>");
        printWriter.println("</html>");

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

6.1.5 filter过滤器,页面跳转时验证是否登录过,对每个页面进行编码

CharacterEncoding编码

package text.frist.Emp.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebFilter(filterName = "CharacterEncoding",value = "/admin/*")
public class CharacterEncoding implements Filter {
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=UTF-8");
        chain.doFilter(req, resp);
    }

    public void init(FilterConfig config) throws ServletException {

    }

}

CheckFilter验证是否登录过

package text.frist.Emp.filter;

import text.frist.Emp.entity.Admin;
import text.frist.Emp.serive.AdminService;
import text.frist.Emp.serive.impl.AdminServiceImpl;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebFilter(filterName = "CheckFilter",value = "/admin/safe/*")
public class CheckFilter implements Filter {
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) resp;
        HttpSession session = request.getSession();
        Admin admin =(Admin)session.getAttribute("admin");
        if(admin!=null){
            chain.doFilter(req, resp);
        }else {
            response.sendRedirect(request.getContextPath()+"/login.html");
        }

    }

    public void init(FilterConfig config) throws ServletException {

    }

}

7.1 实现商品的增和删

在这里插入图片描述

7.1.1 点击“增加”跳转到AddProductInfoJSP类

form表单把填写到input的信息post给AddProductController类
在这里插入图片描述

package text.frist.Emp.jsp;

import text.frist.Emp.entity.Product;
import text.frist.Emp.serive.ProductService;
import text.frist.Emp.serive.impl.ProductServiceImpl;

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.io.PrintWriter;
import java.util.List;

@WebServlet(name = "AddProductInfoJSP", value = "/admin/safe/addProductInfoJSP")
public class AddProductInfoJSP extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ProductService productService = new ProductServiceImpl();
        List<Product> productList = productService.showAll();
        PrintWriter printWriter = response.getWriter();
        printWriter.println("<html>");
        printWriter.println("<head>");
        printWriter.println("<meta charset='utf-8'>");
        printWriter.println("<title>增加商品</title>");
        printWriter.println("</head>");
        printWriter.println("<body>");
        printWriter.println("<form action='/untitled1_war_exploded/admin/safe/addProductController' method='post'>");
        printWriter.println("商品id:<input type='text' name='id' value='"+(productList.size()+1)+"'><br/> ");
        printWriter.println("商品名:<input type='text' name='name' value=''><br/> ");
        printWriter.println("商品价格:<input type='text' name='price' value=''> <br/>");
        printWriter.println("商品日期:<input type='text' name='firstdate' value=''> <br/>");
        printWriter.println("<input type='submit' value='增加'>");
        printWriter.println("</from>");
        printWriter.println("</body>");
        printWriter.println("</html>");

    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

7.1.2 AddProductController类增加商品的Servlet

package text.frist.Emp.controller;

import text.frist.Emp.dao.ProductDao;
import text.frist.Emp.dao.impl.ProductDaoImpl;
import text.frist.Emp.entity.Product;
import text.frist.Emp.serive.ProductService;
import text.frist.Emp.serive.impl.ProductServiceImpl;
import text.frist.Emp.utils.DateUtils;

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.Date;

@WebServlet(name = "AddProductController", value = "/admin/safe/addProductController")
public class AddProductController extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.收参
        Integer id = Integer.valueOf(request.getParameter("id"));
        String name = request.getParameter("name");
        double price = Double.parseDouble(request.getParameter("price"));
        Date firstDate = DateUtils.StrToUtil(request.getParameter("firstdate"));
        Product product = new Product(id, name, price, DateUtils.UtilToSql(firstDate));
        ProductService productService = new ProductServiceImpl();
        productService.add(product);
        response.sendRedirect(request.getContextPath() + "/admin/safe/showAllProductController");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

7.1.3 点击“删除”,则删除商品的RemoveProductController类
package text.frist.Emp.controller;

import text.frist.Emp.serive.ProductService;
import text.frist.Emp.serive.impl.ProductServiceImpl;

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(name = "RemoveProductController",value = "/admin/safe/removeProductController")
public class RemoveProductController extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Integer id=Integer.valueOf(request.getParameter("id"));
        ProductService productService = new ProductServiceImpl();
        int result = productService.remove(id);
        if(result!=0){
            request.getRequestDispatcher("/admin/safe/showAllProductController").forward(request,response);
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

素心如月桠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值