1. 程式人生 > >Java_web專案,URL請求地址中專案名設定為自定義變數

Java_web專案,URL請求地址中專案名設定為自定義變數

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',