Servlet 入门—小案例1

servlet 入门案例打算做一个用户管理系统,主要核心功能就是用户的增删改查。假设你学完了java 基础,具备 jdbc 的技术能力。下面开干:

 第一步 准备工作

定义实体,简单起见,只有三个属性。

public class User {
    
    private Integer userId;
    private String userName;
    private Date birthday;

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
}

建库建表:

CREATE DATABASE /*!32312 IF NOT EXISTS*/`servlet_demo` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin */;

USE `servlet_demo`;

/*Table structure for table `tb_user` */

DROP TABLE IF EXISTS `tb_user`;

CREATE TABLE `tb_user` (
  `user_id` bigint(20) DEFAULT NULL,
  `username` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL,
  `birthday` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

第二步,编写 servelt

这里有个问题,servlet 要处理增删改查 4 种业务逻辑,怎么办呢,我们之前都是一个 servlet 只做一种事情。

这里有两种思路:自定义参数来标识业务类型,或者使用 servlet 自带的 http 方法,doPost、doGet、doDelete、doPut。

自定义参数,你会写很多的 if 判断。


@WebServlet(urlPatterns = {"/users"})
public class UserServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException {
        String method = req.getParameter("method");
        if ("add".equals(method)) {

        } else if ("delete".equals(method)) {

        } else if ("update".equals(method)) {

        } else if ("select".equals(method)) {

        } else {
            // 不支持的方法
            throw new ServletException("该方法不支持!");
        }

    }
}

第二种方式基本代码如下:

@WebServlet(urlPatterns = {"/users"})
public class UserRestfulServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 新增
    }

    @Override
    protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 删除
    }

    @Override
    protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 修改
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException {
        // 查询
    }


}

好了,两种方式,任选一种,需要注意的是:

第一种方式,前端使用的都是 get 方式请求,第二种方式,前端需要分别使用不同方式请求:post、put、get、delete。

大家可以试着写一写。


如果觉得还不错的话,关注、分享、在看(关注不失联~), 原创不易,且看且珍惜~

 

posted on 2021-09-18 11:33  XuHe1  阅读(53)  评论(0编辑  收藏  举报