对Java Web项目中路径的理解
第一个:文件分隔符
坑比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项目中路径的理解的更多相关文章
- JAVA WEB项目中各种路径的获取
JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报 分类: JAVA开发(41) 1.可以在s ...
- Java Web项目中连接Access数据库的配置方法
本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...
- linux 下用renameTo方法修改java web项目中文件夹名称问题
经测试,在Linux环境中安装tomcat,然后启动其中的项目,在项目中使用java.io.File.renameTo(File dest)方法可行. 之前在本地运行代码可以修改,然后传到Linux服 ...
- Java Web项目中缺少Java EE 6 Libraries怎么添加
Java Web项目中缺少Java EE 6 Libraries怎么添加 具体步骤如下: 1.项目名称上点击鼠标右键,选择"Build Path-->Configure Build P ...
- java web 项目中 简单定时器实现 Timer
java web 项目中 简单定时器实现 Timer 标签: Java定时器 2016-01-14 17:28 7070人阅读 评论(0) 收藏 举报 分类: JAVA(24) 版权声明:本文为博 ...
- java web项目中打开资源文件中文乱码
1 java web项目中经常使用多模块管理.在某一个模块中添加了一些资源文件.但不是启动项目.有时候需要在程序中读取资源文件内容,打包后放到容器中就不能正常运行了.需要将所有资源文件放到启动项目的 ...
- 在java web项目中编写自己的代码生成器
在java web项目中编写自己的代码生成器
- Java Web 开发中路径相关问题小结
Java Web开发中路径问题小结 (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 Eclipse中目录结构如图2所示: 图2 那么针对这个站点的几个基本概 ...
- 在Java web项目中防止用户注销后使用浏览器中的“后退”按钮返回注销前页面
一背景 公司安全整改, 要求:系统中对于关键业务操作应确保使用浏览器"后退"功能无法回到上一步操作界面. 提供:凭证提供所有被检查系统关键业务操作后回退视频,视频显示关键业务操作后 ...
随机推荐
- Varnish后端主机的健康状态检查
author:JevonWei 版权声明:原创作品 配置后端主机的Health Check 环境 Varnish 192.168.198.139 图片服务端 192.168.198.120 程序服务端 ...
- Scala中柯里化函数
高阶函数转一阶函数: val add1 = (x: Int) => x + 5 def add2(x: Int)(y: Int) = x + y //传入一个参数转换为一阶函数 def add3 ...
- 关于JS正则——你知道多少?
正则表达式 1. 使用正则 创建正则表达式有两种方式,一种是以字面量方式创建,另一种是使用RegExp构造函数来创建. var expression = / pattern / flags; var ...
- Color.js增强你对颜色的控制
往逝之因 不要低头,皇冠会掉... 可你又没有皇冠 Color.js 增强你对颜色的控制 阅读目录 轻松管理颜色--color.js库 使用color.js Accessor Methods 你该知 ...
- Java运算符和流程控制
1 运算符 1.1 比较运算符 比较运算符的结果都是boolean类型,也即是要么是true,要么是false. 比较运算符"=="不能写成"=". > ...
- MySQL (九)-- 代码执行结构、函数、存储过程
1 代码执行结构 代码执行结构有三种:顺序结构.分支结构和循环结构. 1.1 分支结构 分支结构:实现准备多个代码块,按照条件选择性执行某段代码. 在MySQL中只有if分支. 基本语法 if 条件判 ...
- Alpha个人总结
一.我的问题: 1.第一章1.2.1 在软件的特殊性中说到,"大型软件有超过数百万行的源代码,上万个不同的文件,而软件工程师通常一次只能看到30-80行源代码,他们的智力.记忆力和常人差不多 ...
- 201521123106 《Java程序设计》第9周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 书面作业 本次PTA作业题集异常 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前 ...
- 201521123081《Java程序设计》 第10周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 参考资料:XMind 2. 书面作业 本次PTA作业题集异常.多线程. Q1. finally 题目4-2 ...
- 控制结构(3) 状态机(state machine)
// 上一篇:卫语句(guard clause) // 下一篇:局部化(localization) 基于语言提供的基本控制结构,更好地组织和表达程序,需要良好的控制结构. 前情回顾 上次分析了guar ...