zoukankan      html  css  js  c++  java
  • BaseServlet

    1. 目的:

      将提升Servlet的处理请求的能力,而不只限于doGet()/doPost()等请求。

      让其Servlet能够自己根据请求,从而触发相应的方法进行处理。

    2. 具体代码实现:

    import java.io.IOException;
    import java.lang.reflect.Method;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    public class BaseServlet extends HttpServlet {
        @Override
        public void service(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            request.setCharacterEncoding("UTF-8");
            
            String methodName = request.getParameter("method");
            Class c = this.getClass();//获取当前类
            Method method = null;
            try {
                method = c.getMethod(methodName, HttpServletRequest.class,HttpServletResponse.class);
            } catch (Exception e){
                throw new RuntimeException("您要调用的方法:" + methodName +
                        "(HttpServletRequest,HttpServletResponse),它不存在!");
            }
            try{
                method.invoke(this,request, response);
            }catch(Exception e){
                System.out.println("您调用的方法:" + methodName + ", 它内部抛出了异常!");
                throw new RuntimeException(e);
            }
        }
    }
    3. BaseServlet的作用:
            BaseServlet这个类的作用是为了让自己声明的Servlet赋予更多的功能,而不局限于只能处理doGet()/doPost()等这些功能。其中BaseServlet还顺便处理response的编码问题,所以,子类便可不用再处理response编码问题。
    4. BaseServlet如何使用:
            只需要让子类Servlet继承BaseServlet,然后让客户端的请求增加一个参数:method便可,method参数的值就是要请求处理的方法名。
    这个意思就是:向UserServlet的login(request,response)方法发送了请求~~
  • 相关阅读:
    洛谷 P1194 飞扬的小鸟 题解
    洛谷 P1197 星球大战 题解
    洛谷 P1879 玉米田Corn Fields 题解
    洛谷 P2796 Facer的程序 题解
    洛谷 P2398 GCD SUM 题解
    洛谷 P2051 中国象棋 题解
    洛谷 P1472 奶牛家谱 Cow Pedigrees 题解
    洛谷 P1004 方格取数 题解
    洛谷 P2331 最大子矩阵 题解
    洛谷 P1073 最优贸易 题解
  • 原文地址:https://www.cnblogs.com/JamKong/p/4929936.html
Copyright © 2011-2022 走看看