`

Java Web开发中路径问题小结

    博客分类:
  • web
 
阅读更多

一、Web开发中路径的几个基本概念

假设在浏览器中访问了如下的页面,如图1所示:



 1

Eclipse中目录结构如图2所示:



 2

 

那么针对这个站点的几个基本概念表述如下:

1. web站点的根目录http://localhost:8080/

2. web应用程序的的根目录:http://localhost:8080/test/

3.同级目录:http://localhost:8080/test/articles/article1.jsphttp://localhost:8080/test/articles/article2.jsp 就是处于同级目录

 

二.几个路径相关函数的返回值:

TestURL.jsp文件中测试了三个路径相关函数:

1. getRequestURI()  servlet中获得请求页面的相对路径(带项目名): request.getRequestURI();

2. getContextPath()  servlet获得web应用的根目录: request.getContextPath();

3. getServletPath()   servlet中获得请求页面的相对路径: request.getServletPath();

4.getRequestURL() servlet中获得页面请求的发布目录: request.getRequestURL();如:http://localhost:8080/test/TestURL/TestURL.jsp
5.servlet中获得项目绝对路径: request.getSession.getServletContext().getRealPath("/");

ServletContext.getRealPath(java.lang.String) 代替 request.getSession().getServletContext().getRealPath() 得到工程文件的实际物理路径,也就是绝对地址。如:E:\6.0\workspace\test\

结果如图3所示:



 3

附:request.getScheme();           返回的协议名称,默认是http

   request.getServerName()         返回的是你浏览器中显示的主机名

getServerPort()                            获取服务器端口号

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

 他的含义就是为了得到一个路径

 

三.web.xml中的路径

Servlet 映射 <url-pattern>/xx</url-pattern> 中的 “/” 代表当前 web 应用的根路径。这个只要思考一下就能得出结论:所有的web.xml文件都是描述某个web应用的部署相关信息,所以“/”只能代表当前 web 应用的根路径,而不是指向web站点的根目录

 

 

四.转发和重定向中的路径问题

1)如果没有“/如:request.getRequestDispatcher("hello.jsp ").forward(request, response) response.sendRedirect(" hello.jsp ") 就表示在同级目录中寻找login.jsp文件。

 

2)如果路径中包含“/”(注意,这里的“/”是指路径中的第一个“/”)

(a) 转发

如:request.getRequestDispatcher("/hello.jsp").forward(request, response) :代表到http://localhost:8080/test/ 目录下寻找hello.jsp文件。

(b)重定向

如:response.sendRedirect("/hello.jsp"):代表到http://localhost:8080/ 目录下寻找hello.jsp文件

 

五.<form action=“/xxx”> <a href=/xxx></a>中的路径

/”代表的是 web 站点的根路径.因为超链接可以链接到任何需要的目标资源, 所以 / 代表的肯定不是当前 web 应用的根路径, 而是当前 web 站点的根路径。

 

六.Page标签中errorPage属性的路径问题

errorPage属性值如果以”/”开头表示相对于当前WEB应用程序的根目录,否则,表示相对与当前页面。

  • 大小: 26.3 KB
  • 大小: 94.9 KB
  • 大小: 51.7 KB
分享到:
评论

相关推荐

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    java web开发技术大全

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》介绍了Web开发中客户端技术的基础知识,包括JavaScript、CSS、AJAX等,这些技术都是Web应用中常用的客户端技术。 《Java Web开发技术大全:JSP+...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...

    java web技术开发大全(最全最新)

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》介绍了Web开发中客户端技术的基础知识,包括JavaScript、CSS、AJAX等,这些技术都是Web应用中常用的客户端技术。 《Java Web开发技术大全:JSP+...

    JAVA程序开发大全---上半部分

    以及基于这些技术的商业化应用程序的开发技巧,在讲解过程中以目前最为流行的开发工具MyEclipse为载体,全面系统地介绍了如何在MyEclipse中开发基于Struts、Hibernate、Spring等主流框架的各种Java应用程序。...

    PHPWeb开发技术指南——pdf格式

    1.7 小结 22 第2章 高级语法 23 2.1 PHP语法 23 2.2 定义常量 24 2.3 数组函数 25 2.4 PHP和OOP 31 2.4.1 类:PHP 3.0和PHP 4.0的对比 35 2.4.2 执行类 36 2.4.3 读取对象 37 2.4.4 构造函数 38 2.4.5 继承 38 2.4.6...

    《MyEclipse 6 Java 开发中文教程》前10章

    Tomcat JSP Web 开发中的乱码问题小结 164 第九章 开发Struts 1.x应用 166 9.1 介绍 166 9.2 创建Struts项目 168 9.2.1 创建Web项目 169 9.2.2 加入 Struts开发功能 169 9.3 使用Struts工具 171 9.3.1 Struts配置...

    网页与Web程序设计 课件 ppt 机械工业出版社 part1

    本章小结 12 思考题 12 第2章 HTML基础 13 2.1 网页与HTML概述 13 2.2 文档结构标记和格式标记 14 2.3 文本标记和链接标记 16 2.4 图像标记和多媒体标记 19 2.5 表格标记和表单标记 20 2.6 其他常用标记 24 ...

    java程序设计与开发课件

    1.6 本章小结································· (9) 习题1···································· (9) 第2章 Java语言基础········...

    Flex企业应用开发实战源代码

    本书对Flex的基础知识着墨不多,所有内容都围绕Flex+Java这一企业级应用开发技术展开,侧重于对Flex技术原理、企业级应用的架构思想和实现方法的讲解,所以书中的内容不会随着Flex版本的升级而过时。 第1章 Flex...

    Spring in Action(第二版 中文高清版).part2

    第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP ...B.4 小结

    Spring in Action(第二版 中文高清版).part1

    第一部分 Spring的核心 第1章 开始Spring之旅 1.1 Spring是什么 1.2 开始Spring之旅 1.3 理解依赖注入 1.3.1 依赖注入 1.3.2 DI应用 1.3.3 企业级应用中的依赖注入 1.4 应用AOP ...B.4 小结

    Eclipse权威开发指南2.pdf

    1.5 本章小结...... 11 1.6 参考文献...... 12 第2章 Eclipse入门 13 2.1 第一步...... 14 2.1.1 提示没有任何JRE可用的对话框..... 14 2.1.2 创建您的第一个项目..... 15 2.1.3 Eclipse的外观:编辑器、视图和...

    Web程序设计计算机科学经典教材.doc

    21 1.9.9 Servlet、JavaServer Pages和 JavaServer Faces概述 22 1.9.10 ASP.NET概述 22 1.9.11 Ruby概述 23 1.9.12 Rails概述 23 1.10 本章小结 24 1.11 复习题 25 1.12 练习题 26 第2章 XHTML简介 29 2.1 HTML和...

    Eclipse权威开发指南1.pdf

    1.5 本章小结...... 11 1.6 参考文献...... 12 第2章 Eclipse入门 13 2.1 第一步...... 14 2.1.1 提示没有任何JRE可用的对话框..... 14 2.1.2 创建您的第一个项目..... 15 2.1.3 Eclipse的外观:编辑...

Global site tag (gtag.js) - Google Analytics