??xml version="1.0" encoding="utf-8" standalone="yes"?>岛国在线视频网站,综合五月婷婷,最新日韩avhttp://www.aygfsteel.com/doulei/category/12182.htmlzh-cnTue, 27 Feb 2007 12:33:28 GMTTue, 27 Feb 2007 12:33:28 GMT60Servlet 2.4规范阅读W记(2-3?http://www.aygfsteel.com/doulei/archive/2006/06/14/52866.htmlHello JavaHello JavaWed, 14 Jun 2006 15:43:00 GMThttp://www.aygfsteel.com/doulei/archive/2006/06/14/52866.htmlhttp://www.aygfsteel.com/doulei/comments/52866.htmlhttp://www.aygfsteel.com/doulei/archive/2006/06/14/52866.html#Feedback0http://www.aygfsteel.com/doulei/comments/commentRss/52866.htmlhttp://www.aygfsteel.com/doulei/services/trackbacks/52866.html W??The servlet Interface
所有Servlet实现同一接口QServlet,它有两个直接的子c:(x)GenericServlet和HttpServlet.
2.1 Request Handle method
基本的Servlet使用service()Ҏ(gu)处理h,因ؓ(f)可能有多个客L(fng)h在service()中工作,所以开发者必要考虑到ƈ发的情况?span style="font-weight: bold;">
SRV.2.1.1 HTTP Specific Request Handling Methods
HttpServlet定义了以?个方法:(x)

  • doGet for handling HTTP GET requests
  • doPost for handling HTTP POST requests
  • doPut for handling HTTP PUT requests
  • doDelete for handling HTTP DELETE requests
  • doHead for handling HTTP HEAD requests
  • doOptions for handling HTTP OPTIONS requests
  • doTrace for handling HTTP TRACE requests
SRV.2.1.2 Additional Methods
   
关于Http的几个附加命令HEAD,DELETE,PUT,OPTIONS,TRACE?br />SRV.2.1.3 Conditional GET Support
q个”Conditional GET“指的是q样的请求:(x)只有所h的资源在一个特定时间之后被修改q,才被发送给客户端?br /> HttpServlet里的getLastModified()Ҏ(gu)提供了这斚w的支持?span style="font-weight: bold;">
SRV.2.2 Number of Instances
    ?.4之前的版本中QServlet有两U方式:(x)
    W一U方式是对于一个ServletQ只有一个实例,q个实例可以同时服务多个用户Q这是默认的?br />     另一U方式是一个Servlet的实例只能服务一个客Pq样需要一个Servlet的PoolQ当多个用户q接Ӟ需要徏立多个Servlet实例。这U方式需要Servlet实现SingleThreadModel接口?br />     以上两种方式的比较:(x)W一U方式需要考虑同步问题Q因Z个Servlet的实例服务多个用PServlet中的数据成员需要同?,W二U方式不需要考虑同步问题?br />    
SRV.2.3 Servlet Life Cycle
    1.载入Q  ?/span>
    应用服务器可能在启动时蝲入Servlet或者在W一个请求到来时延迟加蝲,载入的方式也是用类装蝲器,和普通的Java Object没有什么区别?br />     2.初始化:(x)
    初始化时可能遇到错误Q这时会(x)抛出ServletException或者UnaviliableException异常
    3.多线E:(x)
    需要注意的一Ҏ(gu)Q最好不要对service()Ҏ(gu)q行synchronize修饰。这L(fng)话就不能使用U程池,而必drequest序列?br />     4.处理h时的错误处理Q?/span>
    如果在这时发生异常,可以发送UnavailableException或者ServletException,如果发送了 ServletException,服务器必要惛_法清除request。如果发送了UnavailableException,有两U选择Q如果是? 久的的无效,需要调用destroy()Qƈ摧毁ServletQ如果这时客L(fng)讉K此ServletQ它?yu)?x)收到404错误。如果是临时的无效,容器需 要拒lQ何到此Servlet的请求,q且q回503错误
   5.U程安全的话?/span>
    request和responseq两个对象不是线E安全的Q所以不要在service()Ҏ(gu)外面使用它们Q它们的引用不应该传l另一个线E中的对象,如果一定要讉K它们Q必d使用q两个对象的代码q行同步?br style="font-weight: bold; text-decoration: underline;" />    6.服务的结?/span>
   Servlet容器q不需要一直保持一个Servlet处于q行状态,在释放一个servletӞ?x)调用destroyҎ(gu)Q当调用destroyҎ(gu)之前Q容器会(x)一直等到所有的U程都完成了在service()Ҏ(gu)中的工作?br />
W??Servlet Context
SRV.3.1 Introduction to the ServletContext Interface
Servlet ContextQ从Servlet的角度来看,可以理解为它所属Web应用E序QServletContext是一个接口,Servlet容器的提供商必须要实现这个接口?br /> ServletContext能做什么呢Q它可以把事件记录到日志中,获得资源的URLQ还可以利用ServletContext存放一些所有Servlet都能׃n的数据?br /> ServletContext有一个\径,例如http://www.mycorp.com/catalogQ这里的cataqlog是ServletContext的\径,所有的对catalog的请求都?x)关联到q个ServletContext.
SRV.3.2 Scope of a ServletContext Interface

在Servlet容器中,每个ServletContext通常只有一个实例。当Web容器是分布式的部|在多台机器上时Q那一个ServletContext在每个JVM上都有一个实例?br /> 在Servlet容器中,但没有部|的Servlet也是允许的,q种Servlet属于一个缺省的ServletContextQ这U缺省的ServletContext不能被分布到多个JVM上?br />SRV.3.3 Initialization Parameters
在ServletContext接口中,有两个方法可以用来获得初始化参数Q?span style="font-weight: bold;">
?getInitParameter
?getInitParameterNames
SRV.3.4 Context Attributes
在ServletContext中,?个方法可以用来设|和理ServletContext的属性:(x)
?setAttribute
?getAttribute
?getAttributeNames
?removeAttribute
SRV.3.4.1 Context Attributes in a Distributed Container
ServletContext中的属性只在本地的JVM中有效,不能被分布式环境中运行于其它JVM中的Servlet讉KQ如果需要在分布式环境中׃n数据Q可以把数据存放在SessionQ数据库或EJB中?br />SRV.3.5 Resources
资源指的是在Web应用E序中的一些静态的内容Q如静态HTML面Q图片等{。ServletContext提供了两个方法来讉Kq些资源Q?br /> ?getResource
?getResourceAsStream
q两个方法都接受一个String型参敎ͼ它指定了一个以"/"开头的相对于这个ServletContext的资源\径。资源可以放在同一服务器上Q或者不同服务器上,或者在一个Web应用E序的WAR包中?br /> 需要注意的是,q两个方法不能用来获取动态内容,如果我们用这两个Ҏ(gu)d一个JSP面Q返回的是JSP面的源代码?br /> getResourcePaths(String path)Ҏ(gu)可以用来获取一个资源列表?br />SRV.3.6 Multiple Hosts and Servlet Contexts
Web服务器可能支持多个域名分享一个IP地址Q这U配|叫做“虚拟主机”。在q种情况下,每个虚拟L必须要有自己的ServletContextQ而不能共享一个ServletContext?br />SRV.3.7 Reloading Considerations
所有的Servlet和它们引用的cd都处于一个类装蝲器范围内?br />SRV.3.7.1 Temporary Working Directories
每一个ServletContext都需要一个(f)时目录,q且通过 javax.servlet.context.tempdir属性指定。Servlet容器不需要管理这个(f)时\径的内容Q但是要保一? ServletContext的(f)时目录对其他的ServletContext是不可见的?br />


Hello Java 2006-06-14 23:43 发表评论
]]>
վ֩ģ壺 | | ɽ| | | ɽ| | | | Խ| ű| | ʯ| ԭ| | | | | Ԫ| ҵ| | | | | Ǽ| | | ϻ| | г| ˮ| | ĩ| | | Ϫ| ʯ| | | | ɽ|