• JavaWeb — Servlet(Server Applet)


    一、Servlet(Server Applet)

    全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。

    狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

    Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

    二、Servlet的工作模式

    ● 接收请求数据(客户端发送请求至服务器)

    ● 处理请求(服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器)

    ● 完成响应(服务器将响应返回客户端)

    三、Servlet API概览

    ① javax.servlet;其中包含定义Servlet和Servlet容器之间契约的类和接口。

    ② javax.servlet.http;其中包含定义HTTP Servlet 和Servlet容器之间的关系。

    ③ javax.servlet.annotation;其中包含标注Servlet,Filter,Listener的标注。它还为标注元件定义数据。

    ④ javax.servlet.descriptor;其中包含提供程序化登录Web应用程序的配置信息的类型。

    四、Servlet使用方法:servlet三种方式实现servlet接口

    Servlet技术的核心是Servlet,它是所有Servlet类必须直接或者间接实现的一个借口。在编写实现Servlet的Servlet类时,直接实现它。在扩展实现这个接口的类时,间接实现它。

    五、Servlet的工作原理

    ● Servlet接口定义了Servlet与Servlet容器之间的契约。这个契约是:Servlet容器将Servlet类载入内存中,并产生了Servlet实例和调用它的具体方法。但是要注意的是,在一个应用程序中,每种Servlet类型只能有一个实例。

    ● 用户请求致使Servlet容器调动Servlet的Servic()方法,并传入一个ServletRequest对象和一个ServletResponse对象。这两个对象都是由Servlet容器(例如Tomcat)封装好的,并不需要程序员去实现,程序员可以直接使用这两个对象。

    ServletRequest中封装了当前的Http请求,因此,开发人员不必解析和操作原始的Http数据。
    
    ServletResponse表示当前用户的Http响应,程序员只需直接操作ServletResponse对象就能把响应反馈给用户

    对于每一个应用程序,Servlet容器还会创建一个ServletContext对象。这个对象中封装了上下文(应用程序)的环境详情。每个应用程序只有一个ServletContext。每个Servlet对象也都有一个封装Servlet配置的ServletConfig对象。

    六、Servlet接口中定义的方法

    package javax.servlet;
    import java.io.IOException;
    public interface Servlet {
        //初始化servlet,它是servlet的生命周期方法,由web容器调用一次
        void init(ServletConfig var1) throws ServletException;
        //为传入的请求提供相应,它由Web容器的每个请求调用
        void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
        //紧被调用一次,并且表名servlet正在被销毁
        void destroy();
        //返回ServletConfig对象
        ServletConfig getServletConfig();
        //返回有关的servlet的信息,如作者,版权,版本等
        String getServletInfo();
    }

    七、Servlet的生命周期

    1)init

    当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象来,但是这个方法在后续请求中不会再被Servlet容器调用,就像人只能"出生"一次一样。我们可以利用init()方法来执行相应的初始化工作。调用这个方法时,Servlet容器会传入一个ServletConfig对象进来从而对Servlet对象进行初始化

    2)service

    每当请求Servlet时,Servlet容器就会调用这个方法。就像人一样,需要不停地接受老板的指令并且"工作"。第一次请求时,Servlet容器会先调用init()方法初始化一个对象出来,然后会调用它的Service方法进行工作,但在后续的请求中Servlet容器只会调用service方法了。

    3)destroy

    当要销毁Servlet时,Servlet容器就会调用这个方法。就如人一样,到了期就会死亡。在卸载应用程序或者关闭Servlet容器时,就会发生这种情况,一般在这个方法中会写一些清除代码。

  • 相关阅读:
    今天 弄了一下ajax 里面的
    重修理解了一下js 控制treeview 菜单的子级和父级的关系 理解的还不够全 因为 html不够全 但是加个注释吧
    xml .net 用法
    这几天在做把数据库里的数据 导出 并且压缩 学到了一些东西
    今天实现了用按钮后台动态实现了 table里面内容的显示和隐藏 在实现过程中了解了updatepanel的简单的用法
    今天第一次参加了软件产品的讨论会议 收获
    收藏个debug的文章
    Animate.css
    flash遨游缓存问题
    URL短地址压缩算法 微博短地址原理解析 (Java实现)
  • 原文地址:https://www.cnblogs.com/Dm920/p/11695719.html
Copyright © 2020-2023  润新知