JSP学习总结-servlet

一、servlet技术

       servlet技术是基于Java编程语言的web服务器端的编程技术。主要用于在web服务器端获得客户端的访问请求信息和动态生成对客户端的响应消息。servlet技术是jsp技术的基础。

 

二、什么是servlet及servlet的特点?

  1、什么是servlet:servlet是一个基于Java技术的web组件,用来扩展以请求响应为模型的服务器的功能,提供动态内容。

   2、servlet的特点:

                    ①servlet与平台无关。由于本身是Java类,即有Java的特性。可被编译成字节码,动态的载入并有效地扩展主机的处理能力。

                    ②servlet被容器管理,能被编译成字节码被web服务调用

 

三、servlet容器

        容器被称为引擎,是支持servlet功能的web服务的扩展,即web服务器的一部分。

        servlet容器是servlet的运行环境,管理和维护servlet的整个生命周期。必须支持http协议。负责处理客户端的请求,把请求传送给适当的servlet并把结果返回给客户。

       

四、servlet工作基本流程

 

 

         servlet之间的通信是通过客户端请求被容器执行成request/response对象进行的。

         (1)客户端向服务端发送一个http请求

         (2)web服务器接收该请求,并把它交给servlet容器。servlet容器可以在主机同一                       进程,不同进程或者其他web服务器主机的进程中启动来处理这个请求

         (3)servlet容器根据servlet的配置文件确定需要调用的servlet,并把request对象、                     response对象传给它

         (4)servlet通过request对象获取客户请求信息和其他相关信息,并用特定的方法来                     处理请求,生成返回给客户端的数据,servlet处理完请求后把要返回的信息放                       入response对象

         (5)servlet完成了请求的处理后,servlet引擎就会刷新response,把控制权返回给                     web服务器

 

五、jsp与servlet的关系

      jsp是一种脚本语言,简化了Java和servlet的使用难度,在jsp上可以直接写Java代码并嵌套HTML。jsp要先转换成servlet(jsp使用的所有对象都会被转换成servlet或者非servlet的Java对象),然后servlet被编译成Java可以执行的字节码,并以一般的servlet方式载入执行。所以执行jsp和执行servlet是一样的,不过执行jsp的效率要比servlet低。

      jsp语法简单,可以方便的嵌入HTML之中,很容易加入动态的部分,可以方便地输出HTML,而servlet需要调用特定的方法。因此jsp一般用于响应数据,servlet一般用于接收请求和处理。

 

 

       jsp在服务器上执行,并将结果输出给客户端浏览器,我们可以说jsp基本上与浏览器无关。它是与JavaScript不同的,JavaScript是在客户端的脚本语言,在客户端执行,与服务器无关。

                     

六、servlet的生命周期

servlet在容器中从创建到删除的过程被称为servlet的生命周期。



 (1)客户首次向servlet发出请求时,装载servlet

 (2)实例化一个servlet实例对象

 (3)调用servlet的init()进行初始化

 (4)调用service()进行处理

 (5)服务器调用destory()方法卸载该servlet,释放该servlet运行时占用的资源

 

当多个客户请求一个servlet时,引擎为每个客户启动一个线程,那么servlet类的成员变量被所有的线程共享。init()只在servlet第一次被请求加载的时候被调用一次,当有客户再请求servlet服务时,web服务器将启动一个新的线程,在该线程中,调用service()响应客户的请求。

七、简述开发一个servlet所需步骤。

部署servlet:(需要从数据库中取数据时,需要先开启数据库服务)

在web.xml文件中所有元素出现的次序有严格限制的,<servlet>元素必须出现在<servlet-mapping>之前


 

①继承HttpServlet抽象类

②重写doGet()或者doPost()方法

③如果有Http请求信息的话获取该信息

④生成Http响应

猜你喜欢

转载自379185161.iteye.com/blog/2282226