BaseServlet 原理
1. BaseServlet
package com.regino.test;
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.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class BaseServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
try {
Method method = this.getClass().getDeclaredMethod(action, HttpServletRequest.class, HttpServletResponse.class);
method.setAccessible(true);
method.invoke(this,request,response);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
2. UserServlet
- 繼承 BaseServlet 後直接寫方法就可以了。
package com.regino.travel.web.servlet;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.regino.travel.domain.ResultInfo;
import com.regino.travel.domain.User;
import com.regino.travel.service.UserService;
import com.regino.travel.service.impl.UserServiceImpl;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.RandomStringUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
@WebServlet("/UserServlet")
public class UserServlet extends BaseServlet {
protected void register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
...
}
}
原文鏈接:https://qwert.blog.csdn.net/article/details/106248363