关于tomcat项目在web文件夹添加新的文件夹碰到的问题(idea)

今天学习文件下载的时候在web下新建了img文件夹,里面加了几个图片文件
关于tomcat项目在web文件夹添加新的文件夹碰到的问题(idea)_第1张图片
然后写网页,写代码。。。




    
    Title


图片资源
图片资源
package com.company;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;

@WebServlet("/demo3")
public class servletContext_03 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        /*文件下载*/
        /* 设置header content-disposition:attachment;filename=xxx */
        /*获取文件名称*/
        String filename = req.getParameter("filename");
        /*字节流加载文件进内存*/
        ServletContext con1 = this.getServletContext();
        String path = con1.getRealPath("/img/"+filename);
        //System.out.println("```filename="+filename);
        //System.out.println(path);

        /*设置response响应头*/
        String mime =con1.getMimeType(filename);
        //System.out.println(mime);
        resp.setContentType(mime);
        /*设置响应头打开方式*/
        resp.setHeader("content-disposition","attachment;filename="+filename);
        /*输入流写入输出流*/
        FileInputStream in = new FileInputStream(path);
        ServletOutputStream out = resp.getOutputStream();
        byte[] buff= new byte[1024*8];
        int len=0;
        while((len = in.read(buff))!=-1){
            out.write(buff,0,len);
        }
        in.close();
    }
}

然后运行发现网页报错404,两个超链接都不能使用。
原因是idea实际处理的文件是out文件夹,编译后会生成out文件夹,
里面放置配置文件和.class文件,虽然在web文件夹中创建了img文件,但是out中的文件没有更新,仍然找不到图片

关于tomcat项目在web文件夹添加新的文件夹碰到的问题(idea)_第2张图片
解决方法 把img文件夹复制一份放在out的对应位置上面。web文件夹对应虚拟目录/test_01_war_exploded,所以直接把img放在这个文件夹就可以。

各位大哥要是有更方便的方式 比如设置之类的请在评论区留言

你可能感兴趣的:(Javaweb,java)