how2j.cn


工具版本兼容问题
http协议中的响应代码从 1xx ~ 5xx,一共有41种,不过很多状态码很少会接触到。 下面把开发过程中常接触到的讲解一遍


步骤 1 : 200   
步骤 2 : 301   
步骤 3 : 302   
步骤 4 : 304   
步骤 5 : 404   
步骤 6 : 500   
步骤 7 : 更多代码一一览。。。   

200 表示响应成功了,比如打开页面, 就会看到200响应码

http://127.0.0.1/login.html
200
301 表示客户端跳转,永久性的跳转

为了实现301跳转,在Servlet中应该使用如下代码:

response.setStatus(301);
response.setHeader("Location", "fail.html");


请参考 301或者302客户端跳转
302 客户端跳转,临时性的跳转

比如访问页面

http://127.0.0.1/addHero.html

提交数据会访问addHero,addHero把数据加到数据库后,就会302跳转到listHero来显示新增加的Hero。

在Servlet的代码实现要比301简单点,直接使用

response.sendRedirect("/listHero")

请参考 301或者302客户端跳转
302
304 表示资源未被修改。

当不是第一次访问一个静态页面或者图片的时候,就会得到这么一个提示。这是服务端提示浏览器,这个资源没有发生改变,你直接使用上一次下载的就行了,不需要重新下载。 这样就节约了带宽,并且浏览器的加载速度也更快。

第二次访问页面

http://127.0.0.1/addHero.html

就会看到304
304
404表示访问的页面不存在

比如访问页面

http://127.0.0.1/addHero2.html

这是一个不存在的页面,就会得到404响应码
这表示一个浏览器的错误,就是服务端没提供这个服务,但是你却去访问。 这个锅要算到浏览器头上,不能算在服务器头上。

当然,有的时候是因为服务器没有配置这个路径,所以浏览器访问不到对应的资源。 比如在web.xml中,没有配置listHero,就会得到404错误。
404
500 表示服务端的错误

比如增加新的英雄的时候,血量应该是一个数字,但是提交的数据是“100a"。 而在服务端,使用Float.parseFloat() 试图把它转换为数字的时候,就会抛出异常。 这个就属于服务端的问题。
500
步骤 7 :

更多代码一一览。。。

edit edit
更多代码一一览。。。


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 J2EE-HTTP协议-响应代码 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 982790551
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图