web基础----->servlet中得到请求的数据
对tomcat的源码做一些分析,今天我们就开始servlet中的请求分析。
form表单中的默认类型
一、在index.jsp中get请求:
<form action="ParameterServlet" method="get">
username: <input type="text" name="username"/><br>
password: <input type="password" name="password"/><br>
file:<input type="file" name="file"><br>
<input type="submit" value="submit">
</form>
二、在ParameterServlet中的doGet方法中:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletInputStream inputStream = request.getInputStream();
System.out.println("queryUrl: " + request.getMethod() + ", data: " + request.getQueryString());
System.out.println("--------------------------------------------------------------------------");
int len;
while((len = inputStream.read()) != -1) {
System.out.print((char)len);
}
inputStream.close();
} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
get请求的结果:
queryUrl: GET, data: username=huhx&password=&file=efdjoue.png
--------------------------------------------------------------------------
post请求结果:
queryUrl: POST, data: null
--------------------------------------------------------------------------
username=huhx&password=&file=test.png
三、get和post请求的一些总结
getQueryString方法得到的url中的请求参数部分,而request.getInputStream读取的是请求体的内容。对于get请求来说,从请求流中读取的数据是为空的。
form表单中的multipart类型
修改form表单的enctype为:multipart/form-data
一、index.jsp如下:
<form action="ParameterServlet" method="get" enctype="multipart/form-data">
username: <input type="text" name="username"/><br>
password: <input type="password" name="password"/><br>
file:<input type="file" name="file"><br>
<input type="submit" value="submit">
</form>
get请求的结果和浏览器的地址url:
aaarticlea/png;base64,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" alt="" />
queryUrl: GET, data: username=Linux&password=password&file=efdjoue.png
--------------------------------------------------------------------------
post请求的结果:
queryUrl: POST, data: null
--------------------------------------------------------------------------
-----------------------------
Content-Disposition: form-data; name="username" huhx
-----------------------------
Content-Disposition: form-data; name="password" -----------------------------
Content-Disposition: form-data; name="file"; filename="efdjoue.png"
Content-Type: image/png PNG
....后面是图片的乱码信息,这里省略....
二、在设置了multipart/form-data之后的请求中
- get请求可以使用request.getParameter("username")得到对应的值
- post请求使用request.getParameter("username")得到的是null,getParameter("file")也是null。
友情链接
web基础----->servlet中得到请求的数据的更多相关文章
- Java Web之Servlet中response、request乱码问题解决
Java Web之Servlet中response.request乱码问题解决 一.request请求参数出现的乱码问题 get请求: get请求的参数是在url后面提交过来的,也就是在请求行中, ...
- jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法
jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...
- Java Web基础 --- Servlet 综述(理论篇)
摘要: Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.本文首先从请求/响应架构应用的大背景谈起 Servlet 的由来,明确 Ser ...
- 【Java框架型项目从入门到装逼】第五节 - 在Servlet中接收和返回数据
在上一节的程序中,我们可以看到HttpServletRequest, HttpServletResponse这两个对象.可以说,这是JavaWeb中至关重要的两个对象.接下来,我们来做一个简短的说明: ...
- Servlet中接收和返回数据
public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest re ...
- Servlet中的请求包含
public class SrcIncludeServlet extends HttpServlet { public void doGet(HttpServletRequest request, H ...
- Servlet中的请求转发RequestDispatcher接口的forword与Include的区别
RequestDispatcher接口中具有两个方法: forward() 与 include() 均 可完成请求 的转发.区别如下: forword(): 使用该方法,则当前 的 Servlet 中 ...
- 关于Node.js中HTTP请求返回数据需要JSON解析的问题
在编写项目过程中,需要用到实时数据的推送需求, 所以首先想到了NodeJS的websocket模块 在网上找了一个聊天室的例子 然后将其改为自己需求的推送 其中遇到的问题 返回数据问题 : 由 ...
- springMVC中接收请求参数&&数据转发
### 1. 接收请求参数 #### 1.1. [不推荐] 通过HttpServletRequest获取请求参数 假设存在: <form action="handle_login.do ...
随机推荐
- contiki list 链表
1 相关宏和数据结构 1.1 LIST_CONCAT #define LIST_CONCAT2(s1, s2) s1##s2 #define LIST_CONCAT(s1, s2) LIST_CONC ...
- linux中断编程
本文档只介绍中断编程所需的函数及应用,中断完整处理流程应参考文档<linux中断处理流程>,可参考文档<linux内核对中断的处理方式>对中断初步了解. 本文档基于3.14内核 ...
- Hive shell 命令
Hive shell 命令. 连接 hive shell 直接输入 hive 1.显示表 hive> show tables; OK test Time taken: 0.17 seconds, ...
- _STORAGE_WRITE_ERROR_
:( _STORAGE_WRITE_ERROR_:./Application/Runtime/Cache/User/788524be80db1959c132efbce25367a0.php 错误位置 ...
- mvn 仓库地址修改
默认仓库的存储位置 Maven缺省的本地仓库路径为${user.home}/.m2/repository具体如下图 自定义修改仓库的存储位置: 可改变默认的 .m2 目录下的默认本地存储库文件夹通过修 ...
- json格式在ruby和rails中的注意事项
#虚拟网络拓扑的json数据 def topodata #@vnic = Vnic.all #flash.now[:notice] = 'Message sent!' #flash.now[:aler ...
- VS2013环境生成和调用DLL动态链接库
http://blog.csdn.net/u010273652/article/details/25514577 创建动态库方法: 创建动态库是生成 .dll .lib 两个个文件 文件 -> ...
- 关于IOC和DI的理解
IOC:Inversion of Control 控制反转 DI:Dependency Injection 依赖注入 控制反转,从字面意思来看,就是控制权又被动变主动,最后又变回被动. 举个例子: 你 ...
- C++ GDI+调用
封装了一个GDI+的使用类 GdiPluss.h #pragma once #include <comdef.h> #include <gdiplus.h> using nam ...
- 在DHTML中把整个文档的各个元素作为对象处理的技术是:()
在DHTML中把整个文档的各个元素作为对象处理的技术是:() A.HTML B.CSS C.DOM D.Script(脚本语言) 解答:C DOM:文档对象模型