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