JavaWeb路径相关的总结
来源:互联网 发布:进入telnet端口命令 编辑:程序博客网 时间:2024/05/21 22:41
1.目录相关名词介绍
通常我们访问一个web应用地址格式如下:http://localhost:8080/MyWeb/HelloServlet
http://localhost:8080 这一部分我们称它为服务器的根目录
/MyWeb 这一部分我们称它为项目的根目录
- /HelloServlet 这一部分是我们Servlet的映射地址
绝对路径和相对路径
- 绝对路径:使用“/ ”开头的路径称为绝对路径,绝对路径表示从根目录开始寻找资源。
- 相对路径:不使用“ / ”开头的路径称为相对路径,相对路径表示从当前资源所在目录开始寻找资源
2.服务器端路径
服务器端路径,主要指在Servlet中使用转发时的路径。
服务器端的根目录指的是项目的根目录,也就是我们的项目名。
例如,我们现在访问如下地址的Servlet:
http://localhost:8080/MyWeb/hello/HelloServlet
在HelloServlet中调用转发方法
request.getRequestDispatcher(“/index.html”).forward(request,
response); 在路径地址处如果加了“ / ”相当于由项目根目录开始寻找资源 也就相当于将请求转发到如下地址:
http://localhost:8080/MyWeb/index.htmlrequest.getRequestDispatcher(“index.html”).forward(request,
response);
在路径地址处如果不加“/ ”相当于由当前项目所在目录开始寻找资源 也就相当于将请求转发到如下地址:
http://localhost:8080/MyWeb/hello/index.html
在实际应用中,由于我们的资源(Servlet和JSP)所在的位置有可能会发生变动,所以通常我们会使用绝对路径。
3.客户端路径
客户端路径,主要是值在页面中引用外部资源,以及在Servlet中做重定向操作时的路径。
客户端路径的根目录指的是我们tomcat的服务器的根目录,也就是项目名前面那段路径。
**我们现在访问如下地址的Servlet:
http://localhost:8080/MyWeb/hello/HelloServlet**
在HelloServlet中调用重定向方法 response.sendRedirect(“/index.html”);
在路径地址处如果加了“ / ”相当于由项目根目录开始寻找资源 也就相当于将请求重定向到如下地址:
http://localhost:8080/ index.html
但是这个地址明显不是我们想要的,所以在重定向使用绝对路径时必须要加入项目的名字,如下:
response.sendRedirect(“/MyWeb/index.html”);
如此请求将会重定向到http://localhost:8080/MyWeb/ index.html
response.sendRedirect(“index.html”);在路径地址处如果不加“/ ”相当于由当前项目所在目录开始寻找资源 也就相当于将请求重定向到如下地址:
http://localhost:8080/MyWeb/hello/index.html
**例2:在MyWeb项目中有form.html页面,目录结构如下:
webapps/MyWeb/hello/form.html**
现在我在form.html中创建超链接访问/hello/HelloServlet
连接格式如下:
<a href=”/HelloServlet”>HelloServlet<a>
使用绝对路径,网页和重定向的根目录相同,都是服务器的根目录
因此点击超链接后会访问如下地址
http://localhost:8080/HelloServlet
这个地址明显不对,所以应该从项目名开始写起
正确如下:
<a href=”/MyWeb/hello/HelloServlet”>HelloServlet</a>
点击后访问地址:
http://localhost:8080/MyWeb/hello/HelloServlet
<a href=”HelloServlet”>HelloServlet</a>
使用相对路径,会从当前html所在目录开始寻找资源,也就是从/MyWeb/hello/开始。
因此点击超链接后会访问如下地址:
http://localhost:8080/MyWeb/hello/HelloServlet
同样的,在实际开发中客户端的路径我们也会使用绝对路径,而不使用相对路径。
但是,这块有一个问题,在实际开发中我们项目名有可能会改变,比如:开发中的名字可能为DMS,而实际部署时就变成了Baidu_DMS。但是这是我们在项目中的路径是以/DMS开头的,那就意味着,我们要把项目中所有的页面中、Servlet中的/DMS修改成/Baidu_DMS,如此一来工作量是十分大的,那要如何解决呢?实际上我们可以通过request对象动态的获取项目名来解决这个问题,在JSP页面中,request.getContextPath()可以解决这个问题。
- JavaWeb路径相关的总结
- javaweb的路径问题总结
- javaweb各种路径的总结
- javaweb中路径的书写总结
- javaweb中路径的书写总结
- javaweb项目的配置相关问题总结
- javaweb开发路径总结
- javaweb 路径总结
- Javaweb相关知识总结
- 使用JavaWeb项目的路径参数问题总结
- 关于JavaWeb中Servlet里基本路径获取的总结
- javaWeb中使用URL的情况总结(相对路径)
- javaWEB总结(24):相对路径和绝对路径
- Javaweb中相对路径,绝对路径问题总结
- javaweb开发的路径问题
- JAVAWEB相对路径的配置
- JavaWeb中路径的写法
- Javaweb 相关概念经典总结(一)
- spring MVC请求转发和重定向(RedirectAttribute)
- www-data 不能执行 shell_exec soffice --convert-to
- JAVA企业面试题精选 Struts 11-18
- Mac 输入法原文件的安装位置
- 课程学习周记 第七周
- JavaWeb路径相关的总结
- 前端---严格模式与混杂模式
- 2017.8.20 python学习小技巧
- Spring AOP 遇到NoClassDefFoundError: org/aopalliance/aop/Advice的解决方法
- Mac下Nginx环境配置
- hdu6154 规律啊规律
- 读书笔记_面向对象葵花宝典_一二章
- python 变量前的 单下划线 双下划线
- VB.Net 中实现延迟的几种方法分析