如何使用Tomcat从Web应用程序外部的公共文件夹中提供图像文件?我不想在其他端口上使用第二个Apache文件服务器,因为图像文件是同一应用程序的一部分。而且我不想在webapps内部创建指向公共文件夹的符号链接,因为我的应用程序被部署为war文件....是否有一个更简单的解决方案,类似于将默认servlet用于webapps内部的静态内容,用于webapps外部的静态内容
您可以有一个重定向servlet。在您的web.xml中,您将拥有:
<servlet> <servlet-name>images</servlet-name> <servlet-class>com.example.images.ImageServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>images</servlet-name> <url-pattern>/images/*</url-pattern> </servlet-mapping>
您所有的图像都将位于“ / images”中,而servlet会截获该图像。然后,它将读入任何文件夹中的相关文件,并将其重新提供。例如,假设您在图像文件夹c:\ Server_Images \ smilie.gif中有一个gif。在网页中将是<imgsrc="http:/example.com/app/images/smilie.gif"...。在servlet中, HttpServletRequest.getPathInfo()将产生“ /smilie.gif”。servlet将在文件夹中找到哪个。
<imgsrc="http:/example.com/app/images/smilie.gif"...
HttpServletRequest.getPathInfo()