gpt4 book ai didi

java - 如何通过 Servlet 获取文件,避免不必要的 GET?

转载 作者:行者123 更新时间:2023-11-28 22:20:58 25 4
gpt4 key购买 nike

我的 Web 应用程序中有一些文件位于 WAR 文件的一个简单文件夹中。请求速度非常快:浏览器缓存文件后,直到文件发生变化后才再次请求文件内容。

现在我将文件放在不同的位置,并实现了一个 servlet 来传送文件。代码简单,但性能下降。这是最小的例子:

网络.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app 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/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">

<servlet>
<servlet-name>File</servlet-name>
<servlet-class>test.FileServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>File</servlet-name>
<url-pattern>/file/*</url-pattern>
</servlet-mapping>
</web-app>

文件服务小程序

public class FileServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
FileSystem fs = FileSystems.getDefault();
Path path = fs.getPath("/some/folder/", req.getPathInfo());
Files.copy(path, resp.getOutputStream());
}
}

我如何改进它,以便获得与 tomcat 的 DefaultServlet 等性能相同的性能?

最佳答案

“Last-modified” header 很有用,请查看此处的“客户端缓存”部分:

http://www.onjava.com/pub/a/onjava/excerpt/jebp_3/index2.html

关于java - 如何通过 Servlet 获取文件,避免不必要的 GET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19789947/

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