• Servlet详解(二)


    上一章中,对Servlet的基本概念作出了解释

    一、Servlet的默认方法

       1.Servlet是一个接口。

       2.init():带参初始化方法,参数为ServletConfig类,不是构造器,但在实例化后,直接调用。

       3.destory():销毁Servlet对象,无参,一般用于存放释放资源的内容,在server被中断前自行调用。

       4.getServletConfig():获得Servlet的配置方法

       5.getServletInfo():用于获得Servlet的作者,版本,版权等信息。

    二、ServletConfig接口:

    public interface ServletConfig {
        String getServletName();      //获得Servlet类名
    
        ServletContext getServletContext();   //获得Servlet上下文,org.apache.catalina.core.ApplicationContextFacade@6ee2ee7a
    
        String getInitParameter(String var1);  //获得通过获得name来获取具体参数
    
        Enumeration<String> getInitParameterNames();   //去粗配置文件中的key值(name)
    }

    三、HttpServlet

       1.HttpServlet继承自GenericServlet(类服务),而GenericServlet接入了Servlet接口,ServletConfig接口,Serializable接口,前两个接口已经说过,Serializable是可序列化接口,允许将接入该接口的类使用Object流序列化对象。

       2.GenericServlet类源码分析

        public String getInitParameter(String name) {       
            return this.getServletConfig().getInitParameter(name);
        }
    
        public Enumeration<String> getInitParameterNames() {
            return this.getServletConfig().getInitParameterNames();
        }
    
        public ServletConfig getServletConfig() {
            return this.config;
        }
    
        public ServletContext getServletContext() {
            return this.getServletConfig().getServletContext();
        }
        //上面所有方法都仅仅完成了返回当前参数的作用,不过ParementName和Paramenter方法都是借助Config来完成
        public String getServletInfo() {
            return "";
        }
        //关于作者,版本,版权等信息,需要加入时,则重写该方法
        public void init(ServletConfig config) throws ServletException {
            this.config = config;
            this.init();
        }
        //继承自Servlet的初始化方法,也是自动调用的方法,仅仅完成config的配置,不建议继承修改,如需修改建议重写下方的无参方法
        public void init() throws ServletException {
        }
    
        public void log(String msg) {
            this.getServletContext().log(this.getServletName() + ": " + msg);
        }
        //返回日志信息
        public void log(String message, Throwable t) {
            this.getServletContext().log(this.getServletName() + ": " + message, t);
        }
        //抽象Service方法
        public abstract void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
        //获得当前Servlet的名字
        public String getServletName() {
            return this.config.getServletName();
        }
    }

      3.HttpServlet常用方法:

          1. init和destory等方法的重写,init的无参方法并非是直接调用,而是有参方法内部再次调用这个方法,该方法用于初始化。而destory方法则主要用于资源的释放。

          2.service:html请求发送的最直接的地方,在HttpServlet中,service方法会自行判断你的请求类型,并将请求中的参数传入doget或则dopost中执行。

          3.doget:下次详解,目前的差别在于url地址会把你html中的登录等信息暴露出来,不安全

          4.dopost:会自动隐藏你在html中的信息。

          5.关于一些ServletConfig等内容的获得,在GenericServlet已经做出了实现,HttpServlet仅仅是继承了这些方法,所以也不多加概述。

  • 相关阅读:
    计算机语言发展简史
    HTML—xhtml和html5
    网络协议模型【简图】
    http协议
    URL简介
    TCP协议简介
    比较浏览器的“刷新”
    loadrunner之运行方式:线程还是进程?
    LoadRunner的函数
    LoadRunner测试结果分析
  • 原文地址:https://www.cnblogs.com/qqwhsj/p/10846600.html
Copyright © 2020-2023  润新知