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)方法发送了请求~~
  • 相关阅读:
    Openresty+redis实现灰度发布
    Nginx keepalived
    Nginx反向代理、负载均衡、动静分离、缓存、压缩、防盗链、跨域访问
    MYCAT扩容
    MYCAT全局序列
    MYCAT分库分表
    MySQL主从复制
    [redis] linux下集群篇(4) docker部署
    [nginx] CORS配置多域名
    [mysql] 归档工具pt-archiver,binlog格式由mixed变成row
  • 原文地址:https://www.cnblogs.com/JamKong/p/4929936.html
Copyright © 2011-2022 走看看