记录自己的学习历程--自己对于JSP中pageContext对象的理解

关于pageContex--页面上下文对象自己的理解,只是作为新手学习很浅显的认识,如有误,请大牛指出,或者请告诉我更深的理解,感激不尽!

新建jsp1和jsp2,目录结构如下:

 

 

  在jsp1页面中添加一个超链接<a href="jsp2.jsp">跳转到jsp2</a>,点击超链接,将会出现404错误,找不到jsp2.jsp。这是什么原因,按理说jsp1.jsp和jsp2.jsp位于同一目录下,按相对路径查找应该能在当前目录下找到,但是为什么找不到呢?原因在于我们创建一个jsp页面时,编译器会默认为我们加上下图几句话

 

 

  在页面顶部java小脚本中加入”System.out.print(basePath)”,刷新页面控制台会输出”http://localhost:8088/BookShop/”这句话,这句话就是项目完整的路径,而<base href="<%=basePath%>">这句话的意思就是从根目录开始查找,所以当在jsp1.jsp向jsp2.jsp跳转时,默认就是从根路径开始查找jsp2.jsp,由于jsp2.jsp在WebRoot目录下的jsp文件夹中,并不在WebRoot目录下,所以就无法找到。想要找到jsp2必须将超链接写成<a href="jsp/jsp2.jsp">跳转到jsp2</a>。

 

如果去掉 <base href="<%=basePath%>"这句话,就代表不是从项目根目录开始查找,这样<a href="jsp2.jsp">跳转到jsp2</a>就是相对路径查找,就可以成功从当前目录jsp文件夹下找到了jsp2.jsp。

 

      ${pageContext.request.contextPath }就是输出web站点的根目录名称,和<base href="<%=basePath%>"具有相同的作用,如果没有<base href="<%=basePath%>">这句话,想要从jsp1.jsp跳转到WebRoot目录下的index.jsp界面,则必须在jsp1.jsp中写”<a href="${pageContext.request.contextPath }/index.jsp">跳转到index</a>”,路径第一个必须是${pageContext.request.contextPath }。或者使用相对路径查找<a href="../index.jsp">

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值