对于模糊的标题感到抱歉,但我在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代码。有没有为什么要从配置文件中解决这个问题?
由于
答案 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?你试过这个吗?