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.lang.reflect.Method;
public class BaseServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// super.service(req, resp);
//解决从客户端传到服务器端的乱码
request.setCharacterEncoding("utf-8");
//服务器传回客户端的乱码解决
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=UTF-8");
// 获取客户端动作
String action = request.getParameter("action");
if (action == null || "".equals(action)) {
response.getWriter().write("非法数据!!!");
return;
}
try {
Method method = this.getClass().getMethod(action, HttpServletRequest.class, HttpServletResponse.class);
method.invoke(this, request, response);
} catch (Exception e) {
// e.printStackTrace();
response.getWriter().write("非法数据!!!");
return;
}
}
}
用法:具体的servlet继承该类,在请求的时候加上动作action,action就是具体实现servlet的方法名 注意:实现的servlet里面的成员方法要是public的,不然会404
其它:web.xml 示例
baidu LoginServlet com.gongsi.cn.servlet.LoginServlet LoginServlet /LoginServlet ListAllServlet com.gongsi.cn.servlet.ListAllServlet ListAllServlet /ListAllServlet DeleteByIdServlet com.gongsi.cn.servlet.DeleteByIdServlet DeleteByIdServlet /DeleteByIdServlet AddUserServlet com.gongsi.cn.servlet.AddUserServlet AddUserServlet /AddUserServlet GetByIdServlet com.gongsi.cn.servlet.GetByIdServlet GetByIdServlet /GetByIdServlet UpdateUserServlet com.gongsi.cn.servlet.UpdateUserServlet UpdateUserServlet /UpdateUserServlet PageServlet com.gongsi.cn.servlet.PageServlet PageServlet /PageServlet UserServlet com.gongsi.cn.servlet.UserServlet UserServlet /UserServlet index.html index.htm index.jsp default.html default.htm default.jsp



