Jsp servlet映射url-pattern / *会覆盖welcome-file

时间:2013-04-01 08:25:41

标签: google-app-engine jsp servlets

我正在使用Java在Google应用引擎上构建网站。 我正在尝试使用servlet映射映射jsp页面,如下所示:

http://localhost:8080/<any text>应映射到r.jsp

http://localhost:8080应映射到home.jsp

但这两个网址始终会映射到r.jsp

我的web.xml如下:

<servlet>
    <servlet-name>r</servlet-name>
    <jsp-file>/r.jsp</jsp-file>
    <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>r</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet>
    <servlet-name>home</servlet-name>
    <jsp-file>/home.jsp</jsp-file>
    <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>home</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>home.jsp</welcome-file>
</welcome-file-list>

我还尝试了<url-pattern>""</url-pattern>而不是<url-pattern>/</url-pattern>,但它也无效

这个 servlet映射解决方案

1 个答案:

答案 0 :(得分:1)

将web.xml更改为此类

<servlet>
<servlet-name>r</servlet-name>
<jsp-file>/r.jsp</jsp-file>
<load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>r</servlet-name>
<url-pattern>/ewerw</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>r</servlet-name>
<url-pattern>/rrrxdsfwef</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>r</servlet-name>
<url-pattern>/xy1</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>home</servlet-name>
<jsp-file>/home.jsp</jsp-file>
<load-on-startup>0</load-on-startup>
</servlet>

<welcome-file-list>
<welcome-file>home.jsp</welcome-file>
</welcome-file-list>