`
q339549989
  • 浏览: 2293 次
  • 性别: Icon_minigender_1
  • 来自: 江西
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JAVA WEB 开发中路径问题的总结

阅读更多

要在/jsp/index.jsp文件使用图片,如何计算相对路径? 经过Servlet,struts转发后又如何计算相对路径    

     

目录结构:

 

   

 

------------------------------------------------------------------------------

 

第一种情况 :直接访问JSP文件

URL是 http://localhost/Context path/jsp/index.jsp

 

要在index.jsp引用go.gif文件:

1、使用决对路径

<img src='<%=request.getContextPath() %>/images/go.gif'/>

浏览器寻找方式: 域名+/Context path/images/go.gif   ,可找到。

 

  

2、使用相对路径

<img src='../images/go.gif'/>

浏览器寻找方式:通过地址栏分析,index.jsp所在目录(jsp)的上一层目录(WebRoot)下的images/go.gif文件 

 

 

3、使用base href

<%=request.getContextPath() %>太麻烦,可以在每一个jsp文件顶部加入以下代码

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

 

 

 <img src='images/go.gif'/>

浏览器寻找方式: basePath的值http://localhost/Context path/再加上images/go.gif,可找到。

 

 

------------------------------------------------------------------------------


第二种情况: servlet转发到jsp

 

1、使用相对路径 

URL是http://localhost/Context path/servlet_2   (转发到/jsp/index.jsp)

 

错误:

根据/jsp/index.jsp路径计算,得到 <img src='../images/go.gif'/>

 

 

正确:

<img src='images/go.gif'/>

 

原因:

index.jsp是保存在服务器端的/jsp/index.jsp目录下面,但通过转发后浏览器并不知道/jsp/目录的存在,因为地址栏中没有体现出来。所以服务器端/jsp/目录并不会对相对路径产生影响

浏览器寻找方式:通过地址栏分析http://localhost/Context path/servlet_2 ,相对于servlet_2所在目录(/)下面找到images/go.gif文件

 

 

2、使用相对路径

URL是http://localhost/Context path/servlet/ser/ser/servlet_1 (转发到/jsp/index.jsp)

 

“/servlet/ser/ser/servlet_1 是在web.xml文件配置的

 

错误:

根据/jsp/index.jsp路径计算,得到 <img src='../images/go.gif'/>

 

正确: 

<img src='../../../images/go.gif'/>

 

 

 

 

3、使用决对路径

<img src='<%=request.getContextPath() %>/images/go.gif'/>

 

 

------------------------------------------------------------------------------

 

总结:相对路径是由浏览器通过地址栏分析出来的,与服务器端文件的存放路径没有关系,由其是使用Servlet,struts转发到某jsp文件后,某jsp在服务器端存放的位置是/a/b/c/d/f/g.jsp , 但经过Servlet,struts转发后,浏览器的地址栏可不一定是/a/b/c/d/f/这样的层次。所以相对路径的计算以浏览器地址栏为准。原创地址:http://elf8848.iteye.com/

 

 

 

struts2中可以使用命名空间,来保证浏览器地址栏中的目录层次与服务器端目录层次的一致性,这样程序员通过服务器端的目录层次计算相对路径,在浏览器中也是正常的。

但我们理解了原理,就算不使用命名空间,自己也有强大的控制力。

 

原因:

index.jsp是保存在服务器端的/jsp/index.jsp目录下面,但通过转发后浏览器并不知道/jsp/目录的存在,因为地址栏中没有体现出来。所以服务器端/jsp/目录并不会对相对路径产生影响

浏览器寻找方式:通过地址栏分析http://localhost/Context path/servlet/ser/ser/servlet_1,相对于servlet_1所在目录(ser)的上一层目录的上一层目录的上一层目录(/)下的images/go.gif文件

分享到:
评论

相关推荐

    java Web 中相对路径绝对路径问题总结

    在Java Web开发中,理解和掌握相对路径与绝对路径的运用是至关重要的,因为这直接影响到资源定位、页面跳转以及文件读写等操作的正确性。以下是对Java Web中相对路径与绝对路径问题的深入总结: ### 一、路径概念与...

    java web开发中的路径问题

    在Java Web开发中,路径问题是一个常见的挑战,尤其是在处理JSP页面、Servlet以及web.xml配置文件时。理解和正确使用路径对于构建稳定、高效的应用程序至关重要。以下是对标题和描述中提及的知识点的深入探讨。 ###...

    java(Web)中相对路径,绝对路径问题总结

    ### Java(Web)中相对路径与绝对路径问题总结 #### 基本概念理解 在Java Web开发中,路径的概念非常重要,因为它们直接影响到资源的加载和处理。路径分为两种类型:绝对路径和相对路径。 **绝对路径**是指文件或...

    深入体验Java_Web开发内幕—核心基础 完整版 pdf

    这本书涵盖了从基础到高级的多个主题,旨在提供一个完整的Java Web开发学习路径。 在Java Web开发的世界里,基础知识至关重要。书中的内容可能包括但不限于以下几个方面: 1. **Java编程基础**:首先,读者需要对...

    java开发中的路径问题

    正确理解和使用这些路径处理方法对于Java Web开发至关重要,因为它们直接影响到资源的定位、文件操作以及网络请求的正确性。开发者应尽量避免使用像`.`, `./`, `../`这样的相对路径,以免因文件移动导致问题。在可能...

    WEB 项目中JAVA取得WEBROOT物理路径

    在Java Web开发中,获取WEB-INF目录或者更广泛的WEBROOT(Web应用的根目录)的物理路径是一项常见的需求。这通常涉及到服务器环境变量、Servlet API的使用以及对Web应用部署结构的理解。以下将详细讲解如何在Java中...

    java web开发环境配置

    要在 Eclipse 中配置 Tomcat,需要点击 Eclipse 工具栏中的 Windows,然后找到 Preferences,接着找到 Tomcat 在 Tomcat version 中选择 Tomcat 的安装版本,然后在 Tomcat 的安装路径中选择 Tomcat 的安装目录。...

    java_web开发中的路径问题.pdf

    在Java Web开发中,路径问题经常困扰着开发者,特别是初学者。理解路径的不同类型和使用场景至关重要,因为它们决定了资源的定位和访问方式。以下将详细介绍Java Web中涉及的路径类型以及在JSP、Servlet和`web.xml`...

    Tomcat与Java Web开发技术详解(第2版).pdf

    在Java Web开发中,Tomcat是一个至关重要的组件。它是一个开源的、轻量级的应用服务器,主要用于执行Java Servlets和JavaServer Pages(JSP)。Tomcat以其小巧、高效和易于配置的特点,成为许多开发者首选的Java Web...

    java项目中获取路径详解

    特别是在 Java Web 项目中,获取路径变得更加复杂。下面我们将详细讨论 Java 项目中获取路径的方法和注意事项。 获取相对路径 在 Java 项目中,获取相对路径可以使用 `getResource` 方法。这个方法可以返回当前类...

    Java或web中解决所有路径问题

    在Java Web开发中,路径问题往往困扰着许多开发者,尤其是在处理资源定位、文件读取以及配置文件加载等场景时。本文将深入解析Java Web中所有路径问题的解决方法,涵盖Servlet、Action、Controller、Filter、...

    Java Web开发环境的安装与配置

    Java Web开发环境的安装与配置 Java Web 开发环境的安装与配置是 Java Web 开发应用的基础。它包括 JDK、Tomcat 和 MyEclipse 等软件的安装与配置。下面是详细的安装与配置过程: 1. JDK 的安装与配置 JDK 是 ...

    JAVA_Web开发教程.ppt

    【JAVA_Web开发教程】 Java Web开发是将Java编程语言应用于构建互联网应用程序的过程。这个教程主要面向初学者...这不仅是理论知识的积累,更是实践技能的提升,有助于学员在未来的职业生涯中胜任Java Web开发的工作。

    java_web开发中的路径问题定义.pdf

    总之,Java Web开发中的路径问题涉及多个层面,理解并正确使用这些路径表示方式对于编写高效、无误的代码至关重要。在实际项目中,开发人员需要根据不同的场景灵活运用绝对路径和相对路径,确保Web应用的正常运行。

    java Web系统开发

    第四章 "JSP技术基础知识" 讲解了Java Server Pages,它是Java Web开发中的一个重要组件。JSP允许开发者在HTML页面中嵌入Java代码,实现动态网页。学习者将了解到JSP指令、脚本元素、表达式以及自定义标签的使用,...

    基于MVC框架的java web开发

    在Java Web开发中,模型通常由JavaBeans或POJO(Plain Old Java Objects)组成,它们封装了应用程序的数据和业务逻辑。模型层与数据库交互,获取和更新数据,并通过控制器向视图提供必要的信息。 **视图(View)** ...

    java学习笔记,JavaWeb开发中常见问题总结

    【Java学习笔记】JavaWeb开发中常见问题总结 在JavaWeb开发中,开发者经常会遇到各种问题,这些问题涵盖从基础语法到高级设计模式的各个方面。以下是一些关键知识点的概述: 1. **Java基础知识**: - **Classpath...

    JAVA获取各种路径总结

    通过以上介绍,我们可以看到,在Java开发中,无论是Web开发还是普通的Java应用程序开发,获取路径都是一个非常重要且实用的功能。掌握这些方法,可以帮助开发者更好地管理项目中的文件路径,提高程序的灵活性和可...

    java web高级开发

    6. **总结分析Web开发中的字符乱码问题**: 字符乱码主要由于编码格式不一致导致,尤其是在HTTP请求和响应、文件读写、数据库存储等环节。确保统一的字符编码(如UTF-8),并在必要时进行编码转换,如在Servlet中...

    java_web开发中的路径问题借鉴.pdf

    Java Web开发中的路径问题是一个常见的困惑点,尤其是在JSP页面、Servlet以及web.xml配置文件中。理解路径的正确表示方式至关重要,因为它们决定了资源的访问和处理方式。 首先,我们来了解一下基本概念。绝对路径...

Global site tag (gtag.js) - Google Analytics