当前位置: 首页 > news >正文

request.getcontextPath() 详解(转)

本文转自:http://blog.csdn.net/pengxuan/article/details/6604578

<%=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; 
%>

http://www.xdnf.cn/news/818623.html

相关文章:

  • 计算机软驱的连接方式,usb软驱怎样 usb软驱的全面介绍【详解】
  • TCP的流量控制
  • bat批处理 if 命令示例详解
  • 最全行车记录仪主控芯片及方案排名TOP15、行车记录仪终端品牌厂商代表产品和方案排名TOP50
  • 免费MySQL账号共享_分享我常用的5个免费的在线 SQL 数据库环境,简直太方便了!...
  • 怎么看(美女)漫画最爽 - 图流
  • 在线播放视频
  • Server is too busy _解决方法和httpRuntime代码放在web.config哪
  • RE: 从零开始的车载Android HMI(三) - SurfaceView
  • 个人站长常用网站推荐
  • NTSTATUS 状态码
  • HTML5 实现分享功能(QQ 微信 微博)
  • IP地址、子网掩码、网络号、主机号、网络地址、主机地址以及ip段/数字-如192.168.0.1/24是什么意思?
  • 32位系统利用ReadyFor4GB扩大大于4G的内存
  • 网页版 QQ授权登录
  • 备战2024数学建模国赛(模型四):动态规划优秀案例(二)基于蒙特卡洛模拟的眼科病床安排排队模型
  • Hybrid APP基础篇(一)-什么是Hybrid App
  • 传说中的十大神兽
  • java主机哪儿好_java虚拟主机哪个好,香港java虚拟主机哪里有!
  • 无法启动承载网络。 组或资源的状态不是执行请求操作的正确状态,解决办法。(转)...
  • 解放军美女网络尖兵,90余昼夜写代码40多万行
  • 关于zeo作品中生成代码使用方法的说明!
  • dex2jar 报错 com.googlecode.d2j.DexException: not support version
  • mysql和c 连接数据库_c/c++连接mysql数据库
  • 单片机课设 - 电子时钟 (仿真,仿真代码,实验板代码)
  • pip 通过 requirements 文件,批量下载python包,批量离线安装python包
  • N点虚拟主机提权 - cracer_CSDN
  • telegram怎么改密码?
  • CreateFileMapping来进行进程间的通信和使用信号量来进行同步操作——进程间实现图片传输
  • 入门编程的方法和步骤