ModelBaseServlet类
- 概述
- 之前,一个业务请求就对应一个Servlet,这样就导致有特别多的Servlet,项目过于冗余了。可以使用ModelBaseServlet来解决。
- 代码实现
public class ModelBaseServlet extends ViewBaseServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//method=addUser
String methodName = request.getParameter("method");
try {
Method method = this.getClass().getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
method.invoke(this, request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
@WebServlet("/user")
public class UserServlet extends ModelBaseServlet {
public void addUser(HttpServletRequest request, HttpServletResponse response) throws IOException {
System.out.println("UserServlet addUser");
String username = request.getParameter("username");
System.out.println("username = " + username);
String password = request.getParameter("password");
System.out.println("password = " + password);
//向浏览器发送响应正文“helloworld”
response.getWriter().write("helloworld");
}
public void deleteUser(HttpServletRequest request, HttpServletResponse response) {
System.out.println("UserServlet deleteUser");
}
public void updateUser(HttpServletRequest request, HttpServletResponse response) {
System.out.println("UserServlet updateUser");
}
public void selectUser(HttpServletRequest request, HttpServletResponse response) {
System.out.println("UserServlet selectUser");
}
}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<base th:href="@{/}">
<title>ModelBaseServlet类</title>
</head>
<body>
<a href="user?method=addUser&username=root&password=12345">添加用户</a>
<a href="user?method=deleteUser">删除用户</a>
<a href="user?method=updateUser">修改用户</a>
<a href="user?method=selectUser">查询用户</a>
</body>
</html>