浅析WEB中的路径问题
时间:2008-11-25 来源:hkebao
HTML相对路径(Relative Path)
同一个目录的文件引用
如果源文件和引用文件在同一个目录里,直接写引用文件名即可。
我们现在建一个源文件info.html,在info.html里要引用index.html文件作为超链接。
并申请了虚拟主机,你的虚拟主机提供商会给你一个目录。
假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html
假设index.html路径是:c:\Inetpub\wwwroot\sites\blabla\index.html
在info.html加入index.html超链接的代码应该这样写:
<a href = "index.html">index.html</a>
[如果是相同的一个目录下面的话就直接调用这个文件就可以了!]
如何表示上级目录
../表示源文件所在目录的上一级目录,../../表示源文件所在目录的上上级目录,以此类推。
假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html
假设index.html路径是:c:\Inetpub\wwwroot\sites\index.html
在info.html加入index.html超链接的代码应该这样写:
<a href = "../index.html">index.html</a> [到上一级目录中找到链接]
假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html
假设index.html路径是:c:\Inetpub\wwwroot\index.html
在info.html加入index.html超链接的代码应该这样写:
<a href = "../../index.html">index.html</a>[上二级目录中去找到目标]
假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html
种路径的写法:相对路径和绝对路径。表示源文件所在目录的上一级目录。
假设index.html路径是:c:\Inetpub\wwwroot\sites\wowstory\index.html
在info.html加入index.html超链接的代码应该这样写:
<a href = "../wowstory/index.html">index.html</a>
如何表示下级目录
引用下级目录的文件,直接写下级目录文件的路径即可。
假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html
html文件作为超链接。html加入index.
假设index.html路径是:c:\Inetpub\wwwroot\sites\blabla\html\index.html
在info.html加入index.html超链接的代码应该这样写:
<a href = "html/index.html">index.html</a>
假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html
假设index.html路径是:c:\Inetpub\wwwroot\sites\blabla\html\tutorials\index.html
怎样在一个HTML网页中引用另外一个HTML网页作为超链接?
在info.html加入index.html超链接的代码应该这样写:
<a href = "html/tutorials/index.html">index.html</a>
[下级目录的网页页面的超链接操作]
HTML绝对路径(Absolute Path)
HTML绝对路径(absolute path)指带域名的文件的完整路径。
假设你注册了域名www.blabla.cn,并申请了虚拟主机,你的虚拟主机提供商会给你一个目录,比如www,这个www就是你网站的根目录。
假设你在www根目录下放了一个文件index.html,这个文件的绝对路径就是: http://www.blabla.cn/index.html。
假设你在www根目录下建了一个目录叫html_tutorials,然后在该目录下放了一个文件index.html,这个文件的绝对路径就是http://www.blabla.cn/html_tutorials/index.html。
[用户登录的URL地址就是这个了哦!]
参考来源:www.BlaBla.cn 布啦布啦网页教程与代码
1、服务器端的地址
服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的(不同于html和javascript中的相对地址,他们是由客户端 浏览器解析的)也就是说这时候在jsp和servlet中的相对地址应该是相对于你的web应用,即相对于http://192.168.0.1 /webapp/的。
其用到的地方有:
forwarder:servlet中的 request.getRequestDispatcher(address);这个address是在服务器端解析的,所以,你要forwarder到 a.jsp应该这么写:request.getRequestDispatcher(“/user/a.jsp”)这个/相对于当前的web应用 webapp,其绝对地址就是:http://192.168.0.1/webapp/user/a.jsp。
sendRedirect:在jsp中<%response.sendRedirect("/rtccp/user/a.jsp");%>
2、客户端的地址
所有的html中的相对地址都是相对于http://192.168.0.1/的,而不是http://192.168.0.1/webapp/的。 [客户端的地址是相对于IP而言的哦!而没有根目录的哦!]
Html 中的form表单的action属性的地址应该是相对于http://192.168.0.1/的,所以,如果提交到a.jsp为:action=” /webapp/user/a.jsp”;提交到servlet为action=”/webapp/handleservlet”
Javascript也是在客户端解析的,所以其相对路径和form表单一样。
servlet中获得项目绝对路径
String filePath=this.getServletConfig().getServletContext().getRealPath("/");
根目录所对应的绝对路径:request.getServletPath();
文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");
ServletContext对象获得几种方式:
Javax.servlet.http.HttpSession.getServletContext()
Javax.servlet.jsp.PageContext.getServletContext()
Javax.servlet.ServletConfig.getServletContext()
文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");