繁体   English   中英

如何在web.xml中重定向

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM