Bru*_*des 1 java servlets file-upload apache-commons
我的问题是我在 .html 页面中有一个表单,它激活了一个名为 CodeSubmission 的 servlet。起初,我使用 3.0 API 实现(仅使用@WebServlet("/CodeSubmission")
),但是每当 servlet 被激活时,请求就没有任何参数。所以我决定尝试一下,在一个全新的项目中使用 2.5 API(通过手动将 servlet 添加到 web.xml 文件),但同样,每当调用 servlet 时,请求都没有任何参数。
我还认为这是因为文件上传字段,但即使删除它后,选择字段也不会作为请求参数出现。
这是html表单代码:
<form action="CodeSubmission" method="POST" enctype="multipart/form-data">
<label for="compiler">Compilador:</label>
<select id="compiler">
<option value="c">C</option>
<option value="c++">C++</option>
<option value="scala7">Scala 2.7.7</option>
<option value="scala8">Scala 2.8.1</option>
<option value="java5">Java 1.5</option>
<option value="java6">Java 1.6</option>
</select>
<br />
<label for="code">Arquivo:</label>
<input id="code" type="file" size=80 />
<br />
<input type="submit" value="Enviar" />
</form>
Run Code Online (Sandbox Code Playgroud)
这是检查参数的测试代码:
System.out.println("Length: "+request.getContentLength());
System.out.println("Content Type: "+request.getContentType());
System.out.println("Method: "+request.getMethod());
Enumeration<String> attributeNames = request.getAttributeNames();
System.out.println("Request Attributes");
while (attributeNames.hasMoreElements()) {
String name = attributeNames.nextElement();
System.out.println(name + ": " + request.getAttribute(name));
}
Enumeration<String> paramNames = request.getParameterNames();
System.out.println("Request Parameters");
while (paramNames.hasMoreElements()) {
String name = paramNames.nextElement();
System.out.println(name + ": " + request.getParameter(name));
}
Run Code Online (Sandbox Code Playgroud)
request.getParameterNames() 枚举的大小始终为 0。这是使用 Servlet 2.5 加载文件并选择一个选项后单击“Enviar”按钮时控制台中打印的内容:
Length: 44
Content Type: multipart/form-data; boundary=----WebKitFormBoundary4E3NYbsqXZZMWwcl
Method: POST
Request Attributes
Request Parameters
Run Code Online (Sandbox Code Playgroud)
multipart/form-data
有不同的参数编码方案。对于 servelt 2.5,您应该使用 commons-fileupload。使用 servlet 3.0,您仍然可以使用它,或者使用request.getPart(..)
. 您还应该使用@MultiPartConfig
归档时间: |
|
查看次数: |
2216 次 |
最近记录: |