在一個網站我有一個導航欄這樣隱藏servlet名稱的URL
<li><a href="?page=pagename">PAGE</a></li>
一些鏈接,我在JSP頁面與JAVA加載鏈接的頁面,然後我通過GET通過表單提交的數據,這是我的網址後成爲
www.sitename.com/Servlet
那麼我不能夠通過
?page=pagename
,因爲我在URL中的Servlet的名字來加載頁面。
如何隱藏或刪除servlet名稱?
在一個網站我有一個導航欄這樣隱藏servlet名稱的URL
<li><a href="?page=pagename">PAGE</a></li>
一些鏈接,我在JSP頁面與JAVA加載鏈接的頁面,然後我通過GET通過表單提交的數據,這是我的網址後成爲
www.sitename.com/Servlet
那麼我不能夠通過
?page=pagename
,因爲我在URL中的Servlet的名字來加載頁面。
如何隱藏或刪除servlet名稱?
使用servlet-mapping
在web.xml
:
<servlet-mapping>
<servlet-name>Servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
它更容易,如果所有這些JSP是在一個共同的路徑。例如。 /應用/ *。
<servlet>
<servlet-name>app</servlet-name>
<servlet-class>com.example.FriendlyURLServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
與
request.getRequestDispatcher("/WEB-INF" + request.getPathInfo() + ".jsp").forward(request, response);
這是假設的JSP是在/ WEB-INF文件夾,使他們不能直接要求。這將在http://example.com/app/search上顯示/WEB-INF/search.jsp
。
如果你可以提供更多的代碼來理解 – Arjit
@Arjit,那麼這裏就不會有相關的代碼顯示在這裏。 –