tomcat中的servlet映射

时间:2012-01-22 01:45:47

标签: tomcat servlets

对于模糊的标题感到抱歉,但我在web.xml中有一个带有以下映射的servlet

<servlet>
  <servlet-name>SomeServlet</servlet-name>
  <servlet-class>SomePackage.SomeServlet</servlet-class>
</servlet>  

<servlet-mapping>
    <servlet-name>SomeServlet</servlet-name>
    <url-pattern>/servlet/SomeServlet</url-pattern>
</servlet-mapping> 

在另一个文件夹中打开一个html文件并写入Response。因此,该html中的图片会尝试加载/servlet/images/someimage.png而不是/images/someimage.png

我知道html中的图像引用是相对的,因此它试图从servlet路径开始但我无法更改html页面或servlet代码。有没有为什么要从配置文件中解决这个问题?

由于

2 个答案:

答案 0 :(得分:2)

将servlet映射到/SomeServlet

或者创建一个映射到/servlet/images/*.jpg的servlet,转发到/images/Xxx.jpg,其中Xxx与通配符匹配。

您在哪种环境中工作,哪些地方无法改变?

答案 1 :(得分:0)

在你的HTML文件中使用上下文路径..

<img src ="/CONTEXT/images/someimage.png"/>

e.g

<img src ="/StackOverOverflow/images/someimage.png"/>

抱歉,我没注意到您无法更改HTML。

如何创建一个过滤掉过滤掉图像的过滤器,如果它与你的servlet路径匹配,会将调用转发给servlet?你试过这个吗?