请求url的相对路径研究

深碍√TFBOYSˉ_ 2022-04-15 02:12 292阅读 0赞

struts_hdlogin.xml :

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5. <struts>
  6. <package name="hdlogin" extends="cx-struts-default" namespace="/hdlogin">
  7. <!-- 登录-->
  8. <action name="login" class="org.hd.login.action.LoginAction" method="login">
  9. <result name="success">/jsp/layout/main.jsp</result>
  10. <result name="loginfail">/hdlogin.jsp</result>
  11. </action>
  12. </package>
  13. </struts>

上面的请求返回的页面:

main.jsp:

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. %>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  9. <title>客户服务中心系统</title>
  10. <link rel="shortcut icon" href="<%=path%>/resource/images/favicon.ico" type="image/x-icon"/>
  11. </head>
  12. <body>
  13. <iframe src="layout/haha.jsp" width="100%" height="100%"
  14. name="maininner" id="maininner" frameborder="0" scrolling="hidden"></iframe>
  15. </body>
  16. </html>

工程的页面路径关系:

1348209042_4879.JPG

在main.jsp中有一个iframe,其中需要填写src的路径,如果使用相对路径,那么他的src应该怎么写呢?

工程路径:http://lsy.helpdesk.citicsinfo.com/
请求路径:
http://lsy.helpdesk.citicsinfo.com/hdlogin/login.action

首先测试反斜杠“/”在url中的作用.在iframe的src填写:
haha.jsp
http://lsy.helpdesk.citicsinfo.com/hdlogin/haha.jsp (404)

/haha.jsp
http://lsy.helpdesk.citicsinfo.com/haha.jsp (404)

有三点结论:
1:反斜杠“/”在url中的作用是返回工程的根路径。
反斜杠“/”的内容会加到url后面;

2:不加反斜杠“/”代表你使用的是相对当前路径。
这个相对是相对于你现在的路径而言。
比如我现在的路径是:

http://lsy.helpdesk.citicsinfo.com/hdlogin/login.action
那我使用“haha.jsp”就是相对于现在的
http://lsy.helpdesk.citicsinfo.com/hdlogin/
在这个路径上加上我写的东西“haha.jsp”,最后就拼成了:

http://lsy.helpdesk.citicsinfo.com/hdlogin/haha.jsp

3:在struts的xml中有个namespace=”/hdlogin”属性,
这个命名空间是会加到url中去的,作为url的一层。

  1. 测试1
  2. jsp/layout/haha.jsp
  3. [http://lsy.helpdesk.citicsinfo.com/hdlogin/jsp/layout/haha.jsp][http_lsy.helpdesk.citicsinfo.com_hdlogin_jsp_layout_haha.jsp] (404)
  4. 测试2
  5. ../jsp/layout/haha.jsp
  6. [http://lsy.helpdesk.citicsinfo.com/jsp/layout/haha.jsp][http_lsy.helpdesk.citicsinfo.com_jsp_layout_haha.jsp] (正确显示)
  7. 测试3
  8. ../layout/haha.jsp
  9. [http://lsy.helpdesk.citicsinfo.com/layout/haha.jsp][http_lsy.helpdesk.citicsinfo.com_layout_haha.jsp] (404)
  10. 测试4
  11. layout/haha.jsp
  12. [http://lsy.helpdesk.citicsinfo.com/hdlogin/layout/haha.jsp][http_lsy.helpdesk.citicsinfo.com_hdlogin_layout_haha.jsp] (404)
  13. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~分割~~~~~~~~~~~~~~~~~~~

测试5
/jsp/layout/haha.jsp
http://lsy.helpdesk.citicsinfo.com/jsp/layout/haha.jsp (正确显示)

测试6
/layout/haha.jsp
http://lsy.helpdesk.citicsinfo.com/layout/haha.jsp (404)

*********************************************************************************************************

上面有2个是实际能正确显示的,我们要仔细研究为什么正确。
测试2
../jsp/layout/haha.jsp
http://lsy.helpdesk.citicsinfo.com/jsp/layout/haha.jsp (正确显示)

首先,这个路径使用相对当前路径,
其次,../jsp/layout/haha.jsp中../表示回到上一层路径,
现在路径:
http://lsy.helpdesk.citicsinfo.com/hdlogin/login.action
那上一层就是http://lsy.helpdesk.citicsinfo.com/
后面再加上“jsp/layout/haha.jsp”,那完整的路径就是:
http://lsy.helpdesk.citicsinfo.com/jsp/layout/haha.jsp (能正确显示是因为这个路径是实际存在的!,有这个url的文件)

测试5
/jsp/layout/haha.jsp
http://lsy.helpdesk.citicsinfo.com/jsp/layout/haha.jsp (正确显示)

首先,这个路径使用相对根路径。
其次,“/”表示根路径就是:

http://lsy.helpdesk.citicsinfo.com/
再加上后面的内容就是:
http://lsy.helpdesk.citicsinfo.com/jsp/layout/haha.jsp (能正确显示是因为这个路径是实际存在的!,有这个url的文件)

“../“ 代表当前路径的上一层目录。
“/“ 代表当前路径的根目录

网上有的说:”./“代表根目录。
测试如下:
./haha.jsp
http://lsy.helpdesk.citicsinfo.com/hdlogin/haha.jsp
这个测试说明是和””一样的,代表相对当前目录,在js文件中也见过这个用法,不过在jsp的路径中实际结果不是根目录,这个确实不敢用。

发表评论

表情:
评论列表 (有 0 条评论,292人围观)

还没有评论,来说两句吧...

相关阅读

    相关 绝对路径相对路径

    绝对路径 Web文件访问的基本格式如下: 协议://主机:端口/应用名/文件夹名/文件 协议:这里应该是http协议; 主机:是运行Web应用的服务器的地址,可以使