??xml version="1.0" encoding="utf-8" standalone="yes"?>日本在线一区,在线综合+亚洲+欧美中文字幕,美女被人操视频在线观看http://www.aygfsteel.com/wxb1988/category/54844.html知h者智Q自知者明。胜有力,自胜者强?/description>zh-cnTue, 09 Jun 2015 06:35:11 GMTTue, 09 Jun 2015 06:35:11 GMT60Java Servlet ~程及应?一)http://www.aygfsteel.com/wxb1988/archive/2015/06/09/425581.htmlwxb1988wxb1988Tue, 09 Jun 2015 06:28:00 GMThttp://www.aygfsteel.com/wxb1988/archive/2015/06/09/425581.htmlhttp://www.aygfsteel.com/wxb1988/comments/425581.htmlhttp://www.aygfsteel.com/wxb1988/archive/2015/06/09/425581.html#Feedback0http://www.aygfsteel.com/wxb1988/comments/commentRss/425581.htmlhttp://www.aygfsteel.com/wxb1988/services/trackbacks/425581.html一、概q?/strong>

  Servlet是一U独立于q_和协议的服务器端的Java应用E序Q可以生成动态的Web面?/p>

  Servlet是位于Web 服务器内部的服务器端的Java应用E序Q与传统的从命o行启动的Java应用E序不同QServlet由Web服务器进行加载,该Web服务器必d含支持Servlet的Java虚拟机?/p>

  Java Servlet ?Applet 的比?

  怼之处Q?/p>

  * 它们不是独立的应用程序,没有main()Ҏ?/p>

  * 它们不是qhE序员调用,而是由另外一个应用程?容器)调用?/p>

  * 它们都有一个生存周期,包含init()和destroy()Ҏ?/p>

  不同之处Q?/p>

  * Appleth很好的图形界?AWT)Q与览器一P在客Lq行?/p>

  * Servlet 则没有图形界面,q行在服务器端?/p>

  Java Servlet ?CGI(Common Gateway Interface) 的比?

  与传l的CGI和许多其他类似CGI的技术相比,Java Servleth更高的效率,更容易用,功能更强大,h更好的可UL性,更节省投资。在未来的技术发展过E中QServlet有可能彻底取代CGI?/p>

  * 高效

  在传l的CGI中,每个h都要启动一个新的进E,如果CGIE序本n的执行时间较短,启动q程所需要的开销很可能反而超q实际执行时间。而在Servlet中,每个h׃个轻量的JavaU程处理(而不是重量的操作系l进E??/p>

  在传lCGI中,如果有N个ƈ发的对同一CGIE序的请求,则该CGIE序的代码在内存中重复装载了Nơ;而对于ServletQ处理请求的是N个线E,只需要一份ServletcM码。在性能优化斚wQServlet也比CGI有着更多的选择?/p>

  * 方便

  Servlet提供了大量的实用工具例程Q例如自动地解析和解码HTML表单数据、读取和讄HTTP头、处理Cookie、跟t会话状态等?br />

* 功能强大

  在Servlet中,许多使用传统CGIE序很难完成的Q务都可以L地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGIE序不能。Servletq能够在各个E序之间׃n数据Q得数据库q接池之cȝ功能很容易实现?/p>

  * 可移植性好

  Servlet用Java~写QServlet APIh完善的标准。因此,为IPlanet Enterprise Server写的Servlet无需M实质上的改动卛_UL到Apache、Microsoft IIS或者WebStar。几乎所有的L服务器都直接或通过插g支持Servlet?/p>

  * 节省投资

  不仅有许多廉L臛_费的Web服务器可供个人或规模网站用,而且对于现有的服务器Q如果它不支持Servlet的话Q要加上q部分功能也往往是免费的(或只需要极的投资)?/p>

  Java Servlet ?JSP(JavaServer Pages) 的比?

  JavaServer Pages(JSP)是一U实现普通静态HTML和动态HTML混合~码的技术,JSPq没有增加Q何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便Q不必再用println语句来输出每一行HTML代码。更重要的是Q借助内容和外观的分离Q页面制作中不同性质的Q务可以方便地分开Q比如,由页面设计者进行HTML设计Q同时留ZServletE序员插入动态内容的I间?/p>

  Java Servlet API 2.2 ?/strong>

  

  Java Servlet API 2.2 的类和接口组成两个Java 包,卻Ijavax.servlet ?javax.servlet.http(q包括javax.servlet.jsp包,不在本篇文章讨论范围之内)?/p>

  javax.servlet 包提供了控制 Servlet 生命周期所必需?Servlet 接口Q是~写 Servlet 时必要实现的?/p>

  javax.servlet.http 包提供了从Servlet 接口z出的专门用于处理 HTTP h的抽象类和一般的工具cR所有的Servlet 对象都要实现Servlet 接口Q大多数情况下是作ؓ已经实现了Servlet 接口的javax.servlet.GenericServlet ?javax.servlet.http.HttpServlet q两个抽象类的子cL间接实现Servlet 接口

javax.servlet 包定义的cd接口Q?/p>

  interface RequestDispatcher

  //定义一U对象,用于从客h受请求,q将h发送到服务器上M指定的资源,如一个Servlet 、JSP ?HTML 文g?/p>

  interface Servlet

  //定义了所?Servlet 必须实现的方法?/p>

  interface ServletConfig

  //定义Servlet config 对象Q由Servlet 引擎用在 Servlet 初始化时Q向 Servlet 传递信息?/p>

  interface ServletContext

  //定义了一pdҎQ以便Servlet与其q行的环境通信?/p>

  interface ServletRequest

  //定义了用于向Servlet传递客戯求信息的对象?/p>

  interface ServletResponse

  //定义了一个对象,由Servlet用于向客户发送响应?/p>

  interface SingleThreadModel

  //用于保证Servlet在Q一时刻Q只处理一个请求?/p>

  class GenericServlet

  //l承Servlet接口Q定义了一个通用的,与协议无关的Servlet?/p>

  class ServletInputStream

  //定义了一个输入流Q用于由Servlet从中d客户h的二q制数据?/p>

  class ServletOutputStream

  //定义了一个输出流Q用于由Servlet向客户发送二q制数据?/p>

  class ServletException

  //定义了一个当Servlet遇到问题时可以抛出的异常?/p>

  class UnavailableException

  //定义了一U异常,用于由Servlet指明它永q或暂时不可用?/p>

  javax.servlet.http 包定义的cd接口Q?/p>

  interface HttpServletRequest

  //l承了ServletRequest 接口QؓHTTPServlet 提供h信息?/p>

  interface HttpServletResponse

  //l承了ServletResponse 接口QؓHTTPServlet 输出响应信息提供支持?/p>

interface HttpSession

  //为维?HTTP 用户的会话状态提供支持?/p>

  interface HttpSessionBindingListener

  //使得某对象在加入一个会话或从会话中删除时能够得到通知?/p>

  interface HttpSessionContext

  //由Servlet 2.1 定义Q该对象在新版本已不被支持?/p>

  class Cookie

  //用在Servlet 中用Cookie 技?/p>

  class HttpServlet

  //定义了一个抽象类Q?GenericServlet 抽象c,应被 HTTPServlet l承?/p>

  class HttpSessionBindingEvent

  //定义了一U对象,当某一个实CHttpSessionBindingListener接口的对象被加入会话或从?/话中删除Ӟ会收到该cd象的一个句?/p>

  class HttpUtils

  //提供了一pd便于~写HTTPServlet 的方法?/p>

  下面主要介绍javax.servlet.http提供的HTTP Servlet应用~程接口?/p>

  HTTP Servlet 使用一?HTML 表格来发送和接收数据。要创徏一?HTTP ServletQ请扩展 HttpServlet c, 该类是用专门的方法来处理 HTML 表格?GenericServlet 的一个子cR?HTML 表单是由 <FORM> ?</FORM> 标记定义的。表单中典型地包含输入字D?如文本输入字Dc复选框、单选按钮和选择列表)和用于提交数据的按钮。当提交信息Ӟ它们q指定服务器应执行哪一个Servlet(或其它的E序)?HttpServlet cd?init()、destroy()、service() {方法。其?init() ?destroy() Ҏ是承的?/p>

  (1) init() Ҏ

  ?Servlet 的生命期中,仅执行一?init() Ҏ。它是在服务器装?Servlet 时执行的?可以配置服务器,以在启动服务器或客户机首ơ访?Servlet 时装?Servlet?无论有多客h讉K ServletQ都不会重复执行 init() ?/p>

~省?init() Ҏ通常是符合要求的Q但也可以用定制 init() Ҏ来覆盖它Q典型的是管理服务器端资源?例如Q可能编写一个定?init() 来只用于一ơ装?GIF 囑փQ改q?Servlet q回 GIF 囑փ和含有多个客hh的性能。另一个示例是初始化数据库q接。缺省的 init() Ҏ讄?Servlet 的初始化参数Qƈ用它?ServletConfig 对象参数来启动配|, 因此所有覆?init() Ҏ?Servlet 应调?super.init() 以确保仍然执行这些Q务。在调用 service() Ҏ之前Q应保已完成了 init() Ҏ?/p>


  (2) service() Ҏ

  service() Ҏ?Servlet 的核心。每当一个客戯求一个HttpServlet 对象Q该对象的service() Ҏp被调用,而且传递给q个Ҏ一?h"(ServletRequest)对象和一?响应"(ServletResponse)对象作ؓ参数??HttpServlet 中已存在 service() Ҏ。缺省的服务功能是调用与 HTTP h的方法相应的 do 功能。例如, 如果 HTTP hҎ?GETQ则~省情况下就调用 doGet() 。Servlet 应该?Servlet 支持?HTTP Ҏ覆盖 do 功能。因?HttpServlet.service() Ҏ会检查请求方法是否调用了适当的处理方法,不必要覆?service() Ҏ。只需覆盖相应?do Ҏ可以了?/p>

  当一个客户通过HTML 表单发出一个HTTP POSThӞdoPost()Ҏ被调用。与POSTh相关的参CZ个单独的HTTP h从浏览器发送到服务器。当需要修Ҏ务器端的数据Ӟ应该使用doPost()Ҏ?/p>

  当一个客户通过HTML 表单发出一个HTTP GETh或直接请求一个URLӞdoGet()Ҏ被调用。与GETh相关的参数添加到URL的后面,q与q个h一起发送。当不会修改服务器端的数据时Q应该用doGet()Ҏ?br />

 Servlet的响应可以是下列几种cdQ?/p>

  一个输出流Q浏览器Ҏ它的内容cd(如text/HTML)q行解释?/p>

  一个HTTP错误响应, 重定向到另一个URL、servlet、JSP?/p>

  (3) destroy() Ҏ

  destroy() Ҏ仅执行一ơ,卛_服务器停止且卸装Servlet 时执行该Ҏ。典型的Q将 Servlet 作ؓ服务器进E的一部分来关闭。缺省的 destroy() Ҏ通常是符合要求的Q但也可以覆盖它Q典型的是管理服务器端资源。例如,如果 Servlet 在运行时会篏计统计数据,则可以编写一?destroy() ҎQ该Ҏ用于在未装入 Servlet 时将l计数字保存在文件中。另一个示例是关闭数据库连接?/p>

  当服务器卸装 Servlet Ӟ在所?service() Ҏ调用完成后,或在指定的时间间隔过后调?destroy() Ҏ。一个Servlet 在运行service() Ҏ时可能会产生其它的线E,因此L认在调用 destroy() ҎӞq些U程已终止或完成?/p>

  (4) GetServletConfig()Ҏ

  GetServletConfig()Ҏq回一?ServletConfig 对象Q该对象用来q回初始化参数和ServletContext。ServletContext 接口提供有关servlet 的环境信息?/p>

  (5) GetServletInfo()Ҏ

  GetServletInfo()Ҏ是一个可选的ҎQ它提供有关servlet 的信息,如作者、版本、版权?/p>

  当服务器调用sevlet 的Service()、doGet()和doPost()q三个方法时Q均需?"h"?响应"对象作ؓ参数?h"对象提供有关h的信息,?响应"对象提供了一个将响应信息q回l浏览器的一个通信途径?/p>

  javax.servlet 软g包中的相关类为ServletResponse和ServletRequestQ而javax.servlet.http 软g包中的相关类为HttpServletRequest ?HttpServletResponse?/p>

  Servlet 通过q些对象与服务器通信q最l与客户机通信。Servlet 能通过调用"h"对象的方法获知客h环境Q服务器环境的信息和所有由客户机提供的信息。Servlet 可以调用"响应"对象的方法发送响应,该响应是准备发回客户机的?/p>

wxb1988 2015-06-09 14:28 发表评论
]]>
վ֩ģ壺 ɽ| ƽ| | | ޶| | | տ| | IJ| | | | | | | | ɾ| | ƽ˳| | | ޻| ˺| ʯ| | | | ˳| ƽ| ĵ| Խ| | | ͨ| Ҧ| ߰| Դ| ϸ| | |