仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 602|回复: 9
打印 上一主题 下一主题

[学习教程] JAVA网页编程之Java Servlet API申明文档(2.1a版)(...

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:21:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。servlet绪言
这是一份关于2.1版JavaServletAPI的申明文档,作为对这本文档的增补,你能够到http://java.sun.com/products/servlet/index.html上面下载Javadoc格局的文档。

谁必要读这份文档
这份文档形貌了JavaServletAPI的最新版本2.1版。以是,这本书关于Servlet的开辟者及servlet引擎的开辟者一样合用。

JavaServletAPI的构成
JavaServletAPI由两个软件包构成:一个是对应HTTP的软件包,另外一个是不合错误应HTTP的通用的软件包。这两个软件包的同时存在使得JavaServletAPI可以顺应未来的其他哀求-呼应的协定。
这份文档和方才说起的Javadoc格局的文档都形貌了这两个软件包,Javadoc格局的文档还形貌了你应当怎样利用这两个软件包中的一切办法。

有关标准
你大概对上面的这些Internet标准感乐趣,这些标准将间接影响到ServletAPI的开展和实行。你能够从http://info.internet.isi.edu/7c/in-notes/rfc/.cache找到上面提到的一切这些RFC标准。
RFC1738一致资本定位器(URL)
RFC1808相干一致资本定位器
RFC1945超文本传输协定--HTTP/1.0
RFC2045多用处Internet邮件扩大(多用处网际邮件扩大协定(MIME))第一部分:Internet信息体魄式
RFC2046多用处Internet邮件扩大(多用处网际邮件扩大协定(MIME))第二部分:媒体范例
RFC2047多用处网际邮件扩大协定(MIME)(多用处Internet邮件扩大)第三部分:信息题目扩大用于非ASCII文本
RFC2048多用处Internet邮件扩大(多用处网际邮件扩大协定(MIME))第四部分:注册步骤
RFC2049多用处Internet邮件扩大(多用处网际邮件扩大协定(MIME))第五部分:分歧性尺度和例子
RFC2068超文本传输协定--HTTP/1.1
RFC2069一个扩大HTTP:择要会见判定
RFC2109HTTP形态办理机制
RFC2145HTTP版本号的利用息争释
RFC2324超文本CoffeePot把持协定(HTCPCP/1.0)
万维网协会(http://www.w3.org)办理着这些协定的标准和实行。


有关JavaServlets
JavaTMservlets是一个不受平台束缚的Java小程序,它能够被用来经由过程多种办法扩大一个Web服务器的功效。你能够把Servlet了解成Server上的applets,它被编译成字节码,如许它就能够主动态地载进并用效地扩大主机的处置才能。
Servlet与applets分歧的中央是,它不运转在Web扫瞄器或其他图形化的用户界面上。Servlet经由过程servlet引擎运转在Web服务器中,以实行哀求和呼应,哀求、呼应的典范典范是HTTP协定。
一个客户端程序,能够是一个Web扫瞄器,大概长短其他的能够毗连上Internet的程序,它会会见Web服务器并收回哀求。这个哀求被运转在Web服务器上的Servlet引擎处置,并前往呼应到Servlet。Servlet经由过程HTTP将这个呼应转发到客户端。
在功效上,Servlet与CGI、NSAPI有点相似,可是,与他们分歧的是:Servlet具有平台有关性。

JavaServlet概论
Servlet与其他一般的server扩大机制有以下前进:
由于它接纳了分歧的历程处置形式,以是它比CGI更快。
它利用了很多Web服务器都撑持的尺度的API。
它承继了Java的一切上风,包含易晋级和平台有关性。
它能够挪用Java所供应的大批的API的功效模块。
这份文档申明了JavaServletAPI的类和接口的办法。有关更多的信息,请参看上面的API申明。

Servlet的性命周期
一个Javaservlet具有一个性命周期,这个性命周期界说了一个Servlet怎样被载进并被初始化,怎样吸收哀求并作出对哀求的呼应,怎样被从服务中扫除。Servlet的性命周期被javax.servlet.Servlet这个接口所界说。
一切的JavaServlet城市间接地或直接地实行javax.servlet.Servlet接口,如许它才干在一个Servlet引擎中运转。Servlet引擎是Web服务器依照JavaServletAPI定制的扩大。Servlet引擎供应收集服务,可以了解MIME哀求,并供应一个运转Servlet的容器。
javax.servlet.Servlet接口界说了在Servlet的性命周期中特准时间和特定按次被挪用的办法。

Servlet的剖析和载进
Servlet引擎剖析并载进一个Servlet,这个历程能够产生在引擎启动时,必要一个Servlet往呼应哀求时,和在此之间的任什么时候候。
Servlet引擎使用Java类载进工具载进一个Servlet,Servlet引擎能够从一个当地的文件体系、一个远程的文件体系和收集载进Servlet。

Servlet的初始化
Servlet引擎载进Servlet后,Servlet引擎必需对Servlet举行初始化,在这一过程当中,你能够读取一些流动存储的数据、初始化JDBC的毗连和创建与其他资本的毗连。
在初始化过程当中,javax.servlet.Servlet接口的init()办法供应了Servlet的初始化信息。如许,Servlet能够对本人举行设置。
init()办法取得了一个Servlet设置对象(ServletConfig)。这个对象在Servlet引擎中实行,并同意Servlet经由过程它获处相干参数。这个对象使得Servlet可以会见ServletContext对象。

Servlet处置哀求
Servlet被初始化以后,它已能够处置来自客户真个哀求,每个来自客户真个哀求都被形貌成一个ServletRequest对象,Servlet的呼应被形貌成一个ServletResponse对象。
当客户端收回哀求时,Servlet引擎传送给Servlet一个ServletRequest对象和一个ServletResponse对象,这两个对象作为参数传送到service()办法中。
Servlet也能够实行ServletRequest接口和ServletResponse接口。ServletRequest接口使得Servlet有权利用客户端收回的哀求。Servlet能够经由过程ServletInputStream对象读取哀求信息。
ServletResponse接口同意Servlet创建呼应头和形态代码。经由过程实行这个接口,Servlet有权利用ServletOutputStream类来向客户端前往数据。

多线程和映照
在多线程的情况下,Servlet必需能处置很多同时产生的哀求。破例的情形是这个Servlet实行了SingleThreadModel接口,假如是那样的话,Servlet只能同时处置一个哀求。
Servlet按照Servlet引擎的映照来呼应客户真个哀求。一个映照对包含一个Servlet实例和一个Servlet前往数据的URL,比方:HelloServletwith/hello/index.html。
但是,一个映照多是由一个URL和很多Servlet实例构成,比方:一个散布式的Servlet引擎大概运转在不止一个的服务器中,如许的话,每个服务器中都大概有一个Servlet实例,以均衡历程的载进。作为一个Servlet的开辟者,你不克不及假定一个Servlet只要一个实例。

Servlet的卸载
Servlet引擎其实不必须包管一个Servlet在任什么时候候或在服务开启的任什么时候候都被载进。Servlet引擎能够自在的在任什么时候候利用或扫除一个Servlet。因而,我们不克不及依附一个类或实例来存储主要的信息。
当Servlet引擎决意卸载一个Servlet时(比方,假如这个引擎被封闭大概必要让资本),这个引擎必需同意Servlet开释正在利用的资本并存储有关材料。为了完成以上事情,引擎会挪用Servlet的destroy()办法。
在卸载一个Servlet之前,Servlet引擎必需守候一切的service()办法完成或超时停止(Servlet引擎会对超时作出界说)。当一个Servlet被卸载时,引擎将不克不及给Servlet发送任何哀求。引擎必需开释Servlet并完成无用存储单位的搜集

Servlet映照手艺
作为一个Servlet引擎的开辟者,你必需关于怎样映照客户真个哀求到Servlet有大批的顺应性。这份申明文档不划定映照怎样产生。可是,你必需可以自在地使用上面的一切手艺:

映照一个Servlet到一个URL
比方,你能够指定一个特别的Servlet它仅被来自/feedback/index.html的哀求挪用。

映照一个Servlet到以一个指定的目次名入手下手的一切URL
比方,你能够映照一个Servlet到/catalog,如许来自/catalog/、/catalog/garden和/catalog/housewares/index.html的哀求城市被映照到这个Servlet。可是来自/catalogtwo或/catalog.html的哀求没被映照。

映照一个Servlet到一切以一个特定的字段开头的一切URL
比方,你能够映照一个来自于一切以in.thtml开头的哀求到一个特定的Servlet。

映照一个Servlet到一个特别的URL/servlet/servlet_name。
比方,假如你创建了一个名叫listattributes的Servlet,你能够经由过程利用/servlet/listattributes来会见这个Servlet。

经由过程类名挪用Servlet
比方,假如Servlet引擎吸收了来自/servlet/com.foo.servlet.MailServlet的哀求,Servlet引擎会载进这个com.foo.servlet.MailServlet类,创建实例,并经由过程这个Servlet来处置哀求。

Servlet情况
ServletContext接口界说了一个Servlet情况对象,这个对象界说了一个在Servlet引擎上的Servlet的视图。经由过程利用这个对象,Servlet能够纪录事务、失掉资本并失掉来自Servlet引擎的类(比方RequestDispatcher对象)。一个Servlet只能运转在一个Servlet情况中,可是分歧的Servlet能够在Servlet引擎上有分歧的视图。
假如Servlet引擎撑持假造主机,每一个假造主机有一个Servlet情况。一个Servlet情况不克不及在假造主机之间共享。
Servlet引擎可以同意一个Servlet情况有它本人的举动局限。
比方,一个Servlet情况是属于bank使用的,它将被映照到/bank目次下。在这类情形下,一个对getContext办法的挪用会前往/bank的Servlet情况。

HTTP会话
HTTP是一个没有形态的协定。要创建一个无效的Web服务使用,你必需可以辨认一个一连的来自远真个客户机的独一的哀求。跟着工夫的已往,开展了很多会话跟踪的手艺,可是利用起来都对照贫苦。
JavaServletAPI供应了一个复杂的接口,经由过程这个接口,Servlet引擎能够无效地跟踪用户的会话。

创建Session
由于HTTP是一个哀求-呼应协定,一个会话在客户机到场之前会被以为是一个新的会话。到场的意义是前往会话跟踪信息到服务器中,指出会话已被创建。在客户端到场之前,我们不克不及判别下一个客户端哀求是今朝会话的一部分。
鄙人面的情形下,Session会被以为是新的Session。
客户真个Session在此之前还不晓得
客户端选择不到场Session,比方,假如客户端回绝吸收来自服务器的cookie
作为一个Servlet的开辟者,你必需决意你的Web使用是不是处置客户机不到场或不克不及到场Session。服务器会在Web服务器或Servlet划定的工夫内保持一个Session对象。当Session停止时,服务器会开释Session对象和一切绑定在Session上的对象。
绑定对象到Session中
假如有助于你处置使用的数据需求,你大概必要绑定对象到Session中,你能够经由过程一个独一的名字绑定任何的对象到Session中,这时候,你必要利用HttpSession对象。任何绑定到Session上的对象都能够被处置统一会话的Servlet挪用。
有些对象大概必要你晓得甚么时分会被安排到Session中或从Session中移开。你能够经由过程利用HttpSessionBindingListener接口取得这些信息。当你的使用存储数据到Session中,或从Session中扫除数据,Servlet城市经由过程HttpSessionBindingListener检杳甚么类被绑定或被作废绑定。这个接口的办法会传递被绑定或被作废绑定的对象。
你说是sun公司对她研究的透还是微软?针对自己工具开发的.net性能上肯定会站上风的。
只想知道 该用户已被删除
沙发
发表于 2015-1-20 21:00:59 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
爱飞 该用户已被删除
板凳
发表于 2015-1-25 21:49:42 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
若天明 该用户已被删除
地板
发表于 2015-2-1 09:30:32 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
山那边是海 该用户已被删除
5#
发表于 2015-2-7 01:45:56 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
小女巫 该用户已被删除
6#
发表于 2015-2-7 04:32:19 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
蒙在股里 该用户已被删除
7#
发表于 2015-2-18 16:04:27 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
小魔女 该用户已被删除
8#
发表于 2015-3-6 08:41:32 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
因胸联盟 该用户已被删除
9#
发表于 2015-3-20 04:43:25 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
再现理想 该用户已被删除
10#
发表于 2015-4-12 12:50:40 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 22:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表