|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)
Web服务器呼应扫瞄器或其他客户程序的哀求时,其应对一样平常由以下几个部分构成:一个形态行,几个应对头,一个空行,内容文档。上面是一个最复杂的应对:
HTTP/1.1200OK
Content-Type:text/plain
HelloWorld
形态行包括HTTP版本、形态代码、与形态代码对应的冗长申明信息。在年夜多半情形下,除Content-Type以外的一切应对头都是可选的。但Content-Type是必须的,它形貌的是前面文档的MIME范例。固然年夜多半应对都包括一个文档,但也有一些不包括,比方对HEAD哀求的应对永久不会附带文档。有很多形态代码实践上用来标识一次失利的哀求,这些应对也不包括文档(或只包括一个冗长的毛病信息申明)。
Servlet能够使用形态代码来完成很多功效。比方,能够把用户重定向到另外一个网站;能够唆使出前面的文档是图片、PDF文件或HTML文件;能够告知用户必需供应暗码才干会见文档;等等。这一部分我们将详细会商各类形态代码的寄义和使用这些代码能够做些甚么。
7.2设置形态代码
如前所述,HTTP应对形态行包括HTTP版本、形态代码和对应的形态信息。因为形态信息间接和形态代码相干,而HTTP版本又由服务器断定,因而必要Servlet设置的只要一个形态代码。
Servlet设置形态代码一样平常利用HttpServletResponse的setStatus办法。setStatus办法的参数是一个整数(即形态代码),不外为了使得代码具有更好的可读性,能够用HttpServletResponse中界说的常量来制止间接利用整数。这些常量依据HTTP1.1中的尺度形态信息定名,一切的名字都加上了SC前缀(StatusCode的缩写)并年夜写,同时把空格转换成了下划线。也就是说,与形态代码404对应的形态信息是“NotFound”,则HttpServletResponse中的对应常量名字为SC_NOT_FOUND。但有两个破例:和形态代码302对应的常量依据HTTP1.0定名,而307没有对应的常量。
设置形态代码并不是老是意味着不要再前往文档。比方,固然年夜多半服务器前往404应对时会输入复杂的“FileNotFound”信息,但Servlet也能够定制这个应对。不外,定制应对时应该在经由过程PrintWriter发送任何内容之前先挪用response.setStatus。
固然设置形态代码一样平常利用的是response.setStauts(int)办法,但为了复杂起见,HttpServletResponse为两种罕见的情况供应了公用办法:sendError办法天生一个404应对,同时天生一个冗长的HTML毛病信息文档;sendRedirect办法天生一个302应对,同时在Location头中唆使新文档的URL。
7.3HTTP1.1形态代码及其寄义
下表显现了罕见的HTTP1.1形态代码和它们对应的形态信息和寄义。
应该审慎地利用那些只要HTTP1.1撑持的形态代码,由于很多扫瞄器还只可以撑持HTTP1.0。假如你利用了HTTP1.1独有的形态代码,最好可以反省一下哀求的HTTP版本号(经由过程HttpServletRequest的getProtocol办法)。形态代码形态信息寄义
100Continue初始的哀求已承受,客户应该持续发送哀求的其他部分。(HTTP1.1新)
101SwitchingProtocols服务器将服从客户的哀求转换到别的一种协定(HTTP1.1新)
200OK统统一般,对GET和POST哀求的应对文档跟在前面。假如不必setStatus设置形态代码,Servlet默许利用202形态代码。
201Created服务器已创立了文档,Location头给出了它的URL。
202Accepted已承受哀求,但处置还没有完成。
203Non-AuthoritativeInformation文档已一般地前往,但一些应对头大概不准确,由于利用的是文档的拷贝(HTTP1.1新)。
204NoContent没有新文档,扫瞄器应当持续显现本来的文档。假如用户按期地革新页面,而Servlet能够断定用户文档充足新,这个形态代码是很有效的。
205ResetContent没有新的内容,但扫瞄器应当重置它所显现的内容。用来强迫扫瞄器扫除表单输出内容(HTTP1.1新)。
206PartialContent客户发送了一个带有Range头的GET哀求,服务器完成了它(HTTP1.1新)。
300MultipleChoices客户哀求的文档能够在多个地位找到,这些地位已在前往的文档内列出。假如服务器要提出优先选择,则应当在Location应对头指明。
301MovedPermanently客户哀求的文档在其他中央,新的URL在Location头中给出,扫瞄器应当主动地会见新的URL。
<p>
在ruby里才是一切皆对象。当然我不并不是很了解ruby,但是ruby确实是将语法简化得很好。 |
|