美文网首页
Class GenericServlet

Class GenericServlet

作者: 十六只猴子王 | 来源:发表于2019-04-23 19:06 被阅读0次

    该类定义一个普通的、依赖于协议的servlet,如果要写一个用于Web的HTTP servlet,扩展HpptServlet。
    一个servlet可以直接扩展GenericServlet类,然而扩展一个指定协议的子类(如HttpServlet)显得更为普遍

    import javax.servlet.*;
    import java.io.IOException;
    
    //模拟GenericServlet
    
    public class BServlet implements Servlet {
    
        private ServletConfig config;
    
        @Override
        public void init(ServletConfig servletConfig) throws ServletException {
            //吧tomcat传递的ServletConfig赋值给本类的一个成员,其实就是他它保存起来,方便在其他方法中实现
            this.config = servletConfig;
            init();
        }
        public void init(){
            System.out.println("hhhh ");
        }
    
        //这个方法肯定会在init之后调用
        //init()被调用后,本类成员this.config已经有值了
        @Override
        public ServletConfig getServletConfig() {
            return this.config;
        }
    
        @Override
        public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
    
            System.out.println("每次请求都会被调用");
        }
    
        @Override
        public String getServletInfo() {
            return null;
        }
    
        @Override
        public void destroy() {
    
        }
    //模拟实现如下方法,在子类CServlet中调用
        public ServletContext getServletContext() {
            return config.getServletContext();
        }
        public String getServletName(){
            return config.getServletName();
        }
        public String getInitParameter(String name){
            return config.getInitParameter(name);
        }
    }
    
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import java.io.IOException;
    
    public class CServlet extends BServlet {
        @Override
        public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
            String value = getInitParameter("p1");
        }
    
        @Override//组合的方式来继承父类方法
        public void init()  {
            System.out.println("哇---");
        }
    }
    

    相关文章

      网友评论

          本文标题:Class GenericServlet

          本文链接:https://www.haomeiwen.com/subject/ujlpgqtx.html