- 浏览: 89538 次
文章分类
最新评论
第六章:服务器响应的生成:HTTP状态代码
核心方法:
1.在向客户程序发送任何文档内容之前设置状态代码。当然从第三章,我们也可以知道,我们还要在传送文档之前设置内容的类型。
重点提示:
1.表示302常量的是SC_MOVED_TEMPORARILY,不是SC_FOUND。
警告:
1.默认情况下,IE版本5和气候的版本都忽略服务器生成的错误页面,要打开该功能。在IE中,使用【工具】,选择【Internet Options(Internet选项)】,选取【Advanced(高级)】标签,确保选择【显示友好的HTTP错误信息】
学习笔记:
从前面几章,我们可以看出,一个浏览器或其他客户程序的请求,由一个HTTP命令,0或多个请求报头(HTTP1.1中为一个或多个,因为Host必需)、一个空行和一些查询数据。
而web服务器对请求的响应,一般由一个状态行,一些响应报头,一个空行和相应的文档构成
比如:HTTP/1.1 200 OK
Content-Type :text/html
Header2:...
...
HeaderN:...
(Blank Line)
<!DOCTYPE...>
....
一:状态代码的指定
一般不需要明确指定,系统默认使用200的状态代码:
200 - 服务器成功返回网页
404 - 请求的网页不存在
503 - 服务器暂时不可用
具体可参见http://support.google.com/webmasters/bin/answer.py?hl=zh-Hans&answer=40132或者http://www.kuqin.com/web/20090913/68714.html
如果我们要设置,就要使用response.setStatus,response.sendRedirect或response.sendError。
1.设置302和404状态代码:sendRedirect和sendError,
a.状态代码302命令浏览器连接到新的位置,sendRedirect方法生成302响应以及Location报头,给出新的文档的URL,这个URL即可以是绝对URL,也可以是相对的URL。系统在将它们放入Location报头之前,自动将相对URL转换成绝对URL。使用sendRedirect等效于
b.状态代码404用于服务器没有找到文档的情况,sendError方法发送状态代码(一般为404)以及一小段简短的消息,这段消息被自动安排到HTML文档中发送给客户。也就是说不需要我们把错误信息发送给客户,这个sendError可以完成我们的任务
二、HTTP1.1状态代码。
1.302状态代码:一般认为仅当最初的请求为GET时,浏览器才应该自动执行重定向。但许多旧的浏览器在最初消息是POST的情况下,依旧错误的跟随302响应中的重定向信息。
2.303状态代码:除非初始的请求为POST,否则应该用GET来读取新的文档。也就是说浏览器只有在接受到303响应状态时才跟从POST请求的重定向信息。当然303对POST的响应不代表303状态代码只对POST的相应,它还对GET相应,这样302和303就重复了。这样我就要引入一个307来解决这个二义性的问题。
3.307状态代码规定,对于GET请求的重定向,继续进行,而对POST请求的重定向,则不再继续下去。这样使用307而不是302,就避免了和303的二义性问题了;
4.404错误(SC_NOT_FOUND),由于其经常使用,所以HttpServletResponse类中为它提供了一个专门的方法sendError,
三、将用户重定向到浏览器相关页面的servlet
四、各种浏览器的前端
在浏览器前端根据用户的输入和选取的搜索引擎,转到相应的界面。
核心方法:
1.在向客户程序发送任何文档内容之前设置状态代码。当然从第三章,我们也可以知道,我们还要在传送文档之前设置内容的类型。
重点提示:
1.表示302常量的是SC_MOVED_TEMPORARILY,不是SC_FOUND。
警告:
1.默认情况下,IE版本5和气候的版本都忽略服务器生成的错误页面,要打开该功能。在IE中,使用【工具】,选择【Internet Options(Internet选项)】,选取【Advanced(高级)】标签,确保选择【显示友好的HTTP错误信息】
学习笔记:
从前面几章,我们可以看出,一个浏览器或其他客户程序的请求,由一个HTTP命令,0或多个请求报头(HTTP1.1中为一个或多个,因为Host必需)、一个空行和一些查询数据。
而web服务器对请求的响应,一般由一个状态行,一些响应报头,一个空行和相应的文档构成
比如:HTTP/1.1 200 OK
Content-Type :text/html
Header2:...
...
HeaderN:...
(Blank Line)
<!DOCTYPE...>
....
一:状态代码的指定
一般不需要明确指定,系统默认使用200的状态代码:
200 - 服务器成功返回网页
404 - 请求的网页不存在
503 - 服务器暂时不可用
具体可参见http://support.google.com/webmasters/bin/answer.py?hl=zh-Hans&answer=40132或者http://www.kuqin.com/web/20090913/68714.html
如果我们要设置,就要使用response.setStatus,response.sendRedirect或response.sendError。
1.设置302和404状态代码:sendRedirect和sendError,
a.状态代码302命令浏览器连接到新的位置,sendRedirect方法生成302响应以及Location报头,给出新的文档的URL,这个URL即可以是绝对URL,也可以是相对的URL。系统在将它们放入Location报头之前,自动将相对URL转换成绝对URL。使用sendRedirect等效于
response.setStatus(response.SC_MOVED_TEMPORARILY)及
response.setHeader("location",url);但使用response.sendRedirect(url)有许多优点。
b.状态代码404用于服务器没有找到文档的情况,sendError方法发送状态代码(一般为404)以及一小段简短的消息,这段消息被自动安排到HTML文档中发送给客户。也就是说不需要我们把错误信息发送给客户,这个sendError可以完成我们的任务
二、HTTP1.1状态代码。
1.302状态代码:一般认为仅当最初的请求为GET时,浏览器才应该自动执行重定向。但许多旧的浏览器在最初消息是POST的情况下,依旧错误的跟随302响应中的重定向信息。
2.303状态代码:除非初始的请求为POST,否则应该用GET来读取新的文档。也就是说浏览器只有在接受到303响应状态时才跟从POST请求的重定向信息。当然303对POST的响应不代表303状态代码只对POST的相应,它还对GET相应,这样302和303就重复了。这样我就要引入一个307来解决这个二义性的问题。
3.307状态代码规定,对于GET请求的重定向,继续进行,而对POST请求的重定向,则不再继续下去。这样使用307而不是302,就避免了和303的二义性问题了;
4.404错误(SC_NOT_FOUND),由于其经常使用,所以HttpServletResponse类中为它提供了一个专门的方法sendError,
三、将用户重定向到浏览器相关页面的servlet
String userAgent = request.getHeader("User-Agent"); if(userAgent!=null&&userAgent.indexOf("MSIE")!=-1){ response.sendRedirect("http://home.netscape.com"); }else{ response.sendRedirect("http://www.microsoft.com"); }
四、各种浏览器的前端
在浏览器前端根据用户的输入和选取的搜索引擎,转到相应的界面。
<form action = "coreservlets.SearchEngine"> Search:<input type = "text" name ="searchString"><br> <input type = "radio" name ="searchEngineName" value ="Google">Google<br> <input type ="radio" name = "searchEngineName" value ="Baidu">Baidu<br> <input type = "radio" name = "searchEngineName" value ="soso">soso<br> <input type = "submit" value ="submit"><br> </form>
String searchEngineName = request.getParameter("searchEngineName"); String searchString = request.getParameter("searchString"); String searchURL = ""; if(searchEngineName==null){ response.sendError(response.SC_NOT_FOUND,"missing search string"); }else{ if(searchEngineName.equalsIgnoreCase("Google")){ searchURL = "http://www.google.com/search?q="+searchString; }else if(searchEngineName.equalsIgnoreCase("baidu")){ searchURL ="http://www.baidu.com/s?wd="+searchString; }else if(searchEngineName.equalsIgnoreCase("soso")){ searchURL = "http://www.soso.com/q?w="+searchString; } }
发表评论
-
servlet和jsp核心编程(第2版)第十六章 简化对Java代码的访问:jsp2.0表达式语言学习笔记
2012-08-23 21:49 772第十六章:简化对Java代 ... -
servlet和jsp核心编程(第2版)第十五章servlet和JSP的集成,模型-视图-控制器构架
2012-08-23 14:59 781第十五章:servlet和JSP的集成,模型-视图-控制器构架 ... -
servlet和jsp核心编程(第2版)第十四章 JavaBean组件在JSP文档中的应用 学习笔记
2012-08-21 11:55 737第十四章 JavaBean组件在JSP文档中的应用 一、bea ... -
servlet和jsp核心编程(第2版)第十三章 在JSP页面中包含文件和applet学习笔记
2012-08-20 15:53 893第十三章 在JSP页面中包 ... -
servlet和jsp核心编程(第2版)第十二章page指令学习笔记
2012-08-19 17:00 801第十二章 控制所生成的servlet的结构:JSP page指 ... -
servlet和jsp核心编程(第2版)第十一章jsp脚本元素的调用学习笔记
2012-08-18 21:09 852第十一章 用JSP脚本元素 ... -
servlet和jsp核心编程(第2版)第十章jsp技术概述学习笔记
2012-08-18 10:37 724第十章jsp技术概述 学习笔记: 一servlet和jsp的区 ... -
servlet和jsp核心编程(第2版)第九章会话跟踪学习笔记
2012-08-17 17:30 932第九章 会话跟踪 核心 ... -
servlet和jsp核心编程(第2版)第八章cookie管理学习笔记
2012-08-08 12:27 883第八章 cookie管理 核心方法: 1.在创建cookie对 ... -
servlet和jsp核心编程(第2版)第七章服务器响应的生成:HTTP响应报头学习笔记
2012-08-06 17:45 783第七章:服务器响应的 ... -
servlet和jsp核心编程(第2版)第五章客户请求的处理:HTTP请求报头学习笔记
2012-08-02 21:36 734第五章客户请求的处理:HTTP请求报头 核心方法: 1.在使用 ... -
servlet和jsp核心编程(第2版)第四章客户请求的处理,表单数据学习笔记
2012-07-31 16:05 1264第四章学习笔记 客户请 ... -
servlet和jsp核心编程(第2版)第三章servlet基础学习笔记
2012-07-29 10:43 744第三章:servlet基础 核心方法: 1.使用HTML验证器 ...
相关推荐
《Servlet与JSP核心编程(第二版)》是一本针对Java Web开发的权威指南,主要聚焦于Servlet和JSP这两个核心技术。Servlet是Java平台上的服务器端组件,用于处理HTTP请求,而JSP(JavaServer Pages)则是一种动态网页...
《Servlet与JSP核心编程(第2卷 第2版)》这本书深入讲解了这两项技术,帮助开发者理解并掌握其核心概念、用法以及最佳实践。 1. **Servlet概述** - Servlet是Java平台上的一个接口,它定义了服务器端程序如何响应...
《Servlet与JSP核心编程第二版》这本书深入浅出地讲解了这两个技术,涵盖了从基础到高级的主题,包括但不限于: 1. **Servlet生命周期**:Servlet的创建、初始化、服务和销毁过程,以及如何通过配置`web.xml`文件或...
"Servlet与JSP核心编程第二版代码1-10章"这个压缩包包含了这两门技术的基础到进阶的示例代码,涵盖了从基本概念到实际应用的广泛内容。 在Servlet方面,章节1至10可能包括以下知识点: 1. **Servlet生命周期**:...
Servlet与JSP核心编程:综合介绍Servlet与JSP
《Servlet与JSP核心编程第二版》这本书深入浅出地介绍了这两个关键技术。以下是一些关键知识点: 1. **Servlet生命周期**:Servlet的生命周期包括加载、实例化、初始化、服务、销毁五个阶段。开发者可以通过覆盖`...
《Servlet与JSP核心编程(第2版)》这本书全面系统地介绍了Servlet和JSP的核心技术和实践方法,对于想要深入了解Java Web开发的读者来说是非常有价值的参考资料。通过学习本书,不仅可以掌握Servlet和JSP的基本概念...
在《Servlet 与 JSP 核心编程(第2版)》这本书中,作者深入浅出地介绍了这两个技术的核心概念和实践应用。以下是一些关键知识点的概述: 1. **Servlet生命周期**:Servlet在Web应用中经历初始化、服务和销毁三个...
### Servlet与JSP核心编程第二版5:关键技术与实践解析 #### 一、Servlet概述与核心技术 ##### 1.1 Servlet简介 Servlet 是 Java 平台的一种服务器端技术,用于扩展应用程序的功能。它是一个轻量级的应用程序组件...
**JSP(Java Server Pages)与Servlet...这个**[JSP&Servlet学习笔记(第2版)]**会涵盖这些主题,并可能包括示例代码、最佳实践和常见问题解答,帮助读者全面掌握JSP和Servlet的使用技巧,进一步提升Java Web开发能力。
综上所述,《Servlet与JSP核心编程(第1卷 第2版)》这本书很可能是深入探讨了Servlet与JSP的基础理论、核心技术及其实战应用的一本书籍。对于想要学习或深入理解这些技术的人来说,这本书将是非常有价值的资源。
### Servlet与JSP核心编程第二版知识点概览 #### 一、Servlet基础知识 - **Servlet概念**:Servlet是一种运行在服务器端的小程序,主要用于处理客户端请求并生成动态Web页面或数据。Servlet是Java Web开发的基础...
### Servlet与JSP核心编程第二版第一卷知识点详解 #### 一、概述 《Servlet与JSP核心编程第二版第一卷》(Core Servlets and JavaServer Pages Volume 1, 2nd Edition)是一本深入讲解Servlet与JSP技术的专业书籍...
在《Servlet与JSP核心编程(第二版)卷二》的源代码集合中,code2文件夹可能包含了各种示例应用,涵盖Servlet和JSP的多个方面,比如: 1. **Session管理**:演示如何使用HttpSession对象跟踪用户会话,存储和检索...
第6章 服务器响应的生成:http状态代码 6.1 状态代码的指定 6.2 http1.1状态代码 6.3 将用户重定向到浏览器相关页面的servlet 6.4 各种搜索引擎的一个前端 第7章 服务器响应的生成:htip响应报头 7.1 在...
这两本书《Servlet与JSP核心编程》的第2版第1卷和第2卷提供了深入理解Servlet和JSP的基础知识。书中的章节可能涵盖了Servlet和JSP的API、实战示例、最佳实践以及如何将它们整合到实际项目中的指导。书签功能方便学习...
《Servlet与JSP核心编程》由浅入深,全面而深入地介绍了servlet和jsp技术。本书重点介绍核心技术,同时对相关的内容,如web服务器的配置、安装和应用,数据库的安装和配置等都做了详细明了的介绍。本书的例子简练...
### Servlet与JSP核心编程知识点概述 #### 一、Servlet基础概念 ...以上就是《Servlet与JSP核心编程第二版》中涵盖的主要知识点概览。学习这些内容有助于开发者深入了解基于Java的技术栈构建Web应用的方法和技巧。
《Servlet与JSP核心编程》一书是学习这两个技术的优秀资源,尽管出版时间较早,但其基础概念和原理仍然适用于现代的Web开发。该书分为第1卷和第2卷,可能分别涵盖了Servlet和JSP的基础到进阶内容,包括但不限于以下...
对于希望深入学习Servlet和JSP技术的学习者来说,《Servlet与JSP核心编程第二版》是一本非常实用的参考书。本书不仅覆盖了Servlet和JSP的基础知识,还包含了大量实用的案例分析和实践指导,可以帮助读者更好地理解和...