request.getcontextPath() 详解

[b]

request.getcontextPath() 详解[/b]


<%=request.getContextPath()%>

是为了解决相对路径的问题,可返回站点的根路径。





但不用也可以,比如

<a

href="<%=request.getContextPath()%>/catalog.jsp">



可以直接用

<a

href="catalog.jsp">

也行,这两个文件是在同一个目录下的。比如你要生成一个文件放在服务

器上得一个目录下

,

可以使用

request.getContextPath()+/dir,

组成一个完整得目录结构

!





但在

JSP

文件里

,

有时通过

request.getContextPath()

得到的路径却为空

,

为什



?



context

中没有配置

path

属性,所以你的工程文件就是在根目录下,相当于

path="";



即是你直接在浏览器中输入你的服务器

ip

就会到你的

jsp

页面,

而不是

tomcat

的默认页面;



以你通过

request.getContextPath()

得到的字符串是为空的;它是获得虚目录的;





如果你想得到工程文件的实际物理路径,可通过:

<%=request.getRealPath("/")%>

,这样页面

就会输出:

d:/web







参考

servlet

中的接口:





request.getScheme();



返回的协议名称

,

默认是

http





request.getServerName()



返回的是你浏览器中显示的主机名,你自己试一下就知道了





getServerPort()



获取服务器端口号








request.getContextPath()

应该是得到项目的名字,

如果项目为根目录,

则得到

一个

""

,即空的字条串。如果项目为

abc,

<%=request.getContextPath()%

>



得到

abc

,服务器端的路径则会自动加上,

<a

href="XXXX.jsp">

是指当前路径

下的这个

xxx.jsp

页面,有时候也可以在

head

里设置

html:base

来解决路径的

问题,不过用的最多的还是

request.getContextPath









js

文件中得到

request.getContextPath()

的值,不想在

JSP

中写太多的

Javascript

代码:



一种方法是用

hidden:

<input

type=hidden

name=contextPath

value=<%=

request.getContextPath()>





再就是在本页面的

js

里面也是可以使用

Scriptlet

来赋值的:



var a = '<%= request.getContextPath()>'



或者你赋值给一个

hidden

的控件都是可以的,然后

js

取,这样

js

可以不用写



jsp

里。





实际应用中,一般用来解决

jsp

测试和生产环境路径不同的问题:



<%

String appContext = request.getContextPath();

String basePath =

request.getScheme()+"://"+request.getServerName()+":"+

request.getServerPort() + appContext;

%>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值