求助一个JSP路径的问题,谢谢!

sweetBug 2010-01-25 11:44:11
自己弄了个JSP页面,用的是TOMCAT,JSP是这样写的:

<body>
<%
out.print("application.getContextPath(): " + application.getContextPath() + "<br />");
%>
<a href="/xx.jsp">a link</a>
</body>

启动TOMCAT,浏览器输入http://localhost:8888/HeadFirstExamples/testPageContext1.jsp,显示下结果:
------------------------------------------------
application.getContextPath(): /HeadFirstExamples
a link

然而链接(a link)的却是http://localhost:8888/xx.jsp,为什么不是http://localhost:8888/HeadFirstExamples/xx.jsp呢??求解,求释疑,谢谢!
...全文
104 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sweetBug 2010-01-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 awusoft 的回复:]
还有一个 <base >标签.

<head >
  <base >
</bead>

这里可以定义好当前页面的路径,然后其它一些../都是它为基础
[/Quote]
哦,是这样,谢谢了。再请问一下,每个页面里都需要这样配置么,有没有一个地方配置,整个APP都能够应用的?
铁匠梁 2010-01-25
  • 打赏
  • 举报
回复
<body>
<%
out.print("application.getContextPath(): " + application.getContextPath() + "<br />");
%>
<a href="<%=application.getContextPath()%>/xx.jsp">a link</a>
</body>
awusoft 2010-01-25
  • 打赏
  • 举报
回复
还有一个<base >标签.

<head >
<base >
</bead>

这里可以定义好当前页面的路径,然后其它一些../都是它为基础
阿_布 2010-01-25
  • 打赏
  • 举报
回复
/开头表示取绝对路径
flush_520 2010-01-25
  • 打赏
  • 举报
回复
把“/”去掉试下 “/是" 向上一层目录了
sweetBug 2010-01-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhoupuyue 的回复:]
<a href="${pageContext.request.contextPath}/xx.jsp">a link </a>

[/Quote]
谢谢zhoupuyue,那么“/”在JSP中,到底表示了什么意思呢?除了这种方式,还有其它办法没得呢?
阿_布 2010-01-25
  • 打赏
  • 举报
回复
<a href="${pageContext.request.contextPath}/xx.jsp">a link</a>
sweetBug 2010-01-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gao512008 的回复:]
<a href="xx.jsp">a link </a>

要看xx.jsp和testPageContext1.jsp的相对路径
[/Quote]
由于在很多页面要引用这个xx.jsp,所以相对路径不好弄啊。
所以放到contextPath下,用这个“/”来引用的。
很费解呀,为什么ServletContext.getResourceAsStream("/pp.jar")却可以引用到contextPath下面的pp.jar呢?
gao512008 2010-01-25
  • 打赏
  • 举报
回复
<a href="xx.jsp">a link </a>

要看xx.jsp和testPageContext1.jsp的相对路径
sweetBug 2010-01-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luffyke 的回复:]
<a href="/xx.jsp">a link </a>
在tomcat中这句就是
http://localhost:8888/xx.jsp
[/Quote]
那如何让它变成http://localhost:8888/HeadFirstExamples/xx.jsp这样呢?“/”不是相对于contextPath吗?
luffyke 2010-01-25
  • 打赏
  • 举报
回复
<a href="/xx.jsp">a link</a>
在tomcat中这句就是
http://localhost:8888/xx.jsp
sweetBug 2010-01-25
  • 打赏
  • 举报
回复
谢谢大家了,感谢!
whereusejava 2010-01-25
  • 打赏
  • 举报
回复
一个是相对路径,一个是绝对路径自然不一样啊
awusoft 2010-01-25
  • 打赏
  • 举报
回复
这个没有,不过你知道各种连接的情况就行了.没有多少种情况的,多数都是用相对路径,我使用Struts标签的时候,就是一直<html:base/>让base生成一个页面的绝对路径.其它的一概使用相对路径.有时候是一个连接到这个页面,有时候一经过一个.do(Struts Action)之后到这个页面的,使用这个base就很好用了.

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧