第一个:文件分隔符

坑比Window。window分隔符 用\;unix采用/。于是用File.separator来跨平台
请注意:这是文件路径。在File f = new File(“c:\\hah.txt”)是好使的
当在后台拼接js代码
代码大体如下:
String path = "\haha\test";
js+="<img src=\""+path+"\">"
采用window的分隔符,\ 传到前台发现分隔符不见了
但是/是可以的

第二个:Java web项目中 服务器的路径解析

先说一下,服务器路径。一般拿tomcat作为中间件
而web程序一般部署到 (前边是tomcat路径,最后portal就是引用程序部署文件夹)
C:\LEADERHOO\apache-tomcat-6.0.35\apache-tomcat-6.0.35 -IPORTAL\wtpwebapps\PORTAL
此路径下一般是 :
  第一部分:对应eclipse里边src/main/webapp
  第二部分:eclipse看不到的(隐藏的)META-INF
  第三部分(可能会有的):有一些资源文件比如图片等,上传到服务器可以传到该目录下
此路径下可以通过web项目的url访问
  比如在该目录下,我建了一个a.txt,我可以直接用http://boc.dtsz.com:8086/sso/a.txt访问到
  或者建目录访问 http://boc.dtsz.com:8086/sso/testfolder/a.txt
备注 此处存在一个非常坑爹的设定
  中文目录居然不好使
  http://boc.dtsz.com:8086/sso/testfolder/测试中文目录/a.txt

第三:图片的路径

页面上图片路径(\或者是/或者是\\\\ 根据具体例子测试)
相对路径 ..\newHaha
绝对路径 c:\test\haha
相对路径一定注意前边 是否需要 ..\ 也就是是否能准确定位到文件

第四:前台页面采用相对路径还是绝对路径

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
就可以使用绝对路径
<link href="<%=basePath %>companyStyle/css/base.css" rel="stylesheet">

第五:Java web 相对路径以/开头和不已/开头的区别

  通俗的讲,有/会从跟目录开始算,没有会从当前目录开始算

  比如<link  src = "/demo.js"/>  设当前项目根路径是 “localhost:8081/sso”则此路径会定位到 localhost:8081/sso/demo.js

第六:页面引用WEB-INF下的内容

  web-inf下,应用服务器把它指为禁访目录,即直接在浏览器里是不能访问到的,只能通过servlet访问 所以:
    web-inf下有a.jsp则可以用request.getRequestDispatcher("/WEB-INF/a.jsp").forward(request,response);进行派遣访问

    但是web-inf下有a.htm,则用request.getRequestDispatcher("/WEB-INF/a.htm").forward(request,response);就不能访问。

第七: <%@ include file = "/WEB-INF/a.jsp"%> 这样写可以用的原因

请注意:
  此处和访问路径区分开,这不是访问路径,这是告诉jsp翻译的时候把这个地方的文件加进来
涉及的细节点就是 jsp会翻译成servlet
  jsp页面不能原封不动地被传送给浏览器,所有的jsp元素都必须首先由服务器进行处理。这是通过将jsp页面转达化成servlet,然后执行这个servlet来完成的

jsp容器:
  jsp容器通常以servlet的形式来实现,这个servlet经过配置,可以处理对jsp页面的所有请求
jsp的翻译:
  Jsp容器负责将jsp页面转化成servlet(称为jsp页面实现类?JSP Page implementation class),并编译这个servlet
  所以:用 <%@ include%>会在翻译的时候把文件加进来而不是访问该文件
再次加深一下,为什么翻译的时候可以通过/WEB-INF/找到文件
  参照整理2,WEB-INF 在tomcat服务器的程序包的可以直接访问的那一级别
  这个uri是可以定位一个文件,只不过tomcat不允许直接通过浏览器访问而已

参考资料: http://blog.csdn.net/panyongcsd/article/details/38235713

对Java Web项目中路径的理解的更多相关文章

  1. JAVA WEB项目中各种路径的获取

    JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报  分类: JAVA开发(41)  1.可以在s ...

  2. Java Web项目中连接Access数据库的配置方法

    本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...

  3. linux 下用renameTo方法修改java web项目中文件夹名称问题

    经测试,在Linux环境中安装tomcat,然后启动其中的项目,在项目中使用java.io.File.renameTo(File dest)方法可行. 之前在本地运行代码可以修改,然后传到Linux服 ...

  4. Java Web项目中缺少Java EE 6 Libraries怎么添加

    Java Web项目中缺少Java EE 6 Libraries怎么添加 具体步骤如下: 1.项目名称上点击鼠标右键,选择"Build Path-->Configure Build P ...

  5. java web 项目中 简单定时器实现 Timer

    java web 项目中 简单定时器实现 Timer 标签: Java定时器 2016-01-14 17:28 7070人阅读 评论(0) 收藏 举报  分类: JAVA(24)  版权声明:本文为博 ...

  6. java web项目中打开资源文件中文乱码

    1 java web项目中经常使用多模块管理.在某一个模块中添加了一些资源文件.但不是启动项目.有时候需要在程序中读取资源文件内容,打包后放到容器中就不能正常运行了.需要将所有资源文件放到启动项目的 ...

  7. 在java web项目中编写自己的代码生成器

    在java web项目中编写自己的代码生成器

  8. Java Web 开发中路径相关问题小结

    Java Web开发中路径问题小结 (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 Eclipse中目录结构如图2所示: 图2 那么针对这个站点的几个基本概 ...

  9. 在Java web项目中防止用户注销后使用浏览器中的“后退”按钮返回注销前页面

    一背景 公司安全整改, 要求:系统中对于关键业务操作应确保使用浏览器"后退"功能无法回到上一步操作界面. 提供:凭证提供所有被检查系统关键业务操作后回退视频,视频显示关键业务操作后 ...

随机推荐

  1. LVS之DR模式实战及高可用性

    author:JevonWei 版权声明:原创作品 LVS-DR实现同网段调度web模式 拓扑环境 网络环境 RS1 RIP 192.168.198.138/24 VIP 192.168.198.10 ...

  2. HTTP协议知多少-关于http1.x、http2、SPDY的相关知识

    作为网站开发的基础协议,我们知道浏览器上都有输出http这四个字母,这意味着什么呢? 这就是最基础的HTTP协议. 逐浪君今天为各位大人准备了一些HTTP技术的知识,来和大家分享. 以下图为例: 这一 ...

  3. chrome开发工具指南(一)

    注意:如果你是一个网页开发者同时想要获得最新版本的开发工具,那么你应该使用谷歌浏览器(金丝雀)Canary 版. Chrome 开发者工具 打开Chrome 开发者工具 选择浏览器位于浏览器窗口右上方 ...

  4. 关系型数据库和NOSQL数据库对比

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt328 关系型数据库,是建立在关系模型基础上的数据库,其借助于集合代数等数学概 ...

  5. sql执行机制

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp38 sql执行机制 1.对于普通的sql语句只有where条件的执行机制 ...

  6. js函数防抖、节流实现

    防抖 Debounce 函数防抖就是,延迟一段时间再执行函数,如果这段时间内又触发了该函数,则延迟重新计算: // 简单实现 function debounce(fn, wait) { let t r ...

  7. 在Centos7x上部署docker

    docker只支持CentOS7.x系统,所以近期根据docker官网指南自己搭建了一套,供大家参考. 1.部署Centos7.x系统,查看系统版本. 2.执行 sudo yum update 更新到 ...

  8. NHibernate教程(9)一1对n关联映射

    本节内容 引入 NHibernate中的集合类型 建立父子关系 父子关联映射 结语 引入 通过前几篇文章的介绍,基本上了解了NHibernate,但是在NHibernate中映射关系是NHiberna ...

  9. c# 网页打印全流程

    说明:我要实现的就是将数据库中Group表的数据查找出来,替换打印模版中的内容,再将模版文件打印出来 1.准备好要打印的模版group_O_train.html <div class=" ...

  10. 201521123107 《Java程序设计》第5周学习总结

    第5周作业-继承.多态.抽象类与接口 1.本周学习总结 2.书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改 ...