zoukankan      html  css  js  c++  java
  • JavaWeb 项目中的绝对路径和相对路径以及问题的解决方式

    近期在做JavaWeb项目,总是出现各种的路径错误,并且发现不同情况下 /  所代表的含义不同,导致在调试路径上浪费了大量时间。

    在JavaWeb项目中尽量使用绝对路径  由于使用绝对路径是绝对不会出错的,而使用相对路径可能会出现错误。


    首先 说下在JavaWeb项目中的绝对路径和相对路径的含义

    绝对路径: 相对于当前Web应用根路径的路径  也就是不论什么路径都必需要带上contextPath =  http://localhost:8080/WebProject/

    相对路径: 相对于当前文件夹的路径为相对路径 通常直接用/ 来表示


    由于使用相对路径 中的 / 在JavaWeb中的含义在不同的情况下含义不同,所以使用相对路径时可能会出现故障

    以下就分析 / 在JavaWeb含义

    JavaWeb项目中 /  的不同含义

    JavaWeb项目中的 / 可能表演示样例如以下含义

    当前Web应用的根路径(也就是绝对路径)  http://localhost:8080/WebProject/

    有下面情况

    > 请求转发时  

    request.getRequestDispatcher("/message/a.jsp").forward(request,response);
    >  web.xml 文件里映射Servlet 訪问路径

     <servlet-mapping>
        <servlet-name>UserServlet</servlet-name>
        <url-pattern>/UserServlet</url-pattern>
      </servlet-mapping>

    > 各种定制标签中的 /


    当前Web网站的根路径  http://localhost:8080/

    有下面情况

    > 超链接

    <a href=""></a>
    > 表单中的action
    <form action="" method="post"></form>
    > 请求重定向的时候

    response.sendRedirect("");


    综合上述情况,我们应该在web项目开发中使用绝对路径也就是应该带上contextPath

    而contextPath能够由request.getContextPath 或者 application.getContextPath 来获取


    所以当遇到超链接  表单中的action 或者 请求重定向的时候,应该在其前面加上contextPath 而不能直接使用相对路径 / 

    为了保险起见,大家对项目中出现不论什么的訪问路径,比方css 或者js代码的调用的路径都能够使用绝对路径来防止出现故障

  • 相关阅读:
    使用commonscompress操作zip文件(压缩和解压缩)
    BoneCP的使用
    Struts2多文件上传
    shell 脚本转换 十六进制 十进制 八进制 二进制
    磁盘 I/O 性能监控指标和调优方法
    需求分析的故事——如何练就需求分析的火眼金晴?
    Debian 修改IP地址或DNS
    mysql主从备份
    ThinkPad T400 安装Windows Server 2008详细过程
    debian下,怎么ll命令注册
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4351428.html
Copyright © 2011-2022 走看看