黑马程序员技术交流社区

标题: 【上海校区】Request&Response总结 [打印本页]

作者: 偷树的光头强    时间: 2018-10-11 15:53
标题: 【上海校区】Request&Response总结

一:HTTP协议总结
    1. HTTP:超文本传输协议,定义了浏览器与服务器之间数据传输的格式;
    2. HTTP协议组成:
        1. 请求报文:请求行,请求头,请求体;
             1. 请求行:请求报文中的第一行数据,包括**请求方式**,**URL** ,**协议/版本** ;
             2. 请求头:以键值对的数据格式,给服务器传输数据。常用的请求头:user-agent,cookie;
             3. 请求体:get请求:没有请求体;post请求:请求体传递请求参数;
        2. 响应报文:响应行,响应头,响应体;

二:GET和POST请求的区别
GET请求:
            请求行直接传递请求参数
            将请求参数追加在URL后面,不安全。例如:form.html?username=jack&username=1234
            URL长度限制GET请求方式的数据大小,不可以传输数据量较大或者非文本数据
            请求体里面没有内容
    POST请求
            请求参数以请求体形式发送给服务器,数据传输安全
            请求数据可以为非文本数据,可以传输数据量较大的数据
            只有表单设置为method=”post”才是post请求.其他的都是get请求
            常见GET请求:地址栏直接访问、<a href=””>、<img src=””> 等

三:Request请求
1.获取请求行信息

2.获取请求头信息

3.获取请求体信息(*****)

4.Request的域对象

5.请求转发

6.常见的状态码

四:Response响应
1.响应头
location
指定响应的路径,需要与状态码302配合使用,完成跳转。
content-Type
响应正文的类型(MIME类型)例如:text/html;charset=UTF-8
content-disposition
通过浏览器以附件形式解析正文,例如:attachment;filename=xx.zip
refresh
页面刷新,例如:3;url=www.itcast.cn    //三秒刷新页面到www.itcast.cn

2.重定向
方法
说明

response.setStatus(302); response.setHeader("location", "/otherServlet");通过设置响应状态码和响应头实现重定向
response.sendRedirect("/otherServlet");重定向的简写方式
3.转发和重定向的区别



区别点
转发
重定向

实现原理服务器内部浏览器执行
请求次数一次两次
浏览器地址栏地址不变化变为第二次请求的地址
能否共享request域能够共享不能共享
作用共享request域对象完成跳转
4.响应体
方法
说明

ServletOutputStream  getOutputStream()用于向浏览器输出二进制数据。【字节流--文件下载】
java.io.PrintWriter getWriter()用于向浏览器输出字符数据。【字符流--给浏览器响应数据】
五:解决乱码
1.Request乱码
request.setCharacterEncoding("UTF-8");
2.Response乱码
response.setContentType("text/html;charset=utf-8");
3.ServletContext对象





作者: 不二晨    时间: 2018-10-15 15:46
奈斯
作者: 魔都黑马少年梦    时间: 2018-10-25 14:47





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2