实现ServletContextListener解决项目资源访问路径不统一的问题
2012-03-13 14:40
465 查看
之前看过很多朋友在csdn上发帖问怎么这么设置网站资源的访问路径好。按照本文的思路。记得是思路,只要你看懂了思路也不局限于实现这个接口。 就可以很好的去解决项目的资源路径。比如在一个页面里这样访问了一个js文件,将来不管这个页面怎么移动目录都不需要管这个js访问路径对不对(除非这个js资源移动了位置)
转载请标明本文出处:http://www.gbsou.com/2010/04/07/2434.html
1 自定义一个实现类 ContextPathListener
它实现了 ServletContextListener
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
<listener>
<listener-class>
www.gbsou.com.listeners.ContextPathListener
</listener-class>
</listener>
3
这样的话 在项目启动时会去获取上下文路径并且以key为path保存到ServletContext
里
4
我们在jsp页面里访问css之类的资源时只需要用EL表达式这样写,将来不管jsp移到哪个目录都没问题了:
<head>
<link href="${path
}/css/style.css" rel="stylesheet" type="text/css" />
</head>
转自:http://www.gbsou.com/2010/04/07/2434.html
转载请标明本文出处:http://www.gbsou.com/2010/04/07/2434.html
1 自定义一个实现类 ContextPathListener
它实现了 ServletContextListener
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
<listener>
<listener-class>
www.gbsou.com.listeners.ContextPathListener
</listener-class>
</listener>
3
这样的话 在项目启动时会去获取上下文路径并且以key为path保存到ServletContext
里
4
我们在jsp页面里访问css之类的资源时只需要用EL表达式这样写,将来不管jsp移到哪个目录都没问题了:
<head>
<link href="${path
}/css/style.css" rel="stylesheet" type="text/css" />
</head>
转自:http://www.gbsou.com/2010/04/07/2434.html
相关文章推荐
- 使用HttpSessionListener和ServletContextListener实现在线人数和历史访问人数统计的问题
- web项目中url-pattern改成'/'后,js、css、图片等静态资源(404)无法访问问题解决办法
- IOS开发(7)WKWebView加载本地HTML、CSS、JS文件JS(解决html内访问其他资源路径问题)
- ssh项目中暴露Web Service供外部访问_解决请求路径问题
- 如何解决项目中jsp访问路径的问题
- java上传文件到磁盘中,设置tomcat虚拟路径进行访问,解决重布项目图片消失问题
- linux下通过软连接实现访问项目路径外面的资源
- Java在项目启动时访问数据库,在ServletContextListener解决对象无法注入问题
- CKEditor使用js结合CKFinder实现上传,解决项目路径问题
- (转)javabean操作文件正确,但是Jsp调用javabean时文件路径出错问题解决之JavaBean访问本地文件实现路径无关实现方法
- javabean操作文件正确,但是Jsp调用javabean时文件路径出错问题解决之JavaBean访问本地文件实现路径无关实现方法
- Windows XP无法访问网络资源各种问题分析及解决方法
- 新项目访问出错问题解决
- 关于Windows无法访问指定设备路径或文件,您可能没有合适的权限访问问题解决<转>
- 【COCOS2DX-LUA 脚本开发之十三】解决lua项目编译Android出现get data from file failed、Cocos2dxActivity cannot be 路径等问题
- 解决模拟器无法访问网络资源问题
- 使用MyEclipse发布Web项目时URL访问路径问题。
- 在JAVA WEB项目中,JSP中的图片无法显示,绝对路径和相对路径问题的解决办法。
- 创建oracle数据库时出现oracle快捷方式应用的项目无法访问,你可能没有适当的权限!帮忙解决什么问题啊!谢谢!
- 更改apache(2.2.17版本)默认文件路径引起的无权限访问问题的解决方法