2011-09-02 102 views
0

我想一個地圖,用來指向一個JSP直接到一個servlet的URL,但我的努力到目前爲止 - 映射以下URL模式來我的servlet ...如何將結束.jsp的url模式映射到servlet?

<url-pattern>/folder/myoldjsp.jsp</url-pattern>

失敗,導致JSP處理錯誤返回給客戶端。如何將結束.jsp的URL映射到我的servlet?

+0

你應該發佈你的web.xml文件的其餘部分以提供更多的上下文。你的servlet是否被調用?你正在使用哪個servlet引擎? – Knubo

回答

2

如果你的servlet沒有將請求轉發給JSP,那麼它應該可以正常工作。這將導致無限調度循環,因爲servlet本身會在RequestDispatcher#forward()調用中再次執行。

如果重命名目標JSP文件是不是出於某種原因的選項,那麼你最好的選擇是地圖上像/foo不同的URL模式的servlet和創建filter映射/folder/*(或任何請求的URL匹配(S )最接近),然後確定HttpServletRequest#getRequestURI()是否以/myoldjsp.jsp結尾,然後將請求轉發給servlet。

E.g.

if (((HttpServletRequest) request).getRequestURI().endsWith("/myoldjsp.jsp")) { 
    request.getRequestDispatcher("/foo").forward(request, response); 
} else { 
    chain.doFilter(request, response); 
} 

過濾器默認情況下不會在轉發的請求上被調用。如有必要,可以將JSP文件名稱配置爲過濾器<init-param>

+0

謝謝。你是男人:) – dantuch