美文网首页
<JavaWeb>Servlet接口与实现类(上)

<JavaWeb>Servlet接口与实现类(上)

作者: 普通一般社会人 | 来源:发表于2016-04-18 07:49 被阅读596次

    Servlet生命周期

    我们如果想要在Servlet处理逻辑之前做一些准备工作,或者在Servlet实例被销毁之前做一些资源回收工作,就需要依靠Servlet的生命周期来进行准确的定位。

    Servlet的生命周期主要包括三个阶段:初始化,请求处理,销毁。

    初始化

    对应init方法,默认在客户端第一次请求Servlet时,对应的Servlet实例才会被Servlet容器创建。这个时候,Servlet容器就会回调Servlet init方法,但在特殊情况下,比如在配置文件中,配置了loadonSetup元素,就会在容器启动时被加载。

        public void init() throws ServletException {
            // TODO Auto-generated method stub
            super.init();
        }
    
    请求处理

    对应service方法,在这个方法里会根据HTTP请求的类型,将不同的HTTP请求转发给不同的Servlet方法进行处理,比如,doGet方法和doPost方法。

        protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
            // TODO Auto-generated method stub
            System.out.println("service method");
            super.service(arg0, arg1);
        }
    
    销毁

    对应destroy方法,在Servlet实例被销毁之前,由Servlet容器进行回调。主要是做资源的回收和清理。

        public void destroy() {
            // TODO Auto-generated method stub
            super.destroy();
        }
    

    doGet方法和doPost方法的区别

    传输方式

    GET方法通过HTTP header进行传输,POST方法通过HTTP body进行传输。
    GET方法传输数据需要在URL中体现出来,数据长度受限于URL的长度(2-8k),POST方法不需要。

    设计目的

    GET方法是为了从服务器端获取数据,而POST方法则是为了向服务器端发送数据。

    安全性

    POST方法安全性更高一些,因为它并不暴漏数据。

    配置参数

    ServletConfig对象提供了Servlet配置信息的管理功能。我们可以把需要使用的配置信息写在对应的文件中,然后通过ServletConfig对象读取对应的配置信息。
    在web.xml文件中,填写对应的配置信息。

    <servlet>//只是添加到含有servlet-class和servlet-name的标签中
        <init-param>
            <param-name>参数名</param-name>
            <param-value>参数值</param-value>
        </init-param>
    </servlet>
    

    然后,我们就可以从java文件中获取对应的配置信息了。

    ServletConfig config = this.getServletConfig();
    String v1 = config.getInitParameter("name1");
    

    特性总结:

    Servlet在初始化过程中,<init-param>参数将被封装到ServletConfig对象中,每个Servlet支持设置一个或多个<init-param>对象,并且以Servlet为单位,并不全局共享。

    相关文章

      网友评论

          本文标题:<JavaWeb>Servlet接口与实现类(上)

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