JavaWeb-response详解

首先上图
在这里插入图片描述
在对继承关系有了一个概念之后,我们进入正题:
response是由服务器创建的,在处理request并进行一系列处理过后,将处理后的信息封装为response对象,最后通过http协议返回给客户端
与我们学习request类似,我们先打印这个对象信息:
在这里插入图片描述
与request类似,也是有tomcat内部实现,具体分析参考我另一篇文章:
https://blog.csdn.net/Alphr/article/details/104593902

Response工作流程

在这里插入图片描述

Response响应数据

如图:
在这里插入图片描述
http协议相应数据格式:
1.响应行:

http协议版本 状态码 状态码描述
HTTP/1.1 200 OK

2.响应头:

  • Content-Type: text/html
  • Content-Length: 137
  • Date: Sun, 01 Mar 2020 10:19:50 GMT

3.响应空行
4.响应体

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
Hello
</body>
</html>

1.状态码

响应状态码:服务器告诉客户端(浏览器)本次请求和响应的一个状态

  • 状态码都是3位数字
  • 分类:
    • 1xx:服务器接收客户端消息,但没有接收完成,等待一段时间以后,发送1xxx状态码
    • 2xx:成功,代表:200
    • 3xx:重定向,代表:302(重定向)304(访问缓存)
    • 4xx:客户端错误,代表404(请求路径中没有响应的资源)405(请求方式与处理方法没有对应)
    • 5xx:服务端错误,代表500(服务器内部错误)

2.重定向

在这里插入图片描述
代码实现:

//方式一
resp.setStatus(302);
resp.setHeader("location","/TestResponse/Demo2");
//方式2
resp.sendRedirect("/TestResponse/Demo2");

重定向特点(redirect):

  • 地址栏发生变化
  • 可以访问当前服务器外的资源
  • 两次request请求,不能用request对象来共享数据

路径写法:
1.相对路径:通过相对路径不可以确定唯一资源
如./index.html
2.绝对路径:通过绝对路径可以确定唯一资源
如http://localhost/TestResponse/Demo2
或省略写法/TestResponse/Demo2

路径 确定资源 写法 规则
相对路径 通过相对路径不可以确定唯一资源 ./index.html,不以/开头 找到当前资源与目标资源之间的相对位置关系
绝对路径 通过绝对路径可以确定唯一资源 如http://localhost/TestResponse/Demo2或省略写法/TestResponse/Demo2 判断定义的路径是给谁用的,判断请求从哪里出发,给客户端使用:需要加虚拟目录(项目访问路径),给服务器使用:不加虚拟目录

建议动态获取虚拟目录
String path = request.getContextPath() ;response.sendRedirect(path+"/Demo2")
请求转发使用相对路径,重定向使用绝对路径

3.设置响应消息

  • 设置状态码:setStatus(int sc)
  • 设置响应头:setHeader(String name,String value)
  • 设置响应体:
    • 1
      • 获取输出流:PrintWriter getWriter()
      • 字节输出流:ServletOutputstream getOutputstream()
    • 2.使用输出流,将数据输出到客户端
发布了37 篇原创文章 · 获赞 11 · 访问量 3903

猜你喜欢

转载自blog.csdn.net/Alphr/article/details/104597097
今日推荐