| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 第三次作业:请求和响应 -> 正文阅读 |
|
[系统运维]第三次作业:请求和响应 |
常见状态码的说明: ? ? ? ? (1)200:表示服务器成功处理了客户端的请求。客户端请求成功,响应消息正常返回请求结果。 ? ? ? ? (2)302:表示请求的资源临时从不同的URL响应请求,但请求者应继续使用原有位置来进行以后的请求。 ? ? ? ? (3)304:如果客户端有缓存的文档,它会在发送的请求消息中附加一个if-Modified-Since请求头,表示只有请求的文档在if-Modified-Since指定的时间之后发生过更改,服务器才需要返回新文档。(状态304表示客户端缓存的文档版本是最新的,客户端应该继续使用,否则,服务起将使用状态码200返回请求的文档。) ? ? ? ? (4)404:表示服务器找不到客户端请求的资源。 ? ? ? ? (5)500:表示服务器发生了错误,无法处理客户端的请求。(一般情况下,服务器会在相应的位置显示具体错误信息。) 一、HttpServletResponse对象: ? ? ? ? 在HttpServletResponse接口中定义了客户端发送响应状态码、响应头消息、响应消息体的方法。 ? ?1.发送状态码相关的方法: ? ? ? ? (1)setStatus(int status)方法: ????????????????只要通过Status(int status)方法设置了状态码,即可实现状态行的发送。 ? ? ? ? (2)senError(int sc) 方法: ? ? ? ? ? ? ? ? public void sendError(int code) throws java.io.IOException ? ? ? ? ? ? ? ? public void sendError(int code,String message) throws java.io.IOException ? ? ? 2.发送响应消息体相关的方法: ? ? ? ? (1)getOutputStream()方法:可以输出字节数组中的二进制数据。因此,想要输出二进制格 ?????????????????式的响应正文,就可以使用该方法。 示例如下图: 二、解决中文乱码问题: ? ? ? ? 1.第一种方式:将response.setCharacterEncoding("utf-8");写在doget方法的第一行。但这种方式会因为浏览器解码错误导致显示的文字和我们想显示的文字不同,不建议使用。示例如下图: ? ? ? ? ? ?2.第二种方式:将response.setHeader("Content-Type", "text/html;charset=utf-8");写在doget方法的第一行。使用这种方式就可以完美解决第一种方式的问题。示例如下: ? ? ? ? ?3.第三种方式:将response.setContentType("text/html;charset=utf-8");写在doget方法的第一行。示例如下: ? ? ? ? ?4.实现网页定时刷新并转跳: ? ? ? ? ? ? ? ? (1)编写代码实现定时刷新并转跳功能,代码如下:? ? ? ? ? ? ? ? ? 3秒后网页刷新并转跳至之前编写的chapter2/Chinese页面。 ? ? ? ? ? ? ? ? ?(2)在某些特殊情况下我们不仅需要定时刷新网页,还需要获得当前刷新的时间,实现如下: ?三、实现请求重定向功能: ? ? ? ? 1.请求重定向功能常常应用在各账号登录界面,实现如下: 在chapter2/login.html页面中输入我们设置的账号密码。 在验证账号密码无误后再将网页重定向到?chapter2/welcome.html页面,表示登录成功。 ?四、HttpServletRequest对象: ? ? ? ? 1.获取请求行信息的方法: ???????????????新建RequesLinetServlet类,将所有的获取请求行信息的方法编写在该类,示例如下: ? ? ? ? 2.获取请求消息头的相关方法: ? ? ? ? ? ? ? ? 新建RequestHeadersServlet类,将所有的获取请求消息头的方法编写在该类,示例如下: ? ? ? ? ?3.利用Referer请求头防止“盗链”,实现如下: ?五、HttpServletRequest应用: ? ? ? ? 1.获取请求参数,示例如下: 简单编写提交参数的页面,代码如上图 ?输入了账号密码勾选爱好点击get提交按钮。 ?提交后控制台获得参数并输出显示。 六、RequestDispatcher对象的应用: ? ? ? ? 1.RequestDispatcher接口:当web资源收到客户端请求后,如果希望服务器通知另一个资源去处理时,除了使用之前所说的sendRedirect()方法实现重定向外,还可以通过RequestDispatcher接口的实例来实现。 ? ? ? ? 2.请求转发:使用RequestDispatcher接口来实现请求转发,示例如下: ? ? ? ? ? 3.请求包含,示例如下: ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/24 11:29:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |