[英]How to redirect in web.xml
我正在使用GAE / J应用程序,结构如下:
- war
|
- mobile
| |
| - assets
| | |
| | + a.jpg
| | + b.gif
| | + c.js
| + a.jsp
| + b.jsp
| + index.jsp
| + d.css
| + e.css
|
+ landing.jsp
现在在web.xml中,我有/mobile
的URL映射指向<jsp-file>/mobile/index.jsp<jsp-file>
。 在index.jsp
,我使用了相对寻址来引用所有必需的资源,例如JS文件,CSS文件和图像。 如果我在浏览器中输入our_domain/mobile/index.jsp
,则此方法效果很好。 但是,当我键入our_domain/mobile
,它将提供正确的文件(index.jsp),但是每个相对地址都中断了,这意味着没有CSS,没有JS,没有图像。 从我的调查看来, web.xml
实际上并没有重定向,而是调用指定的JSP / Servlet来回答特定的URL模式。 这在相对寻址中效果不佳,因为在真正的重定向中正确的路径信息留在了根目录中。 在这种情况下,如何确保相对地址按预期工作?
[edit]我尝试了几种配置。 现在/mobile
URL可以正常工作,并且所有CSS都已加载,但/mobile/
无法加载CSS。 这是我的映射:
<servlet> <description>Landing page on mobile site</description>
<display-name>MobileIndex</display-name>
<servlet-name>MobileIndex</servlet-name>
<jsp-file>/mobile/index.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>MobileIndex</servlet-name>
<url-pattern>/mobile/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MobileIndex</servlet-name>
<url-pattern>/mobile</url-pattern>
</servlet-mapping>
我不确定重定向是您真正想要的。 一个适合您应用的组织是:
myapp/ pom.xml src/ main/ java/ ... Your Source Code ... webapp landing.jsp assets/ a.jpg b.gif c.js mobile/ index.jsp a.jsp b.jsp
当然,请使用appengine-web.xml的<public-root>
和<static-files>
元素更改资产的位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.