BaseServlet代码:
import java.io.IOException;
import java.lang.reflect.Method;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class BaseServlet
*/
@WebServlet("/BaseServlet")
public class BaseServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");// 处理响应编码
request.setCharacterEncoding("UTF-8");
// 1. 获取method参数,它是用户想调用的方法
String methodName = request.getParameter("method");
Method method = null;
// 2. 通过方法名称获取Method类的实例对象
try {
method = this.getClass().getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
} catch (Exception e) {
throw new RuntimeException("您要调用的方法:" + methodName + "它不存在!", e);
}
// 3. 通过method对象的invoke()方法来调用它
try {
method.invoke(this, request, response);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}