其他分享
首页 > 其他分享> > Servlet06.HttpServletResponse

Servlet06.HttpServletResponse

作者:互联网

Servlet06.HttpServletResponse

一、 doGet()和doPost()

Servlet处理请求可以重写的方法:

  1. service():get/post都会进入service()
  2. doGet():专门处理get请求
  3. doPost():专门处理post请求

总结:

第一种方式:只重写service()

第二种方式:重写doGet()/doPost()

二、 HttpServletResponse详解

2.1 HttpServletResponse生命周期

生:

一个请求进入tomcat时HttpServletResponse随着HttpServletRequest对象一起创建:

HttpServletResponse对象专门负责对客户端请求进行响应的:

实际开发中:有请求就一定要有响应。

 

活:

整个处理过程+响应过程(前端看到响应数据之前)

 

死:

响应完毕后:前端看到响应数据之后

一个请求也对应一个HttpServletResponse:

再次发请求,创建新的HttpServletResponse对象。

2.2 响应头

1.响应头常见属性

Connection: keep-alive

Content-Length: 54

Content-Type: text/html;charset=utf-8//请求和响应都有Content-Type

Date: Fri, 07 Jan 2022 02:01:31 GMT//响应时间

Keep-Alive: timeout=20//timeout:连接超时时间,单位是毫秒

2.如何修改响应头的值:

I. response.setContentType("content-type值"):

只能用于修改Content-Type:

Content-Type常用值:MIME:前后端进行数据交互的类型

大类型/小类型

text/html;charset=utf-8

video/avi

image/jpg

application/json;charset=utf-8

II.response.setHeader(key,新值)

2.3 响应体

响应体:后端给前端响应的数据

2.4 文件下载(后端传输图片到前端页面

1.前端页面中的url需要包含文件名:

发送文件名给后端----->根据文件名----->确定要下载的文件

2.Servlet:

I.获取要下载的文件名:

如果文件名中带有中文:使用iso-8859-1编码得到一个乱码,并把乱码字符给到前端

II. 前端接收到下载的文件名后:

III. 确定从哪复制:从tomcat应用里的某个文件复制:sourceFile:

IV.确定复制到哪

V. 进行文件复制:

三、Servlet总结

1.Servlet是什么:

JavaEE开发的一个组件:

  1. 接收客户端请求:HttpServletRequest(对应HTTP协议的请求阶段)

            本质上是tomcat接收请求-----tomcat反射创建Servlet对象-----反射调用Servlet对象的-----service()方法

  1. 对请求进行响应:HttpServletResponse(对应HTTP协议的响应阶段):

HTTP协议响应阶段:

响应头:key-value

响应体:响应数据

响应状态码:Status Code

常见的HTTP协议状态码:

200 OK(无错误)

404 未找到:一般原因为请求路径错误

500 服务器代码出错:Java代码错误

400 错误请求:请求参数有误  ajax

402/403:重定向状态码

2.Servlet核心API:

如何重写service():处理请求并响应

I.请求API:

Request.getParameter(“请求参数名”):String

Request.getParameterValues(“请求参数名”):String[]

Request.getParameterMap():Map<String,String[]>

案例:登录,注册,上传

II.响应API:
response.getWriter():PrintWriter

使用PrintWriter.print(“字符串“):向前端响应字符串

response.getOutputStream():OutputStream:

向前端响应二进制数据:文件下载

 

标签:请求,Servlet,前端,HttpServletResponse,响应,-----,Servlet06
来源: https://www.cnblogs.com/ztxcn/p/15777516.html