我要上传使用JSP和Servlet EJB 3.0如何上传使用JSP -servlet和EJB 3.0
2
A
回答
6
开始图像的图像,使用JSP选择要上传的文件,你至少需要一个HTML元素<input type="file">
这将显示一个文件浏览字段。如HTML forms spec中所述,您需要将请求方法设置为POST
,并且请求编码为multipart/form-data
父代<form>
元素。
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit">
</form>
由于上述请求编码是不是Servlet 3.0之前Servlet API的支持(我不认为你默认使用的是因为EJB 3.0的Java EE 5.0的一部分,又包含Servlet 2.5的只有),您在请求参数映射中不会看到任何内容。 request.getParameter("file")
将返回null
。
要检索上传的文件和servlet中的其他请求参数,您需要自己解析HttpServletRequest
的InputStream
。幸运的是,有一种常用的API可以从您的手中完成繁琐的工作:Apache Commons FileUpload。
List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
if (!item.isFormField()) {
// <input type="file">
System.out.println("Field name: " + item.getFieldName());
System.out.println("File name: " + item.getName());
System.out.println("File size: " + item.getSize());
System.out.println("File type: " + item.getContentType());
} else {
// <input type="text|submit|hidden|password|button">, <select>, <textarea>, <button>
System.out.println("Field name: " + item.getFieldName());
System.out.println("Field value: " + item.getString());
}
}
基本上你只需要从FileItem
对象获得InputStream
,并使用通常的Java IO方式,写入任何OutputStream
您的口味。
InputStream content = item.getInputStream();
另外,您也可以直接写:
item.write(new File("/uploads/filename.ext"));
在他们的网页上,你可以找到大量的代码示例和重要提示&技巧在User Guide和Frequently Asked Questions部分。仔细阅读。
相关问题
- 1. 使用jsp和servlet上传文件
- 2. Servlet 3.0 AsyncContext和EJB @RolesAllowed在JBoss
- 3. 如何使用JSP和Servlet
- 4. 如何使用JSP和servlet创建文件上传器?
- 5. 如何使用JSP和Servlet在Java中上传文件?
- 6. 使用Hibernate 3.0与EJB 3.0和JPA
- 7. Emply EJB和Servlet
- 8. 如何在Servlet和JSP中使用JUnit?
- 9. 如何使用Uplodify和Servlet/JSP
- 10. 如何进行使用的JSP和servlet
- 11. EJB 3.0和SQL
- 12. 如何使用JSTL,JPA,EJB,JSP,Servlet更新和删除JavaEE中的记录
- 13. servlet和JSP的使用
- 14. EJB 2.0 VS EJB 3.0
- 15. Servlet 3.0和资源
- 16. 连接JSP和EJB
- 17. Servlet和jsp
- 18. 在JSP/Servlet中上传文件
- 19. 管理文件上传在JSP/Servlet的
- 20. 使用java servlet 3.0文件上传,如何获取最大文件大小值
- 21. 如何将jsp中的值传递给servlet使用jstl
- 22. 如何在jsp页面中使用servlet?
- 23. HTTP servlet和jsp 404
- 24. 将EJB 3.0作为EJB和Websphere 7上的Web服务访问
- 25. 使用servlets从jsp上传文件?
- 26. EJB 3.0 TimerService redeploy
- 27. 从jsp传递java.util.Map到servlet
- 28. JSP到Servlet参数传递
- 29. 使用Servlet和JSP验证号码
- 30. JSP Interview,如何将数据从Servlet传递给JSP?
http://www.google.com/search?hl=zh-CN&q=java+file+upload+tutorial – Asaph 2010-05-13 13:34:26