gpt4 book ai didi

java - 刷新 Java 项目的代码

转载 作者:行者123 更新时间:2023-12-01 04:58:25 25 4
gpt4 key购买 nike

我正在使用 Eclipse,我刚刚构建了一个 servlet,它将接收一个文件名和一个表单中的文件,并在我的 eclipse 目录中创建一个新文件,其文件名是用户提供的。因此,如果用户使用firstImage作为文件名,并从桌面上获取了一个名为stackoverflow.png的图像,那么我的servlet将在我的目录中创建一个firstImage.png文件并放入将 stackoverflow.png 的内容放入其中。

问题是假设我填写了表单并写入文件gmustudent/images/firstImage.png。如果我访问该网址 http://localhost:8086/gmustudent/images/firstImage.png那里什么也没有。但是,一旦我进入 Eclipse 中的 gmustudent 项目,右键单击它并单击 Refresh,然后 firstImage.png 就会在目录中弹出,并且该 url 现在可以使用。

这显然是一个问题,因为我不想每次使用此表单时都必须刷​​新我的项目。那么谁能告诉我如何在 servlet 的末尾添加一些代码,以便在每次运行 servlet 时刷新项目。谢谢。

最佳答案

最好的方法是使用 servlet 并流回图像。流式传输是指我们有一个 servlet 读取服务器中的文件,并在响应中将字节发送回。

public class ImageServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {

response.setContentType("image/jpeg");

String pathToWeb = getServletContext().getRealPath(File.separator);
File f = new File(pathToWeb + "avajavalogo.jpg");
BufferedImage bi = ImageIO.read(f);
OutputStream out = response.getOutputStream();
ImageIO.write(bi, "jpg", out);
out.close();

}

}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="tomcat-demo" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<servlet>
<servlet-name>ImageServlet</servlet-name>
<servlet-class>test.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ImageServlet</servlet-name>
<url-pattern>/image</url-pattern>
</servlet-mapping>

</web-app>

您的网址链接不起作用的原因是您可能没有在 web.xml 文件中映射目录。最佳实践是使用像上面这样的单独的 servlet 来流回图像。引用这个question也是如此。

关于java - 刷新 Java 项目的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13735081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com