package com.wenhao.web.servlet;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("all")
public class BaseServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//解决请求中文乱码
req.setCharacterEncoding("utf-8");
//解决响应中文乱码
resp.setContentType("text/html;charset=utf-8");
try {
//1 获得请求的method的名称
String methodName = req.getParameter("method");
//2 获得当前对象的class this->哪个类继承BaseServlet就代表那个对象
Class clazz = this.getClass();
//3 获得当前字节码中指定的方法
Method method = clazz.getMethod(methodName, HttpServletRequest.class,HttpServletResponse.class);
//4 执行获得的方法
method.invoke(this, req,resp);
} catch (NoSuchMethodException | SecurityException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("all")
public class BaseServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//解决请求中文乱码
req.setCharacterEncoding("utf-8");
//解决响应中文乱码
resp.setContentType("text/html;charset=utf-8");
try {
//1 获得请求的method的名称
String methodName = req.getParameter("method");
//2 获得当前对象的class this->哪个类继承BaseServlet就代表那个对象
Class clazz = this.getClass();
//3 获得当前字节码中指定的方法
Method method = clazz.getMethod(methodName, HttpServletRequest.class,HttpServletResponse.class);
//4 执行获得的方法
method.invoke(this, req,resp);
} catch (NoSuchMethodException | SecurityException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}