JSTL详解-2(综合案例)

UserServlet

从UserServlet中使用两种方法存储初始的三个值

@WebServlet("/user")
public class UserServlet extends HttpServlet {

        //创建加实例化Map
    private static Map<Integer,User> map = new HashMap<>();
        //存入静态数据块
    static {
            //初始的三个数据
        map.put(1,new User(1,"张三",78.0));
        map.put(2,new User(2,"张四",88.0));
        map.put(3,new User(3,"张五",98.0));
    }
       //将初始化数据存入构造器
//    public UserServlet() {
      //初始的三个数据
//        list.add(new User(1,"张三",78.0));
//        list.add(new User(2,"张四",88.0));
//        list.add(new User(3,"张五",98.0));
//    }
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    req.setCharacterEncoding("utf-8");
    resp.setContentType("text/html;charset=UTF-8");
    //引入三个变量
    String idStr = req.getParameter("id");
    String name = req.getParameter("name");
    String scoreStr = req.getParameter("score");
    //处理数据(转换类型,接受的只有String)
    Integer id = Integer.parseInt(idStr);
    Double score = Double.parseDouble(scoreStr);
    User user = new User(id,name,score);
    //添加
    map.put(id,user);
    resp.sendRedirect("/user");

}

获取方法是修改还是删除以及他们的逻辑处理

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //判断
    String method = req.getParameter("method");
        //如果什么都不传默认findAll(遍历),
    if (method == null){
        method = "findAll";
    }
        //如果method是delete就删除
    switch (method){
        case "delete":
            String idStr = req.getParameter("id");
            Integer id = Integer.parseInt(idStr);
            map.remove(id);
        //删除之后再跳转到user展示出列表
            resp.sendRedirect("/user");
            break;
        case "findAll":
        //将list存进去
            req.setAttribute("list",map.values());
            req.getRequestDispatcher("index.jsp").forward(req,resp);
            break;
        case  "finfById":
            idStr = req.getParameter("id");
            id = Integer.parseInt(idStr);
            req.setAttribute("user",map.get(id));
            req.getRequestDispatcher("update.jsp").forward(req,resp);
    }

修改的jsp界面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <form action="/user?method=update" method="post">
        编号:<input type="text" name="id" value="${user.id}"/><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>

添加的jsp界面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <form action="/user" 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>

删除的方法

获取到id之后用map中的remove方法删除

String idStr = req.getParameter("id");
                Integer id = Integer.parseInt(idStr);
                map.remove(id);
            //删除之后再跳转到user展示出列表
                resp.sendRedirect("/user");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值