gpt4 book ai didi

java - 关于从 servlet 提供静态文件的问题

转载 作者:行者123 更新时间:2023-12-01 06:59:26 27 4
gpt4 key购买 nike

我对 servlet 非常陌生。我想提供一些静态文件、一些 css 和一些 javascript。这是我到目前为止所得到的:

在 web.xml 中:

<servlet>
<description></description>
<display-name>StaticServlet</display-name>
<servlet-name>StaticServlet</servlet-name>
<servlet-class>StaticServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>StaticServlet</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>

我假设在StaticServlet中我必须使用request.getPathInfo来查看请求的内容,获取mime类型,读取文件并写入它给客户。

如果这不是可行的方法,或者不是可行的做事方法,请提出更好的方法。我不太确定将 static 目录放置在哪里,因为如果我尝试打印 new File(".") 它会给我 Eclipse 安装的目录。有没有办法找到项目的目录?

最佳答案

您确实可以让 servletcontainer 的 DefaultServlet 来处理这个问题。

要回答您的实际问题,即使只是出于学习目的,您也可以使用 ServletContext#getRealPath()将相对 Web 路径转换为绝对本地磁盘文件系统。

String relativeWebPath = "/static/file.ext";
String absoluteFilePath = getServletContext().getRealPath(relativeWebPath);
File file = new File (absoluteFilePath);
// ...

关于java - 关于从 servlet 提供静态文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2930497/

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