Suh*_*pta 8 java servlets multipartform-data java-ee
该HTML片段发送post一个请求servlet命名的servlet.请求是类型multipart/form-data.But servlet什么都没找到,并为我尝试检索的部分的名称打印null.这是为什么 ?
<form method="post" action="servlet" enctype="multipart/form-data">
<input type="file" value="browse" name="FileShared" />
<input type="submit" value="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
import javax.servlet.http.Part;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/plain");
//String fileName = request.getPart("FileShared").getName();
// Throws a nullpointer exception if I don't comment the above statement
PrintWriter writer = response.getWriter();
//writer.println(fileName);
Collection<Part> c = request.getParts();
Iterator i = c.iterator();
while(i.hasNext()) {
writer.println("Inside while loop"); // This statement never gets printed
writer.println(i.next());
}
writer.println("outside while loop"); // Only this statement gets printed
}
Run Code Online (Sandbox Code Playgroud)
SAN*_*NN3 14
如果要使用Servlet 3.0 HttpServletRequest#getParts()方法,则必须使用注释来指定servlet @MultipartConfig.
示例:
@WebServlet(urlPatterns={"/SampleServlet"})
@MultipartConfig
public class SampleServlet extends HttpServlet {
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5211 次 |
| 最近记录: |