示例
此例仅是展示MVC架构模式,不具有完整性。只是能了解一下这种MVC的模式。
本例实现了一个简易的用户添加与删除的功能
本例的目录结构
UserServlet
package com.cheeny.controller;
import com.cheeny.entity.User;
import com.cheeny.service.UserService;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Collection;
public class UserServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
String method = req.getParameter("method");
UserService userService = new UserService();
if(method == null)
method = "getAll";
switch (method){
//保存或修改
case "saveOrUpdate":
String idStr = req.getParameter("id");
int id = Integer.parseInt(idStr);
String name = req.getParameter("name");
String ageStr = req.getParameter("age");
int age = Integer.parseInt(ageStr);
User user = new User(id,name,age);
userService.saveOrUpdate(user);
resp.sendRedirect("user.do?method=getAll");
break;
case "getAll": //显示所有
Collection map = userService.getAll();
req.setAttribute("map",map);
req.getRequestDispatcher("show.jsp").forward(req,resp);
break;
case "deleteById": //删除
String idStr2 = req.getParameter("id");
int id2 = Integer.parseInt(idStr2);
userService.deleteById(id2);
resp.sendRedirect("user.do?method=getAll");
break;
case "getById": //得到Id
String idStr3 = req.getParameter("id");
int id3 = Integer.parseInt(idStr3);
User user1 = userService.getById(id3);
req.setAttribute("user",user1);
req.getRequestDispatcher("update.jsp").forward(req,resp);
break;
}
}
}
User
package com.cheeny.entity;
public class User {
private int id;
private String name;
private int age;
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
public User() {
}
public User(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
UserService
package com.cheeny.service;
import com.cheeny.entity.User;
import java.util.*;
public class UserService {
private static Map<Integer,User> map;
static {
map = new HashMap<>();
map.put(1,new User(1,"张三",33));
map.put(2,new User(2,"李四",23));
map.put(3,new User(3,"王五",31));
}
public Collection<User> getAll(){
return map.values();
}
//添加方法
/* public void add(User user){
map.put(user.getId(),user);
}*/
//删除方法
public void deleteById(int id){
map.remove(id);
}
//得到编号
public User getById(int id){
return map.get(id);
}
//修改方法
/* public void updatate(User user){
map.put(user.getId(),user);
}*/
//代码重构,整合add与update方法
public void saveOrUpdate(User user){
map.put(user.getId(),user);
}
}
add.jsp
<%--
Created by IntelliJ IDEA.
User: 73981
Date: 2019/12/3
Time: 21:22
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="user.do?method=saveOrUpdate" method="post">
用户Id:<input type="text" name="id"><br>
用户姓名:<input type="text" name="name"></br>
用户年龄:<input type="text" name="age"></br>
<input type="submit" value="提交">
</form>
</body>
</html>
show.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="com.cheeny.entity.User" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %><%--
Created by IntelliJ IDEA.
User: 73981
Date: 2019/12/3
Time: 20:30
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
$(function(){
$(".delete").click(function () {
if(confirm("是否确定删除?")){
var index = $(".delete").index(this);
var td = $(".id").eq(index);
var id = td.text();
location.href="user.do?method=deleteById&id="+id;
}
});
});
</script>
</head>
<body>
<table border="1" width="80%">
<tr>
<th>用户编号</th>
<th>用户姓名</th>
<th>用户年龄</th>
<th>操作</th>
<c:forEach items="${map}" var="user">
<tr>
<td class="id">${user.id}</td>
<td>${user.name}</td>
<td>${user.age}</td>
<td>
<a href="user.do?method=getById&id=${user.id}">修改</a>
<a class="delete" href="javascript:void()">删除</a>
</td>
</tr>
</c:forEach>
</tr>
</table>
<a href="add.jsp">添加用户</a>
</body>
</html>
update.jsp
<%--
Created by IntelliJ IDEA.
User: 73981
Date: 2019/12/4
Time: 22:08
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="user.do?method=saveOrUpdate" method="post">
用户编号:<input type="text" name="id" value="${requestScope.user.id}" readonly="readonly"/><br/>
用户姓名:<input type="text" name="name" value="${requestScope.user.name}"/><br/>
用户年龄:<input type="text" name="age" value="${requestScope.user.age}"/><br/>
<input type="submit" value="修改"/>
</form>
</body>
</html>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>user</servlet-name>
<servlet-class>com.cheeny.controller.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>user</servlet-name>
<url-pattern>/user.do</url-pattern>
</servlet-mapping>
</web-app>
返回上层目录
版权声明:本文为qq_43776742原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。