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");