刷新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或类似内容将得到大量结果。