看到博客园孤傲苍狼的web系列文章中有关于URL路径的使用文章后,感觉自己对URL的使用清楚了很多,自己再对着动手写一遍以加深记忆。

  JavaWeb开发中常看到URL以“/”开头,但对于服务器端和浏览器端分别指不同的起点路径。

如果“/”是给服务器用,则代表当前的web工程,自己理解就是指web目录,如果“/”是给浏览器用,则代表webapps目录。

一,“/”代表当前web工程的常见应用场景

1.ServletContext.getRealPath(String path)获取资源的绝对路径

如:this.getServletContext().getRealPath("/img/1.JPG)获取1.JPG的绝对路径中,img前面的“/”就是web工程。

2.在服务前端的forward转发中

如:this.getServletContext().getRequestDispatcher("/index.jsp").forward(request,response);

客户端请求某个web资源,服务器跳转到另外一个web资源,这个forward也是给服务器用的,此时"/index.jsp"前面的“/”就是web工程,即web目录。

3.使用include指令或者<jsp:include>标签引入页面

如<jsp:include page="/jsp/demo.jsp"/>

二.“/”代表webapps目录的常见应用场景

1.使用sendRedirect实现请求重定向

如response.sendRedirect("/JavaWeb_Learning_Project/index.jsp");

服务器发送一个URL地址给浏览器,浏览器拿到URL地址后再次请求服务器,所以“/”是给浏览器使用,此时URL等价于“webapps\JavaWeb_Learning_Project\index.jsp”.

此外项目中通常用另一种更灵活的写法代替上面的写法,这样在项目名称改变时依然有效:

response.sendRedirect(request.getContextPath()+"/index.jsp");

此时request.getContextPath()获取到的内容就是"/JavaWeb_Learning_Project”;

2.使用超链接跳转,提交表单或html部分标签中的src属性

如:<a href="/JavaWeb_Learning_Project/index.jsp>首页</a>,

<form action="${pageContext.request.contextPath}/demo5></form>,

<img alt="验证码看不清,换一张" src="${pageContext.request.contextPath}/demo4" id="validateCodeImg" onclick="changeImg()" >

访问web资源时,绝对路径的写法推荐使用img标签中src属性的写法改进,即:

<a href="${pageContext.request.contextPath}/index.jsp>首页</a>

3.js脚本和css样式文件的引用

最新文章

  1. 转载:Centos7 从零编译Nginx+PHP+MySql 序言 一
  2. winform窗体(一)——基本属性
  3. PO VO BO DTO POJO DAO(转)
  4. Spring学习之第一个AOP程序
  5. SparkSql 不支持Date Format (支持Timestamp)
  6. php如何遍历多维的stdClass Object 对象,php的转换成数组的函数只能转换外面一丛数组
  7. 新建jsp报错“The superclass &quot;javax.servlet.http.HttpServlet&quot; was not found on the Java Build Path”
  8. 在服务器上log4net没写日志
  9. js调用百度地图API创建地图
  10. 关于c#生成word。
  11. block代码块介绍
  12. errno与perror
  13. tablbView中section的间距
  14. Winform中Chart图表的简单使用
  15. FreeHttp (a fiddler add in to temper the http)
  16. canvas生成海报
  17. django——用户认证组件
  18. R语言读取XML数据
  19. vb.net Function使用
  20. 常用代码之三:jQuery为按钮绑定事件的代码

热门文章

  1. SignalR1
  2. MVC 4
  3. Ninject依赖注入——构造函数、属性、方法和字段的注入
  4. .NET平台技术体系
  5. EPROCESS KPROCESS PEB
  6. Spring in action (1)
  7. spring.NET的依赖注入
  8. python学习之路四(类和对象1)
  9. ASP.NET MVC学习笔记-----Filter
  10. thrift之默认传输类TTransportDefaults和虚拟传输类TVirtualTransport