再见西城 发表于 2015-1-18 11:10:39

发布一篇HTTP应对形态

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确实是将语法简化得很好。

老尸 发表于 2015-1-20 15:53:18

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

活着的死人 发表于 2015-1-27 15:30:25

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

飘灵儿 发表于 2015-2-5 06:44:07

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。

变相怪杰 发表于 2015-2-6 02:24:10

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

兰色精灵 发表于 2015-2-9 03:18:22

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。

金色的骷髅 发表于 2015-2-26 20:06:02

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

小妖女 发表于 2015-3-8 17:11:13

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

冷月葬花魂 发表于 2015-3-16 06:43:58

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

不帅 发表于 2015-3-22 20:54:40

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
页: [1]
查看完整版本: 发布一篇HTTP应对形态