浩浩学编程JavaWeb-08综合案例实现表单增删改查

JavaWeb 专栏收录该内容
8 篇文章 0 订阅

综合案例 实现表单的 增删改查

1. user.java 建立一个uesr类

package com.hou.web03;

import javax.servlet.annotation.WebServlet;

/**
 * @author haoqi
 * @Date 2020/10/7 - 9:36
 */

public class User {
    private Integer id;
    private String name;
    private Double score;

    public User(Integer id, String name, Double score) {
        this.id = id;
        this.name = name;
        this.score = score;
    }


    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public Double getScore() {
        return score;
    }

    public void setScore(Double score) {
        this.score = score;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", score=" + score +
                '}';
    }
    
}

2.userServlet.java创建user的对象并操作

package com.hou.web03;

import javax.servlet.ServletConfig;
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.util.HashMap;
import java.util.Map;

/**
 * @author haoqi
 * @Date 2020/10/8 - 9:24
 */

@WebServlet("/users")
public class UserServlet extends HttpServlet {
    public static Map<Integer,User> map = new HashMap<>();


    @Override
    public void init(ServletConfig config) throws ServletException {
        //表中的默认内容,在初始化方法里只调用一次
        map.put(1,new User(1,"haoqi",19.0));
        map.put(2,new User(2,"dapeng",9.0));
        map.put(3,new User(3,"safei",99.0));

    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String method = req.getParameter("method");
        if (method == null) //默认显示操作
            method = "showAll";

        switch (method){
            case "delete":
                String idStr = req.getParameter("id");
                Integer id = Integer.parseInt(idStr);
                map.remove(id);
//                resp.sendRedirect("/users"); // 方法1: 实现自动刷新显示操作
//                break; // 方法2: 实现自动刷新显示操作,注释掉break
            case "showAll":
                req.setAttribute("list",map.values());
                req.getRequestDispatcher("index.jsp").forward(req,resp);
                break;
            case "findId":
                idStr = req.getParameter("id");
                id = Integer.parseInt(idStr);
                req.setAttribute("user",map.get(id));
                req.getRequestDispatcher("update.jsp").forward(req,resp);
                break;
        }

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        req.setCharacterEncoding("UTF-8"); //防止乱码

        String idStr = req.getParameter("id");
        String name = req.getParameter("name");
        String scoreStr = req.getParameter("score");
        Integer id = Integer.parseInt(idStr);
        Double score = Double.parseDouble(scoreStr);
        //返回添加内容
        User user = new User(id,name,score);
        map.put(id,user);
        resp.sendRedirect("/users");
    }
}

3.index.jsp表单的提交

引导包
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="javax.print.DocFlavor" %>
<%@ page import="com.sun.xml.internal.ws.client.RequestContext" %><%--
  Created by IntelliJ IDEA.
  User: haoqi
  Date: 2020/10/7
  Time: 8:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
  <head>
    <title>综合案例</title>
  </head>
  <body>
  $END$

<%--  <%String name = (String) request.getAttribute("name");%>--%>

<%--  //传统方法--%>
<%--  <%=name%>--%>
<%--  </hr>--%>
<%--  //EL表达式--%>
<%--  ${name}--%>


<%--    <%--%>
<%--      pageContext.setAttribute("name","haoqi");--%>
<%--      request.setAttribute("name","saifei");--%>
<%--      session.setAttribute("name","dapeng");--%>
<%--      application.setAttribute("name","xuchao");--%>
<%--    %>--%>

<%--  ${name}  // page->haoqi--%>

<%-- 综合案例,实现对表的增删改查--%>
  <form action="/users" method="get">
    <table>
      <tr>
        <th>  编号  </th>
        <th>  姓名  </th>
        <th>  成绩  </th>
        <th>  操作  </th>
      </tr>

      <c:forEach items="${list}" var="user">
        <tr>
          <td>${user.id}</td>
          <td>${user.name}</td>
          <td>${user.score}</td>
          <td>
<%--            在同一给 doGet 方法内自定义操作 ?method=delete 和对应的键值 id=${user.id} " --%>
            <a href="/users?method=delete&id=${user.id}">删除</a>
            <a href="/users?method=findId&id=${user.id}">修改</a>
            <a href="/add.jsp">添加</a> //刚刚忘记添加功能啦
          </td>
        </tr>
      </c:forEach>
    </table>
  </form>

  </body>
</html>

4.add.jsp 添加功能

<%--
  Created by IntelliJ IDEA.
  User: haoqi
  Date: 2020/10/8
  Time: 9:52
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>add 添加功能</title>
</head>
<body>

<form action="/users" method="post">
    编号:<input type="text" name="id"/><br/>
    姓名:<input type="text" name="name"/><br/>
    成绩:<input type="text" name="score"/><br/>
    <input type="submit" value="添加">
</form>

</body>
</html>

5.update.jsp 更新修改界面

和 add.jsp 大同小异

<%--
  Created by IntelliJ IDEA.
  User: haoqi
  Date: 2020/10/8
  Time: 10:56
  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="/users" method="post">
    编号:<input type="text" name="id" value="${user.id}" readonly/><br/>
    姓名:<input type="text" name="name" value="${user.name}"/><br/>
    成绩:<input type="text" name="score" value="${user.score}"/><br/>
    <input type="submit" value="修改">
</form>

</body>
</html>

6.效果图

1

  1. 删除了一个

2

  1. 修改了

3

在这里插入图片描述

  1. 添加操作

    刚刚测试没有注意到少了添加功能

    <a href="/add.jsp">添加</a>
    

5

结束啦

6

  • 0
    点赞
  • 0
    评论
  • 4
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

侯浩琪

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值