servlet/jsp中的一些路径问题

一:servlet

可能经常我们需要在servlet中处理一些路径问题,比如,想得到当前应用中某个文件的物理路径,或者需要知道某个请求的具体路径,这时就需要用到这些方法了。

1:获得web应用的物理绝对路径

用到了getServletContext()中的getRealPath ()方法,它能够返回当前web应用中的某个文件的物理绝对路径

String webRealPath=request.getSession().getServletContext().getRealPath("/");

这里用“/”,返回的时web应用根目录的物理路径,比如我的web应用在本机上的存放位置是

C:/Eclipse/workspace/mynews/MyNews

                                 |__WEB-INF
                                                                                                          |___class
                                                                                                           |___lib

C:/Eclipse/workspace/mynews/MyNews

2:当我在浏览器输入以下请求路径时http://localhost:8080/mynews/index.jsp

以下各个方法输出结果如下:

request.getContextPath()输出:

/mynews

获得URI

request.getRequestURI()输出:

/mynews/index.jsp

获得URL

request.getRequestURL()输出:

http://localhost:8080/mynews/index.jsp

知道了这几个方法的不同,就很容易在程序中使用了

二:Jsp中的一些路径问题

在jsp中可以使用相对路径,所以很容易出现一些问题

比如我现在有名为path的一个web应用程序,其中的文件组织结构如下:

  web
      |__WEB-INF
      |__index.jsp
      |__internal
           |__internal.jsp

在index.jsp中,有如下连接<a href="internal/internal.jsp">link</a>点击此连接后会连到如下地址:

http://localhost:8080/web/internal/internal.jsp,也就是说,上边那个连接地址是相对于index.jsp来说的。

当把链接改为<a href="/internal/internal.jsp">link</a>就会发现链接地址变成了如下:

http://localhost:8080/internal/internal.jsp也就是说,当加上“/”时,就变成了相对于网站根目录,而不是相对于web应用程序的根目录。

同样我们在internal.jsp中,我们可以使用../index.jsp来链接到index.jsp页面。

以上原则也适用于在提交表单时action中的路径问题,无论action转向的是servlet还是jsp页面。

例子补充

//Kinko/templates/master/test.jsp

<a href="/test.jsp" >test</a>

Url为

http://localhost:8080/Kinko/templates/master/test.jsp

点击后

Url为

http://localhost:8080/test.jsp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值