南山商城网站建设找哪家公司比较安全,天津网站建设的公司哪家好,html5 微网站布局,福州seo网站建设一、了解Servlet的概念Servlet定义#xff1a;Servlet是基于Java技术的Web组件#xff0c;由容器管理并产生动态的内容。Servlet引擎作为WEB服务器的扩展提供支持Servlet的功能。Servlet与客户端通过Servlet容器实现的请求/响应模型进行交互。
注意#xff1a;Servlet不是从…
一、了解Servlet的概念Servlet定义Servlet是基于Java技术的Web组件由容器管理并产生动态的内容。Servlet引擎作为WEB服务器的扩展提供支持Servlet的功能。Servlet与客户端通过Servlet容器实现的请求/响应模型进行交互。
注意Servlet不是从命令行启动的而是由包含Java虚拟机的Web服务器进行加载
1)Servlet是按照Servlet规范编写的Java类。
2)Servlet应用请求/响应模型扩展了服务器的功能。
Servlet是WEB应用程序中的一个组件。Servlet是在JSP之前就存在的运行在服务端的一种Java技术它是用Java语言编写的服务器端程序在JSP技术出现之前Servlet被广泛地应用来开发动态的Web应用程序
.如今在J2EE项目的开发中Servlet仍然被广泛的使用。Servlet是一种独立于平台和协议的服务器端的Java技术可以用来生成动态的Web页面与传统的CGI公共网关接口和许多其他类似CGI技术相比Servlet具有更好的可移植性、更强大的功能更少的投资更高的效率更好的安全性等特点二、Servlet技术功能Servlet通过创建一个框架来扩展服务器的能力以提供在Web上进行请求和响应的服务。当客户机发送请求至服务器时服务器可以将请求信息发送给Servlet并让Servlet建立起服务器返回给客户机的响应
当启动Web服务器或客户机第一次请求服务时可以自动装入Servlet之后Servlet继续运行直到其他客户机发出请求。Servlet的功能涉及范围很广
(1)创建并返回一个包含基于客户请求性质的动态内容的完整的HTML页面
(2)创建可嵌入到现有HTML页面中的一部分HTML页面HTML片段
(3)与其他服务器资源包括数据库和基于Java的应用程序进行通信
(4)用多个客户机处理连接接收多个客户机的输入并将结果传递到多个客户机上例如Servlet可以是多参与者的游戏服务器
(5)当允许在单连接方式下传送数据的情况下在浏览器上打开服务器至applet的新连接并将该连接保持在打开状态当允许客户机和服务器简单、高效地执行会话的情况下applet也可以启动客户浏览器和服务器之间的连接可以通过定制协议进行通信
(6)将订制的处理提供给所有服务器的标准程序。三、 Servlet技术特点
Servlet技术带给程序员最大的优势是它可以处理客户端传来的HTTP请求并返回一个响应
Servlet是一个Java类Java语言能够实现的功能Servlet基本上都可以实现图形界面除外。总的来说Servlet技术具有以下特点
1高效。在服务器上仅有一个Java虚拟机在运行它的优势在于当多个来自客户端的请求进行访问时Servlet为每个请求分配一个线程而不是进程。
2方便。Servlet提供了大量的实用工具例程例如处理很难完成的HTML表单数据、读取和设置HTTP头、处理Cookie和跟踪会话等。
3跨平台。Servlet是用Java类编写的它可以在不同的操作系统平台和不同的应用服务器平台下运行。
4灵活性和可扩展性。采用Servlet开发的Web应用程序由于Java类的继承性、构造函数等特点使得其应用灵活可随意扩展。
6共享数据。Servlet之间通过共享数据可以很容易地实现数据库连接池。它能方便地实现管理用户请求简化Session和获取前一页面信息的操作。而在CGI之间通信则很差。由于每个CGI程序的调用都开始一个新的进程调用间通信通常要通过文件进行因而相当缓慢。同一台服务器上的不同CGI程序之间的通信也相当麻烦。
7安全。有些CGI版本有明显的安全弱点。即使是使用最新的标准和PERL等语言系统也没有基本安全框架。而Java定义有完整的安全机制包括SSL\CA认证、安全政策等规范。四、 Servlet生命周期跟客户端的Applet相似Servlet这里Servlet的概念又回到了最原始的含义也遵循严格的生命周期。在每个Servlet实例的生命中有三种类型的事件这三种事件分别对应于由Servlet引擎所唤醒的三个方法1init()。当Servlet第一次被装载时
Servlet引擎调用这个Servlet的init()方法只调用一次
。如果某个Sevlet需要特殊的初始化需要。那么Servlet编写人员可以重写该方法来执行初始化任务。这是一个可选的方法。如果某个Servlet不需要初始化那么默认情况下将调用它父类的init方法。系统保证
在init方法成功完成以前是不会调用Servlet去处理任何请求的
。 2service()。这是Servlet最重要的方法是
真正处理请求的地方
。对于每个请求Servlet引擎将调用Servlet的service方法
并把Servlet请求对象和Servlet响应对象作为参数传递给它。 3destroy()。这是相对于init的可选方法当Servlet即将被卸载时由Servlet引擎来调用这个方法用来清除并释放在init方法中所分配的资源。Servlet的生命周期可以被归纳为以下几步 1 装载Servlet这一项操作一般是动态执行的。然而Servlet通常会提供一个管理的选项用于在Servlet启动时强制装载和初始化特定的Servlet 2 Server创建一个Servlet实例3 Server调用Servlet的init方法4 一个客户端请求到达Server 5 Server创建一个请求对象6 Server创建一个响应对象7 Server激活Servlet的service方法传递请求和响应对象作为参数 8 service方法获得关于请求对象的信息处理请求访问其他资源获得需要的信息 9 service方法使用响应对象的方法。将响应传回Server最终到达客户端。Service方法可能激活其他方法以处理请求。如doGetdoPost或其他程序员自己开发的方法 10 对于更多的客户端请求Server创建新的请求和响应对象仍然激活此servlet的service方法将这两个对象作为参数传递给它如此重复以上的循环但无需再次调用init方法Servlet一般只初始化一次 11 当Server不再需要Servlet时比如当Server要关闭时Server调用Servlet的destroy五、servlet工作过程Web服务器在与客户端交互时.Servlet的工作过程是:
1. 在客户端对web服务器发出请求
2. web服务器接收到请求后将其发送给Servlet
3. Servlet容器为此产生一个实例对象并调用ServletAPI中相应的方法来对客户端HTTP请求进行处理,然后将处理的响应结果返回给WEB服务器.
4. web服务器将从Servlet实例对象中收到的响应结构发送回客户端.六 、Servlet与JSP区别简单的说SUN首先发展出SERVLET其功能比较强劲体系设计也很先进只是它输出HTML语句还是采用了老的CGI方式是一句一句输出所以编写和修改HTML非常不方便。 后来SUN推出了类似于ASP的镶嵌型的JSP把JSP TAG镶嵌到HTML语句中这样就大大简化和方便了网页的设计和修改。新型的网络语言如ASPPHPJSP都是镶嵌型的SCRIPT语言。
1、JSP在本质上就是SERVLET,但是两者的创建方式不一样.
2、Servlet完全是JAVA程序代码构成擅长于流程控制和事务处理通过Servlet来生成动态网页很不直观.
3、JSP由HTML代码和JSP标签构成可以方便地编写动态网页.因此在实际应用中采用Servlet来控制业务流程而采用JSP来生成动态网页.在struts框架中JSP位于MVC设计模式的视图层而Servlet位于控制层.1、JSP是Servlet技术的扩展本质上就是Servlet的简易方式。
2、JSP编译后是“类servlet”。
3、Servlet和JSP最主要的不同点在于Servlet的应用逻辑是在Java文件中并且完全从表示层中的HTML里分离开来。而JSP是Java和HTML组合成一个扩展名为.jsp的文件。
4、JSP侧重于视图Servlet主要用于控制逻辑。七、Servlet代码结构该Servlet处理的是get请求如果读者不理解HTTP可以把它看成是当用户在浏览器地址栏输入URL、单击Web页面中的链接、提交没有指定method的表单时浏览器所发出的请求Servlet也可以很方便地处理post请求。post请求是提交那些指定了method“post”的表单时所发出的请求。若要创建一个Servlet则应使创建的类继承HttpServlet类并覆盖doGet()、doPost()方法之一或全部。doGet()和doPost()方法都有两个参数分别为HttpServletRequest类型和HttpServletResponse类型HttpServletRequest提供访问有关请求的信息的方法例如表单数据、HTTP请求头等。HttpServletResponse除了提供用于指定HTTP应答状态(200404等)、应答头(Content-TypeSet-Cookie等)的方法之外最重要的是它提供了一个用于向客户端发送数据的PrintWriter对于简单的Servlet来说它的大部分工作是通过println()方法生成向客户端发送的页面注意doGet()方法和doPost()方法抛出两个异常因此必须在声明中包含它们。另外还必须导入java.io包(要用到PrintWriter等类)、javax.servlet包(要用到HttpServlet等类)以及javax.servlet.http包要用到(HttpServlet Request类和HttpServletResponse类)。doGet()和doPost()这两个方法是由service()方法调用的有时可能需要直接覆盖service()方法比如Servlet要处理Get和Post两种请求时如果要开发一个可以处理HTTP请求的Servlet程序则肯定要继承HttpServlet类而且在自定义的Servlet类中还要重写HttpServlet类中提供的doGet()方法。Servlet程序本身也是按照请求和应答的方式进行的所以在doGet()方法中定义了两个参数即HttpServletRequest和HttpServletResponse用来接收和回应用户的请求.出处:http://blog.csdn.net/evankaka