在一个页面里这样访问了一个js文件

之前看过很多朋友在csdn上发帖问怎么这么设置网站资源的访问路径好。按照本文的思路。记得是思路,只要你看懂了思路也不局限于实现这个接口。 就可以很好的去解决项目的资源路径。比如在一个页面里这样访问了一个js文件,将来不管这个页面怎么移动目录都不需要管这个js访问路径对不对(除非这个js资源移动了位置)
转载请标明本文出处: 实现ServletContextListener解决项目资源访问路径不统一的问题

1 自定义一个实现类 ContextPathListener 它实现了 ServletContextListener

Java code
   
   
import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; /** * 在页面里直接受用 ${path}/xxx/xxx.jsp 这样的方式访问资源 * @author http://www.gbsou.com * */ public class ContextPathListener implements ServletContextListener { /* * (non-Javadoc) * * @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent) */ public void contextInitialized(ServletContextEvent sce) { ServletContext sc = sce.getServletContext(); sc.setAttribute( " path " , getContextPath(sc)); } /* * (non-Javadoc) * * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent) */ public void contextDestroyed(ServletContextEvent sce) { ServletContext sc = sce.getServletContext(); sc.removeAttribute( " path " ); } private String getContextPath(ServletContext sc) { return sc.getContextPath(); } }


2 在web.xml 配置成listener
XML code
   
   
< listener > < listener-class > www.gbsou.com.listeners.ContextPathListener </ listener-class > </ listener >


3 这样的话 在项目启动时会去获取上下文路径并且以key为path保存到ServletContext 里

4 我们在jsp页面里访问css之类的资源时只需要用EL表达式这样写,将来不管jsp移到哪个目录都没问题了:
HTML code
   
   
< head > < link href ="${path }/css/style.css" rel ="stylesheet" type ="text/css" /> </ head >


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值