每个jsp页面中都要获取basePath,怎么一次性为所有jsp都设置basePath变量?

听!起风了~~~ 2015-09-17 04:14:06
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

每个新建jsp页面都有上面这段代码,我现在想使用EL表达式获取,但${pageContext.request...}又太麻烦,能不能再java逻辑处理货配置文件中设置一个全局变量,便于使用。而且我还有些其他自定义的数据需要设置成全局变量
请问怎么做???
...全文
1710 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
nx7_0 2016-06-21
你好,请问你是怎么用listener实现ServletContextListener接口的啊,能看看你的实现方法吗?我琢磨了好久了,拜托啦
回复
引用 7 楼 qq_20062767 的回复:
解决方法:只要在访问JSP页面之前设置就行了,可以放到filter里面,过滤就行了,这样子代码只写一次。
我用listener实现ServletContextListener接口,将变量存在servletContext范围内。通过自动获取项目名称,在服务器启动时设置变量值,实现了这个功能。 请问你说的放在filter怎么实现? 另外你知道ServletContextEnum怎么去的http://localhost:8080/这一段吗?
回复
如果写一个公共文件,那还需要每次都导入,还是挺麻烦的。我试着用拦截器,拦截所有springmvc的请求,在拦截器方法里把basePath设置到request里,但页面打开速度太慢
回复
引用 1 楼 oLeiChang 的回复:
写在头部里呀,每个页面引用头部就可以了
就是不想每个页面都写才有这烦恼
回复
qq_20062767 2015-09-18
解决方法:只要在访问JSP页面之前设置就行了,可以放到filter里面,过滤就行了,这样子代码只写一次。
回复
麦德漂 2015-09-18
写一个公共文件吧,把变量定义好,在头部引入。去掉basePath。
回复
General-M 2015-09-17
公共文件、、、、
回复
kuangwe 2015-09-17
<c:set var="base" value="${pageContext.request.contextPath}"/>
回复
oLeiChang 2015-09-17
写在头部里呀,每个页面引用头部就可以了
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-09-17 04:14
社区公告
暂无公告