2013-03-31 23 views
1

我有一個jsp頁面(帶有相應的servlet),無論指定哪個路徑,都需要打開它。例如我的jsp是webapps/test/index.jsp 它應該以http:// localhost/[path]打開,其中路徑是一個任意字符串。當路徑是動態的時候打開一個jsp頁面

eglocalhost/xxxx和localhost/yyyy應打開相同的webapps/test/index.jsp。

我正在使用Tomcat 7.0和Servlet 3.0。

這可以通過tomcat或servlet配置實現嗎?有什麼選擇可以做到這一點?

在此先感謝。

回答

3

您可以通過註冊一個新的servlet映射/*到JSP頁面的web.xml

(...) 

<servlet> 
    <servlet-name>index-view</servlet-name> 
    <jsp-file>/test/index.jsp</jsp-file> 
</servlet> 

<servlet-mapping> 
    <servlet-name>index-view</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

(...) 

Oracle的網頁更多信息:(LINK)

+0

謝謝。有用。 – 2late

1

您可以創建一個ServletFilter中,並在過濾器中使用的requestDispatcher.forward方法將請求轉發到目標頁面。您可以使用

String url = ((HttpServletRequest) request).getRequestURL().toString(); 

獲得請求的URL轉發使用

request.getServletContext().getRequestDispatcher(newUrl) 
        .forward(request, response); 
0

我認爲你應該檢查你的項目的config文件的要求,確保servlet的映射是正確的和獨特的網站.xml。