刷新Java项目的代码

刷新Java项目的代码,java,Java,我正在使用Eclipse,我刚刚构建了一个servlet,它将接收一个文件名和一个表单中的文件,并使用用户提供的文件名在我的Eclipse目录中创建一个新文件。因此,如果用户使用firstImage作为文件名,并从他们的桌面上获得一个名为stackoverflow.png的图像,那么我的servlet将在我的目录中创建一个firstImage.png文件,并将stackoverflow.png的内容放入其中 问题是,假设我填写表单并写入文件gmustudent/images/firstImage

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

问题是,假设我填写表单并写入文件
gmustudent/images/firstImage.png
。如果我去那个网址,什么都不会出现。但是,一旦我在eclipse中转到gmustudent项目,右键单击它并单击
Refresh
,然后在目录中弹出
firstImage.png
,url现在就可以工作了


这显然是一个问题b/c我不想每次使用此表单时都刷新我的项目。那么,有人能告诉我如何在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>

ImageServlet
test.ImageServlet
ImageServlet
/形象

web url链接不起作用的原因是您可能没有映射
web.xml
文件中的目录。最佳实践是使用一个单独的servlet(如上面所述)来流回图像。也请参考此项。

如果您的项目没有部署在与Eclipse项目相同的机器上(我希望不是),您是否希望此项工作正常?没有一种方法可以在Servlet中调用以刷新Eclipse项目。为什么不创建一个Servlet来流式处理图像?不完全属于web应用的工件应该位于web应用之外。可以通过多种方式配置位置。如前所述,使用servlet流回图像。@DaveNewton流回图像意味着什么?@gmustudent通过响应将图像的字节写回客户端。在web上搜索图像servlet或类似内容将得到大量结果。