3
我有兩個Web應用程序,但其中只有一個包含Java servlet類。我想從其他應用程序的web.xml文件中訪問該servlet類。有可能嗎?如果是的話,怎麼可能?從外部web.xml文件中訪問servlet類
我有兩個Web應用程序,但其中只有一個包含Java servlet類。我想從其他應用程序的web.xml文件中訪問該servlet類。有可能嗎?如果是的話,怎麼可能?從外部web.xml文件中訪問servlet類
你不能這樣做在web.xml
。但是,您可以創建一個新的servlet,然後將該請求重定向/轉發到其他Web應用程序的servlet。重定向很簡單,只需讓URL指向特定的servlet即可。
response.sendRedirect("/otherwebapp/theservlet");
轉發需要更多的工作。由於安全限制,這在默認情況下是不可能的。首先,您需要配置servletcontainer以在相關Web應用程序之間啓用跨上下文訪問。目前尚不清楚您使用的是哪一個,所以這裏只是一個Tomcat目標示例,以便您瞭解應該在哪個方向上查找自己的servlet容器:對於這兩個webapps,需要將<Context>
元素的crossContext
屬性設置爲true
:
<Context crossContext="true">
這樣你就可以通過ServletContext#getContext()
獲得servlet的內部其他方面:
ServletContext othercontext = getServletContext().getContext("/otherwebapp");
最後,你可以通過它轉發請求如下:
othercontext.getRequestDispatcher("/theservlet").forward(request, response);