龙源期刊网开发中的应用作者:李秋来源:《西部论丛》2019年第05期摘要:Serlet是使用应用程序设计接口(API)以及相关类和方法的java程序。JavaServlet是运行在请求/面向请求服务器上的模块,它运行在Servlet容器中,Servet容器负责Servlet和客户的通信以及调用Servlet的方法关键词:Serlet接口服务器一、Servlet主要功能创建并返回一个包含基于客户请求性质动态内容的HTML页面。创建可嵌入到现有HTML页面中的一部分HTML页面(即HTML片段)。与其他服务器资源(包含数据库和基于Java的应用程序)进行通信。用多个客户机处理链接,接收多个客户机的输入,并将结果传播到多个客户机上。例如:Servlet可以是多参与者的游戏服务器。当允许在单连接方式下传送数据的时候,在浏览器上打开服务器至Applet的新连接,并将该连接保持在打开状态。当允许客户机和服务器简单、高效的执行会话时,Applet也可以启动客户浏览器和服务器之间的连接。可以通过定制协议或标准(llop)进行通信。对特殊的处理采用MlME类型过滤数据。例如,图像转换和服务器端包括ServetSidelnclude(SSl)。将定制的处理提供给所有服务器的标准执行程序。例如,Servlet可以修改如何认证用户。最早支持Servlet技术的是JavaSoft的JavaWebServet。此后,一些其他基于Java的WebServet开始支持标准的ServletApl。Servlet的主要功能在于交互地浏览和修改数据,生成动态Web内容。这个过程为:客户端发送请求至服务器端。服务器将请求信息发送至Servlet。Servlet生成响应内容并将其传给Server。响应内容动态生成,通常取决于客户端的请求。服务器将响应返回给客户端。二、Servlet的生命周期运行在Web服务器上的Servlet是Web服务器进程的一部分,Web服务器负责Servlet的初始化、调用和销毁。Servlet编程是通用javax.servlet和javax.servlet.http这两个包提供的类或接口实现的,其中java.servlet,Servlet接口是最重要的接口,任何Servlet都必须实现这个接口或者继承实现这个接口的类。三、加载和实例化ServletTomcat服務器在如下时刻加载和例化Servlet。龙源期刊网如果已配置自动装入选项,则在启,动服务器时自动装入。在服务器启动后,客户机首次向Servlet发出请求时。客户机首先要查找一个配置文件(也称为部署文件)web.xml。这个配置文件中记录了可以提供服务的Servlet。每个Servlet被指定一个Servlet名和这个Servlet实际对应的java的完整.class文件名。Servlet容器会每个配置自动装入选项(配置文件使用《load-on-startup》1)的Servlet创建一个实例。每个Servlet类必须有一个公共的无参数的构造器。通常,在设计Servlet类时不创建构造器,而是使用了默认构造器。此时,Servlet被认为是处于“已载入”状态。当Servlet被实例化后,Servlet容器将调用每个Servlet的init(ServletConfigcfg)方法来为每个实例进行初始化。其中在作为ini()参数的ServletConfig类中,定义了需要用于初始化Servlet的所有参数。执行完ini()方法后,Servlet处于“已初始化”状态。通常,Servlet容器在启动后并不立即初始化Servlet,而是等到接收到客户端请求后再进行,这样可以缩短Servlet容器启动时间。但是当很多Servlet同时得到请求时,Servlet容器可能要花很多时间去初始化它们,这样就会延长系统反馈的时候。如果需要,可以在web.xml文件中用l来指定对Servlet预先初始化,即不管有没有接收到请求,都对Servlet进行初始化。Service()方法从“请求”对象获得请求信息,处理该请求并用“响应”对象的方法将响应传回客户机。Javax.servlet软件包中的相关类为ServletRequest和ServeltResponse,而Javax.servlet.http软件包中相关类为HttpServletRequest和HttpServletResponse。Servlet通过这些对象与服务器通信并最终与客户机通信。pServletHttpServlet中的service()方法默认的服务功能是调用与HTTP请求的方法相应的DoXXX()功能。例如,如果HTTP请求方法为GET,即默认情况下就调用doGet()方法。当一个客户通过HTML表单发出一个HTTPPOST请求时,doPost()方法被调用。四、总结当Servlet容器决定不再需要某个Servlet实例时,它会调用该Servlet的destroy()方法,在这个方法内,Servlet解放掉所有在init()方法内申请的资源,如数据库的连接等。在调用destory()方法前,Servlet容器会等待仍然被执行的所有该Servlet的服务结束。一个Servlet实例一旦被冻结了,就不允许其被再次使用,只能等待被卸载。少数情况下,如系统资源过低或一个Servlet很长时间没有被使用,Servlet容器也会去终结Servlet。当然,如果Servlet容器本身要关闭,它会先终结所有Servlet。参考文献[1]代飞,张莹.基于ISAServer实现VPN远程访问技术[J].信息与电脑(理论版).2018(18)[2]张宏伟,成宝芝.大数据背景下抽油机数据采集系统的建构与评价[J].信息与电脑(理论版).2018(07)龙源期刊网