【JavaWeb】Jsp和Servlet上传文件并在页面回显的问题

本文介绍了在JavaWeb中如何处理Jsp上传文件到服务器并回显到页面的问题。首先,需要在jsp页面中设置form表单的enctype属性为"multipart/form-data"。然后在Servlet中,通过commons-fileupload和commons-io库处理文件上传,同时解决因enctype设置导致的其他表单数据无法获取的问题,最后将图片路径存入数据库以便回显。
摘要由CSDN通过智能技术生成

文章目录

问题引入

当我们在jsp页面想要上传一个图片到本地并在另一个页面回显时,需要怎样处理?需要注意什么问题?


实现步骤

一:下载好需要的jar包
1.comons-fileupload.jar
2.commons-io.jar
二.编写jsp页面

<form action="upload" method="post" enctype="multipart/form-data">
    <input type="text" name="name" value="${name}">
    上传头像:<br><input type="file" name="photo" ><br>
    <input type="submit" value="点击上传">
</form>

注意
1.当form表单要向servlet传的数据类型为图片时,需要首先在表单中加上enctype=“multipart/form-data”,用于表单里有图片上传的情况。
2.表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作. enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。
3.这时如果表单中除了文件,还有其他类型的内容时,Servlet中用request是获取不到值的。
三.Servlet获取图片并上传到本地指定文件夹

代码(1):

@WebServlet(name="upload",urlPatterns = "/upload")
public class UploadFileServlet extends HttpServlet {
    BlogDaoImpl bd = new BlogDaoImpl();
    SmartUpload su = new SmartUpload();
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        DiskFileItemFactory factory=new DiskFileItemFactory();
        ServletFileUpload upload=new ServletFileUpload(factory);
        request.setCharacterEncoding("utf-8");
        response.setCon
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值