博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Servlet学习笔记02——什么是http协议?
阅读量:5748 次
发布时间:2019-06-18

本文共 1782 字,大约阅读时间需要 5 分钟。

1.http协议 (了解)

(1)什么是http协议?

是一种网络应用层协议,规定了浏览器与web服务器之间如何通信以及相应的数据包的结构。注:    a.tcp/ip: 网络层协议,可以保证数据可靠的传输。    b.http: 应用层协议,负责解释数据(接收方收到    数据之后,如何截取,如何编码解码等问题)。

1)如何通信

step1.建立连接step2.发送请求(先要打包)step3.发送响应 (先要打包)step4.关闭连接"一次请求,一次连接"。

2)优点:

web服务器可以利用有限的连接,为尽可能多的请求服务。

1425489-20180622101215038-1677925461.png

(2)数据包的结构

1)请求数据包的结构

a.请求行 (请求方式 请求资源路径 协议和版本)b.若干消息头    注:        消息头是一些键值对(使用": "隔开),        由http协议定义,表示特定的含义,比如        浏览器可以通过user-agent消息头告诉        服务器,浏览器的类型和版本。c.实体内容    注:只有当请求方式为post时,实体内容才会有    数据。

2)响应数据包的结构

a.状态行 (协议和版本 状态码 状态描述)b.若干消息头     服务器也可以发送一些消息头给浏览器,比如,    通过发送content-type消息头,告诉浏览器,    服务器返回给浏览器的数据类型。c.实体内容    程序处理的结果,浏览器会解析出来,然后生成    相应的页面。

(3)两种请求方式

1)get请求

a.哪一些情况下,浏览器会发送get请求?    a1.直接在浏览器地址栏输入某个地址    a2.表单默认提交方式    a3.点击链接b.特点    b1.会将请求参数添加到请求行里面,只能    提交少量数据(请求行只有一行,大约能存放    2k左右的数据)。    b2.会将请求参数显示在浏览器地址栏,不安全    (比如,路由器就会记录包含了请求参数的请求地址)。

2)post请求

a.哪一些情况下,浏览器会发送post请求?    设置表单的method属性值为"post"。  b.特点    b1.会将请求参数添加到实体内容里面,所以,    可以提交大量数据。    b2.不会将请求参数显示在浏览器地址栏,相对    安全(不会对请求参数加密)   。

2.Servlet输出中文,要注意什么?

(1)为什么会有乱码?

out.println方法在输出时,默认会使用"iso-8859-1"来编码。

(2)如何解决?

response.setContentType("text/html;charset=utf-8");

3.如何读取请求参数值?

(1)方式一

String request.getParameter(String paramName)注:     a. paramName(请求参数名)不能写错,否则会    返回null值。    b. 注意,表单提交时,对于文本输入框,密码    输入框,如果不填写任何数据,会获得""。

(2)方式二

String[] request.getParameterValues(String paramName);注:    a.当有多个请求参数名相同时,使用此方法。    b.注意,对于多选框,如果不选择任何选项,获得    null值。

4.表单包含有中文参数值,如何处理?

(1)为什么会有乱码?

表单提交时,浏览器会对中文参数值进行编码,服务器端默认会使用"iso-8859-1"来解码,所以,会产生乱码。注:    要看表单所在的页面打开时使用哪种字符集,表单提交时,就会使用应用的字符集来编码。

(2)如何解决?

1)post请求

request.setCharacterEncoding(String charset);注:    a.只针对post请求有效。    b.该方法一定要添加到所有的getParameter方法的    前面。    c.charset要与浏览器端的一致。

2)get请求

修改server.xml,添加    

1425489-20180622101235364-644330879.png

转载于:https://www.cnblogs.com/author-huweidong/p/9212132.html

你可能感兴趣的文章
存储过程简单实例
查看>>
大话 程序猿 眼里的 接口
查看>>
struts2用了哪几种模式
查看>>
replace函数结合正则表达式实现转化成驼峰与转化成连接字符串的方法
查看>>
ubuntu 初学常用命令
查看>>
WCF客户端与服务端通信简单入门教程
查看>>
判断是否含有中文
查看>>
Byte[]、Image、Bitmap 之间的相互转换
查看>>
前端JavaScript规范 非常详细
查看>>
SpringCloud系列:服务配置文件的进化历程(程序内置、程序外置、实时更新)...
查看>>
支付宝6轮面试经验
查看>>
配置FTP服务
查看>>
iOS转场弹窗、网易云音乐动效、圆环取色器、Loading效果等源码
查看>>
【资源分享】ArcFace Demo [Android]
查看>>
vue中$refs的用法及作用详解
查看>>
详谈分布式最终一致性
查看>>
玩转 React【第02期】:恋上 React 模板 JSX
查看>>
MyEclipse Web开发教程:XML & XML架构(一)
查看>>
linux文件权限与属性的更改
查看>>
Juniper系列之密码恢复
查看>>