`

Web开发中的路径问题

阅读更多

    路径问题在Web开发中算是令人比较蛋疼的问题,尤其是用相对地址时,同样的代码,在不同的目录结构中竟然会出现有对有错的结果,让人茫然不知所措。这种错误,究其原因,还是对Web中路径的概念一知半解,为彻底避免这种错误,提高开发效率,这里对Web中路径问题稍作总结。

 

1. 服务器端的相对地址
   

    是在服务器端解析的,是相对于web应用的地址
    servlet中的相对地址应该是相对于web应用,即相对于http://localhost:8080/webapp/

 

2. 重定向的路径问题


    forward跳转: servlet中的request.getRequestDispatcher(address);这个address是在服务器端解析的,
    所以,要forward到a.jsp应该这么写: request.getRequestDispatcher("/user/a.jsp")这个/相对于当前的web应用webapp, 其绝对地址就是:http:// localhost:8080 /webapp/user/a.jsp


    sendRedirect跳转: response.sendRedirect(address);这个address是在客户端解析的,要跳转到a.jsp,应该这么写:response.sendRedirect("/webapp/user/a.jsp");
 
3. 客户端的相对地址


    所有的html中的相对地址都是相对于http:// localhost:8080 / 的,而不是http:// localhost:8080 /webapp/ 的。
    Html中的form表单的action属性的地址应该是相对于http:// localhost:8080 / 的。

    所以,如果提交到a.jsp为:action="/webapp/user/a.jsp";提交到servlet为action="/webapp/handleservlet"
    Javascript也是在客户端解析的,所以其相对路径和form表单一样。

 

4. 两种相对路径
 
    相对于根目录的路径:

    /jsp/path/pathTest.jsp 
    在服务器端解析为绝对路径为:http://localhost:8080/webapp/jsp/path/pathTest.jsp  
    在客户端解析为的绝对路径为:http://localhost:8080/jsp/path/pathTest.jsp

 

    相对于当前目录的路径:  

    jsp/path/pathTest.jsp  
    当前目录的路径为http://localhost:8080/webapp/jsp/path

    那么绝对路径为:http://localhost:8080/webapp/jsp/path/jsp/path/pathTest.jsp

 
5. 站点根目录和css路径问题


    当在jsp中引入css时,如果其相对路径相对于当前jsp文件的,会正常找到相应的css
    但是如果从一个和当前jsp的路径不一样的Servlet中forward到这个jsp时,当前的相对路径是哪个Servlet的相对路径,而不是jsp所在的路径,这时不能在jsp中用这样的路径:<link href="css.css" rel="stylesheet" type="text/css">或者<link href="../../css.css" rel="stylesheet" type="text/css">。

    这中情况下,要用站点根目录来引用css文件,就是相对于http://ip/ 的目录,以"/"开头,即href="/webapp/css.css"。这样在servlet转发后和jsp中都是相对于站点根目录的相对路径,就能正确使用所定义的css样式了。

    也可以理解为在客户端(jsp/html文件中),引用文件时,都要用/wabapp/***开头,因为客户端的相对地址是http://localhost:8080/

 

6. servlet中几个获取路径方法的对比

    对于url: http://localhost:8080/webapp/blog/list

    那么分别调用request.getContextPath( )、request.getServletPath( ) 、 request.getURI( )、request.getURL( )分别返回什么路径?

 

    这几个方法都是在HttpServletRequest接口中定义的。

    

    1). request.getContextPath( )返回web应用程序的路径,上例中该方法将返回/webapp;

    2). request.getServletPath( ) 返回Servlet的路径。上例中该方法将返回/blog/list;

    3). request.getRequestURL( )返回请求的URL,上例中即为http://localhost:8080/webapp/blog/list ;

    4). request.getRequestURI( )返回HTTP请求行中请求URI的部分。上例中该方法将返回/webapp/blog/list.

            

 

*注:事例所用服务器端口号为8080,webapp是web工程名字

分享到:
评论
1 楼 chengang292214 2014-01-09  
总结的不错

相关推荐

    java_web开发中的路径问题.pdf

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

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

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

    java web开发中的路径问题

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

    web中的路径问题

    在Web开发中,正确处理路径是非常重要的。无论是为了访问静态资源、配置文件还是进行页面跳转等操作,都需要对路径有深入的理解和掌握。本文将根据给定的信息来探讨Web应用中的路径问题。 #### 一、Web应用中的路径...

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

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

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

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

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

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

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

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

    web开发中获得绝对路径的方法

    在Web开发过程中,获取绝对路径是一项非常基础但又至关重要的技术。绝对路径的获取对于页面中的资源定位、链接跳转等方面都有着不可替代的作用。本文将详细介绍如何在Web开发中获得绝对路径的方法,并通过实例来解释...

    java开发中的路径问题

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

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

    在Java Web开发中,路径的概念非常重要,因为它们直接影响到资源的加载和处理。路径分为两种类型:绝对路径和相对路径。 **绝对路径**是指文件或目录在硬盘上的确切位置,无论是物理路径还是URL形式。例如: - 物理...

    JspWeb开发路径

    在IT行业中,JSPWeb开发是一项重要的技能,它主要用于构建动态网页应用。JSP(JavaServer Pages)是一种基于Java的技术,允许开发者将Java代码嵌入到HTML或XML文档中,以便在服务器端处理数据并生成动态内容。接下来...

    Flask+Web开发实战,flaskweb开发实战pdf,Python

    Flask+Web开发实战的PDF资源提供了一个全面的学习路径,涵盖了从基础到高级的Flask应用开发。无论你是初学者还是有一定经验的开发者,这本书都能帮助你掌握Flask框架,并运用到实际项目中。通过实践,你将理解如何...

    web选择文件保存路径

    web选择文件保存路径的方式,大致分为两种,大家可以下来了了解一下,个人表示第一种比较好用

    web路径 访问路径 时间转换问题

    在Web开发中,路径访问和时间转换是两个关键的概念,特别是在使用像威尔伯Server这样的Web服务框架时。这里,我们将深入探讨这两个主题,并解决可能遇到的问题。 首先,让我们来看看“Web路径”或“访问路径”。在...

    web前端与移动开发学习路径

    web前端开发学习路径介绍

    Web项目设置的路径要求

    在进行Web项目的开发与部署过程中,正确的路径配置至关重要。合理的路径设置不仅可以确保项目的正常运行,还能提高系统的可维护性和扩展性。本文将围绕Web项目中的路径要求进行详细阐述,包括但不限于项目的目录结构...

    DWR中JS的引用路径问题【前台web】

    在Web开发中,JavaScript(简称JS)是前端开发的重要组成部分之一。Direct Web Remoting (DWR) 是一个强大的Java库,它使得JavaScript能够直接调用Java方法,极大地简化了前后端之间的交互过程。然而,在实际开发...

Global site tag (gtag.js) - Google Analytics