web项目中我们几乎所有页面都会有对静态资源的引用,而所有引用都需要资源的地址,但是所有地址的前半部分都是相同的,所以我们可以把这部分叫做basePath,可以在项目启动的时候获取到项目的basePath,然后需要的时候直接写basePath的引用就可以了,这给我们的开发带来了很大的便利。
首先,我们需要写一个初始化获取basePath的类。
public class InitServlet extends HttpServlet {
private static Logger logger = LoggerFactory.getLogger(InitServlet.class);
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public void init() throws ServletException {
logger.info(" * * * init");
initBasePath();
}
private void initBasePath(){
getServletContext().setAttribute("basePath", getServletContext().getContextPath());
}
}
然后,由于我们在项目启动的时候就需要去获取到basePath,所以在web.xml文件中加入这一段配置代码
<servlet>
<servlet-name>initServlet</servlet-name>
<servlet-class>com.panshi.btcnews.job.InitServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
最后,我们在页面的引用,直接${basePaht}/自己所需要引用的资源,就ok了。