漫游 javax.servlet 请求参数解析(jetty 实现)
2017-12-27 21:32
190 查看
1. jetty javax.servlet.http.HttpServletRequest 的实现:org.mortbay.jetty.Request。
2. server接收请求后,会给每个HttpConnection创建Request实例。请求参数的解析实现由实例完成。
3. request.getParameter实现,被动触发参数解析
4.
参数解析实现:org.mortbay.jetty.Request#extractParameters
请求url中涉及到的参数,称之为baseParameters,简单理解为GET请求参数处理
如果POST或者PUT请求,表单(MimeType = application/x-www-form-urlencoded)提交的参数,则解析inputStream
请求的参数处理全部涉及到decode的过程,默认字符集ISO-8859-1
如果需要修改字符集,调用setCharacterEncoding
5. 对于(表单提交)POST请求,根据charset不同,具体的解析算法也不相同,非常巧妙,可以细读。
参考:org.mortbay.util.UrlEncoded#decodeTo。
如下:遇到&符号,buffer赋值给value,buffer重置循环利用,将上一步的key、value存储。
附:针对提交参数的特殊符号,详解参考:url特殊符号
2. server接收请求后,会给每个HttpConnection创建Request实例。请求参数的解析实现由实例完成。
3. request.getParameter实现,被动触发参数解析
4.
参数解析实现:org.mortbay.jetty.Request#extractParameters
请求url中涉及到的参数,称之为baseParameters,简单理解为GET请求参数处理
如果POST或者PUT请求,表单(MimeType = application/x-www-form-urlencoded)提交的参数,则解析inputStream
请求的参数处理全部涉及到decode的过程,默认字符集ISO-8859-1
如果需要修改字符集,调用setCharacterEncoding
5. 对于(表单提交)POST请求,根据charset不同,具体的解析算法也不相同,非常巧妙,可以细读。
参考:org.mortbay.util.UrlEncoded#decodeTo。
如下:遇到&符号,buffer赋值给value,buffer重置循环利用,将上一步的key、value存储。
附:针对提交参数的特殊符号,详解参考:url特殊符号
相关文章推荐
- web服务器(jetty)处理请求出现NoSuchMethodError: javax.servlet.http.HttpServletResponse.getStatus()I
- Tomcat如何解析URL的请求参数(追踪HttpServletRequest对于请求参数的解析过程)
- 漫游 servlet请求参数 %urldecode
- jetty的servlet请求路由与ContextHandlerColleection的实现
- Netty实现java多线程Post请求解析(Map参数类型)—SKY
- spring mvc自定义过滤器filter实现对请求参数编解码的代码
- 前端攻城狮学习笔记三:实现一个URI解析方法,把url里#之后的参数解析成指定的数据结构。
- 利用java类的反射机制,实现了 映射 获得post(get)的参数 的BaseServlet
- Android通用网络请求解析框架.3(代码实现,公共部分)
- AJAX 通用与服务器段交互代码范例 客户端未传入参数-----请求servlet
- JQuey ajax请求servlet实现异步刷新的实例
- Ajax请求Servlet返回文本 json html和XML数据并解析xml及responseText和responseXML的区别
- Spring3.1.0实现原理分析(十七).MVC请求处理方法参数解析器和返回值解析器
- 在Servlet应用中用XML实现数据包装和用XSLT解析数据
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- 请求参数解析和乱码
- Netty4 HTTP请求参数解析(GET, POST)
- HTTP请求响应头信息|用Servlet如何实现验证码
- HttpServletResponse.sendRedirect方法实现的请求重定向与RequestDispatcher.forward方法实现的请求转发的总结比较
- Java使用Jetty实现嵌入式Web服务器及Servlet容器