我在两个不同的容器(Tomcat和Jetty)上部署了一个webapp,但是他们用于提供静态内容的默认servlet有一种不同的方式来处理我想要使用的URL结构(详细信息).
因此,我希望在webapp中包含一个小servlet来提供自己的静态内容(图像,CSS等).servlet应具有以下属性:
If-Modified-Since
标题(即自定义getLastModified
方法)这样的servlet可以在某处使用吗?我能找到的最接近的是servlet书中的例子4-10.
更新:我想使用的URL结构 - 万一你想知道 - 只是:
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
所以所有请求都应该传递给主servlet,除非它们是static
路径.问题是Tomcat的默认servlet不考虑ServletPath(因此它在主文件夹中查找静态文件),而Jetty则这样(因此它在static
文件夹中查找).
我有一个在Tomcat上运行的Java Web应用程序.我想加载静态图像,这些图像将在Web UI和应用程序生成的PDF文件中显示.此外,还将通过Web UI上传添加和保存新图像.
通过将静态数据存储在Web容器中但从Web容器外部存储和加载它们来解决这个问题并不是一个问题.
我不想在此时使用像Apache这样的单独的Web服务器来提供静态数据.我也不喜欢将图像以二进制形式存储在数据库中.
我已经看到一些建议,比如将图像目录作为指向Web容器外部目录的符号链接,但这种方法是否适用于Windows和*nix环境?
有人建议编写一个过滤器或servlet来处理图像服务,但这些建议非常模糊和高级别,没有指向如何实现这一目标的更详细信息.
我需要以某种方式将Tomcat日志文件暴露给浏览器.我知道这不安全,但这就是所要求的.
我考虑过从日志位置创建一个硬链接,例如tomcat/webapps/ROOT/html/catalina.out
- > mydir/logs/catalina.out
,但我认为这不是一个好的解决方案(即使它确实有效).是否有将Tomcat日志文件公开给浏览器的既定方法?
我正在开发一个Spring-MVC应用程序,在该应用程序中,我们将缩略图保存在文件系统本身上.现在进行聊天,我想为保存在文件系统上的缩略图创建一个URL,并在前端传递它.
例如:图像保存在
/home/username/datadir/personid.png
Run Code Online (Sandbox Code Playgroud)
我想给网址类似:
domainname.com/personid.png
Run Code Online (Sandbox Code Playgroud)
请注意PersonId是唯一的,所以我可以使用该约束.保存图像的部分已完成,我只是不知道如何从File-System上保存的文件中创建图像URL.
你能帮忙的话,我会很高兴.非常感谢.. :-)