代码拉取完成,页面将自动刷新
V1版本:
在此版本我写出了HttpServletRequest的相关解析工作,具体流程如下:
服务器循环接收accept,接收到一个后便开启一个线程,handler,handler里边完成对请求的全部解析
首先明确请求发送过来是包含三部分的:请求行,消息头,请求正文,我们的HttpServletRequest就是要对其进行分析,
将对应的信息提取出来存起来,便于后续处理
其中,请求头有三部分组成,请求方法 uri 协议,我们在方法中定义三个变量,分别用于存放这三个值,
再然后,当使用get方法请求时,uri中会有参数部分,我们需要对uri进一步处理,将参数部分的每一组值存入Map里,供后续使用
再有就是正文,当 请求使用POST方法发起时,参数部分是位于请求正文的,因此我们每次解析请求的时候也需要解析正文,判断有无正文存在就是
看消息头中有无“Content-Length”这个Key,有就可以进行后续处理,注意参数部分的解析抽成方法,可以对位于uri和正文的消息都具有很好的适配性
本次的技术细节主要有,HTTP协议在传输过程中使用的字符集是OSI 8859-1,是不支持中文的,当接收穿过来的信息时有两种:
一种是位于uri的,另一种是位于正文的,
位于uri的参数穿过来本身就是解析好的OSI 8859 -1编码,可以直接解析参数,注意在转换参数时先按UTF-8解码(这是抽出的的方法应具有的一段代码)
对于正文中的参数,我们是以字节的形式读取的(此时数据是010101...),
首先要按OIS 8859-1转码为欧洲字符集(汉字的表达是%E6%9D%8E%E9%91%AB%E6%B3%A2)
之后在进行参数解码(方法中第一步就是再按UTF-8)解码
解码完毕后同一装入Map等待后续处理
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。