Java_web專案,URL請求地址中專案名設定為自定義變數
阿新 • • 發佈:2019-02-19
Java Web專案中,向後臺請求時需要用到URL地址,一般我們是這樣實現的。例如:
url:'/springmybatis/login/login',
springmybatis:是專案名
這樣寫可以滿足我們的要求,但是這樣寫的話,是不是感覺有點繁瑣,而且看著也不好看。所以我們可以把獲取的專案名稱放入到一個屬性鍵值對中。
例如:
url:contextPath+'/login/login',//或者
url:'${Azzan}/login/login',
這樣看上去更正規些。
實現程式碼:
package com.common;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class AzzanApplicationConfigureFilter implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void contextInitialized(ServletContextEvent contextEvent) {
ServletContext servletContext = contextEvent.getServletContext();
servletContext.setAttribute("Azzan",servletContext.getContextPath());
}
}
首先建立一個類名為AzzanApplicationConfigureFilter的類並實現介面ServletContextListener。在AzzanApplicationConfigureFilter類中重寫ServletContextListener中的方法。ServletContextListener中有兩種方法:
1、contextInitialized(ServletContextEvent contextEvent) :當Servlet 容器啟動Web 應用時呼叫該方法。在呼叫完該方法之後,容器再對Filter 初始化,並且對那些在Web 應用啟動時就需要被初始化的Servlet 進行初始化。
2、contextDestroyed(ServletContextEvent contextEvent) :當Servlet 容器終止Web 應用時呼叫該方法。在呼叫該方法之前,容器會先銷燬所有的Servlet 和Filter 過濾器。
在這兩種方法中,我們要在contextInitialized(ServletContextEvent contextEvent) 寫入我們的核心程式碼。
寫完這個類,我們在web.xml檔案中,<listener>元素用於向容器註冊監聽器。
實現程式碼:
<listener> <listener-class>com.common.AzzanApplicationConfigureFilter</listener-class> </listener>
實現了這些程式碼後,測試一下,可以將獲取的專案名給一個變數
<script type="text/javascript">
var contextPath = "${Azzan}";
alert(contextPath);
</script>
測試成功!
所以在寫URL請求地址的時候可以寫成這樣:例如:
url:'${Azzan}/login/login',
或者
url:contextPath+'/login/login',