2013-04-01 55 views
1

我正在用Java構建Google應用引擎上的網站。 還有我想如下地圖servlet映射jsp頁面:Jsp serverlet映射url-pattern/*覆蓋歡迎文件

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

更改你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> 
+0

嗨,阿維納什。現在'http:// localhost:8080'映射到'home.jsp'。 而'http:// localhost:8080/test/xy1'映射到'r.jsp'。有沒有辦法在不改變主頁映射的情況下將'http:// localhost:8080/xy1'映射到'r.jsp'。或者這是唯一的解決方案? –

+0

是的,你可以做到。替換/test/*/xy1

+0

對不起,我以錯誤的方式提出了問題,我希望所有'http:// localhost:8080/xy1'或'http: // localhost:8080/rrrxdsfwef'或'http:// localhost:8080/ewerw'映射到'r.jsp'而'http:// localhost:8080'映射到home.jsp –