- 浏览: 604019 次
- 性别:
- 来自: 太原
文章分类
- 全部博客 (240)
- 程序员数学/线性代数(Linear Algebra) (2)
- 程序员数学/微积分(Calculus) (6)
- 机器学习(Machine Learning) (5)
- JAVA SE (63)
- JAVA EE (14)
- 数据库技术 (26)
- struts (4)
- 软件设计/设计模式 (0)
- ibatis (2)
- XML (4)
- 领域建模 (0)
- 数据资源共享 (1)
- 软件工程 (11)
- 技术以外 (6)
- 面向对象 (2)
- 科学数据共享 (1)
- 资源 (7)
- WEB2.0 (11)
- 电子商务 (10)
- 算法、数据结构、数学 (10)
- LAMP (1)
- 杂谈 (12)
- C语言 (7)
- 程序设计思想 (3)
- 读书和笔记 (1)
- 生活 健身 养生 (5)
- WEB UI (2)
- eclipse (2)
- 项目管理 (7)
- oracle (5)
- linux (1)
- webGIS (6)
最新评论
-
TimePower:
OK~终于明白了~~
参数(parameter)和属性(Attribute)的区别 -
OnTheRoad_lee:
不错,正式我想要的东西,一直不明白序列化是什么?有什么用?至此 ...
我对Java Serializable(序列化)的理解和总结 -
EchoZhouYou:
好久不上这,找这本书时发现这一篇,特意登录来赞一下
《程序设计语言——实践之路》读后感 -
yong7356:
学习一下Serializable
我对Java Serializable(序列化)的理解和总结 -
dengjm_2012:
写得不错!
我对Java Serializable(序列化)的理解和总结
用Java开发Web应用时,无论是Jsp页面、Servlet或是web.xml配置文件中都涉及到路径的问题,而这又是初学者较容易混淆的地方,往往不知道如何写路径。其实服务器端和客户端在处理路径的方式上不一致,因此需要根据不同的情况写出正确的路径。下面通过例子来说明。
假设Web应用road中,应用的根路径下有一个dir1文件夹和dir2文件夹。c.jsp在dir1中,a.jsp和b.jsp在dir2中。Web应用的结构如图所示。
+ root
-dir1
c.jsp
-dir2
a.jsp
b.jsp
××总结××
../的方式是容易出一些问题。。
我现在开发就是用你说的方法,不容易出错
假设Web应用road中,应用的根路径下有一个dir1文件夹和dir2文件夹。c.jsp在dir1中,a.jsp和b.jsp在dir2中。Web应用的结构如图所示。
+ root
-dir1
c.jsp
-dir2
a.jsp
b.jsp
- JSP页面中正确的路径表示 假设在a.jsp页面中有两个链接,分别链接到b.jsp和c.jsp页面。
- 直接写路径表示和页面在同一个文件夹下面,如<a href="b.jsp">b.jsp</a>
- "../"表示当前文件夹的上一级文件夹(相对路径),如: <a href="../dir2/b.jsp">b.jsp</a>,
- "/"表示 http://机器IP:8080(绝对路径),如: <a href="/road/dir2/b.jsp">b.jsp</a>
- Servlet中正确的路径表示
- 转发请求时:"/"表示“http://服务器IP:8080/Web应用名”,例如: String forward = "/dir1/c.jsp";
- 重定向时:“/” 表示“http://机器IP:8080”,而通过request.getContextPath()得到的是:“http://机器IP:8080/Web应用名”,例如: String str = request.getContextPath();
- 配置文件web.xml中 url-mapping中,"/"表示“http://IP地址:8080/Web应用名”
<a href="../dir1/c.jsp">c.jsp</a>
<a href="/road/dir1/c.jsp">c.jsp</a>
RequestDispatcher rd = request.getQRequestDispatcher(forward);
response.sendRedirect(str + "/dir1/c.jsp");
××总结××
- 在浏览器端:“/”表示的是一台WEB服务器,“http://机器IP:8080”
- 在服务器端(请求转发):“/”表示的是一个WEB服务器端的应用,“http://机器IP:8080/Web应用”
- 在服务器端(重定向):“/”表示的是一个WEB服务器,“http://机器IP:8080”
评论
15 楼
wangking717
2010-10-29
<div class="quote_title">smallsnake 写道</div>
<div class="quote_div">
<div class="quote_title">ch_space 写道</div>
<div class="quote_div">建议去掉什么新手贴选项,只留下精华选项,由大家投票产生。</div>
<p>这个也行??<br>不过,统一采用</p>
<ol style="background-color: #ccffff;">
<li><span style="background-color: #ffffff; color: #000000;"><%</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> String path = request.getContextPath();</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> String basePath = request.getScheme() + "://"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> + request.getServerName() + ":" + request.getServerPort()</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> + path + "/";</span></li>
<li><span style="background-color: #ffffff; color: #000000;">%></span></li>
<li><span style="background-color: #ffffff; color: #000000;"><%@ include file="/common/commontag.jsp"%></span></li>
<li><span style="background-color: #ffffff; color: #000000;"><html></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <head></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <link rel="stylesheet" type="text/css"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> href="<%=basePath%>common/calendar/jquery.datepick.css"></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <script type="text/javascript"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> src="<%=basePath%>common/js/jquery-1.3.2.js"></script></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <script type="text/javascript"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> src="<%=basePath%>common/calendar/jquery.datepick.js"></script></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <script type="text/javascript"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> src="<%=basePath%>common/calendar/jquery.datepick-zh-CN.js"></script></span></li>
</ol>
<p> </p>
</div>
<p>这样写累不哦。</p>
<pre name="code" class="java"><%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
所有资源文件路径相对于basePath
</body>
</html></pre>
<div class="quote_div">
<div class="quote_title">ch_space 写道</div>
<div class="quote_div">建议去掉什么新手贴选项,只留下精华选项,由大家投票产生。</div>
<p>这个也行??<br>不过,统一采用</p>
<ol style="background-color: #ccffff;">
<li><span style="background-color: #ffffff; color: #000000;"><%</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> String path = request.getContextPath();</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> String basePath = request.getScheme() + "://"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> + request.getServerName() + ":" + request.getServerPort()</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> + path + "/";</span></li>
<li><span style="background-color: #ffffff; color: #000000;">%></span></li>
<li><span style="background-color: #ffffff; color: #000000;"><%@ include file="/common/commontag.jsp"%></span></li>
<li><span style="background-color: #ffffff; color: #000000;"><html></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <head></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <link rel="stylesheet" type="text/css"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> href="<%=basePath%>common/calendar/jquery.datepick.css"></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <script type="text/javascript"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> src="<%=basePath%>common/js/jquery-1.3.2.js"></script></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <script type="text/javascript"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> src="<%=basePath%>common/calendar/jquery.datepick.js"></script></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <script type="text/javascript"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> src="<%=basePath%>common/calendar/jquery.datepick-zh-CN.js"></script></span></li>
</ol>
<p> </p>
</div>
<p>这样写累不哦。</p>
<pre name="code" class="java"><%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
所有资源文件路径相对于basePath
</body>
</html></pre>
14 楼
mercyblitz
2010-07-23
楼主没有考虑Context path自定义,和虚拟目录的情况。
13 楼
joliny
2010-07-23
用base标签不就可以了。
12 楼
matychen
2010-07-23
theskyofsky 写道
head.jsp
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<script>var z_ctx = "${ctx}";</script>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<script>var z_ctx = "${ctx}";</script>
11 楼
smallsnake
2010-07-23
<div class="quote_title">ch_space 写道</div>
<div class="quote_div">建议去掉什么新手贴选项,只留下精华选项,由大家投票产生。</div>
<p>这个也行??<br>不过,统一采用</p>
<ol style="background-color: #ccffff;">
<li><span style="background-color: #ffffff; color: #000000;"><%</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> String path = request.getContextPath();</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> String basePath = request.getScheme() + "://"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> + request.getServerName() + ":" + request.getServerPort()</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> + path + "/";</span></li>
<li><span style="background-color: #ffffff; color: #000000;">%></span></li>
<li><span style="background-color: #ffffff; color: #000000;"><%@ include file="/common/commontag.jsp"%></span></li>
<li><span style="background-color: #ffffff; color: #000000;"><html></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <head></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <link rel="stylesheet" type="text/css"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> href="<%=basePath%>common/calendar/jquery.datepick.css"></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <script type="text/javascript"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> src="<%=basePath%>common/js/jquery-1.3.2.js"></script></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <script type="text/javascript"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> src="<%=basePath%>common/calendar/jquery.datepick.js"></script></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <script type="text/javascript"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> src="<%=basePath%>common/calendar/jquery.datepick-zh-CN.js"></script></span></li>
</ol>
<p> </p>
<div class="quote_div">建议去掉什么新手贴选项,只留下精华选项,由大家投票产生。</div>
<p>这个也行??<br>不过,统一采用</p>
<ol style="background-color: #ccffff;">
<li><span style="background-color: #ffffff; color: #000000;"><%</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> String path = request.getContextPath();</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> String basePath = request.getScheme() + "://"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> + request.getServerName() + ":" + request.getServerPort()</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> + path + "/";</span></li>
<li><span style="background-color: #ffffff; color: #000000;">%></span></li>
<li><span style="background-color: #ffffff; color: #000000;"><%@ include file="/common/commontag.jsp"%></span></li>
<li><span style="background-color: #ffffff; color: #000000;"><html></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <head></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <link rel="stylesheet" type="text/css"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> href="<%=basePath%>common/calendar/jquery.datepick.css"></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <script type="text/javascript"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> src="<%=basePath%>common/js/jquery-1.3.2.js"></script></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <script type="text/javascript"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> src="<%=basePath%>common/calendar/jquery.datepick.js"></script></span></li>
<li><span style="background-color: #ffffff; color: #000000;"> <script type="text/javascript"</span></li>
<li><span style="background-color: #ffffff; color: #000000;"> src="<%=basePath%>common/calendar/jquery.datepick-zh-CN.js"></script></span></li>
</ol>
<p> </p>
10 楼
ch_space
2010-07-23
建议去掉什么新手贴选项,只留下精华选项,由大家投票产生。
9 楼
ch_space
2010-07-23
其实总结的很好,有些人做了几年了都没彻底搞清楚。JE的投票太那个了,新手贴也是人家辛辛苦苦总结出来的,干嘛要减分?真是不厚道。。。
8 楼
bingki
2010-07-23
恩,getContextPath 我确实不知道!
7 楼
smiky
2010-07-23
我想这些问题真的就这么简单吗,这么多投新手贴的,你们很牛B吗?
我想很多人在servlet中或是请求转发的时候不用getContextPath估计不知道怎么写
我想很多人在servlet中或是请求转发的时候不用getContextPath估计不知道怎么写
6 楼
笑我痴狂
2010-07-22
只要知道服务器跳转和客户端跳转的根路径即可
其他的问题就都可以解决了
注意的是服务器跳转不可以使用相对路径 , 但有些时候又可以 ,确实是个头痛的问题
其他的问题就都可以解决了
注意的是服务器跳转不可以使用相对路径 , 但有些时候又可以 ,确实是个头痛的问题
5 楼
francis.xjl
2010-07-22
我更倾向于均使用绝对路径“/b/a/c.jsp”,不知道这样有没有什么弊端?
4 楼
zhao103804
2010-07-22
ywlqi 写道
不管在哪个目录下,我要求组员<%=request.getContextPath()%>/dir1/c.jsp,这样写路径,css js 图片 超链,都一样,../的方式容易搞错
../的方式是容易出一些问题。。
我现在开发就是用你说的方法,不容易出错
3 楼
theskyofsky
2010-07-22
head.jsp
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<script>var z_ctx = "${ctx}";</script>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<script>var z_ctx = "${ctx}";</script>
2 楼
APieceOfRedCloth
2010-07-22
<a href="/root/dir2/b.jsp">b.jsp</a>
<a href="/root/dir1/c.jsp">c.jsp</a>?
<a href="/root/dir1/c.jsp">c.jsp</a>?
1 楼
ywlqi
2010-07-22
不管在哪个目录下,我要求组员<%=request.getContextPath()%>/dir1/c.jsp,这样写路径,css js 图片 超链,都一样,../的方式容易搞错
发表评论
-
JSP页面首次执行经历3次编码
2017-03-20 21:36 874JSP页面首次执行的经历的3次编码 -
JSP Tag文件总结
2017-03-19 18:14 2297Tag文件是<jsp:include>替代技术 ... -
JSP开发常见问题
2017-03-15 18:15 7851、JSP页面可以包含哪些元素? HTML标签:< ... -
tomcat项目重复加载问题
2017-03-02 16:53 0如果仔细观察tomcat启动过程,你会发现server.xm ... -
Tomcat下域名配置及相关事项
2017-03-02 16:17 447当我们开发完一个web ... -
tomcat中java.lang.OutOfMemoryError: PermGen space异常处理
2017-01-04 16:24 8031、什么是PermGen space及作用 ... -
字符从浏览器到数据库过程的转换
2011-05-03 17:48 2719尽管开发些web程序,但 ... -
参数(parameter)和属性(Attribute)的区别
2011-04-18 14:34 16072在JAVA WEB开发中经常遇到获取请求参数的值和在reque ... -
cookie学习总结
2011-04-02 18:22 2377从以下几个方面总结 cookie的概念 cookie的使用场 ... -
Struts的Token机制解决表单重复提交
2011-02-26 13:58 0Struts 的Token(令牌)机制能够很好的解决表单重复提 ... -
请求转发(Forward)和重定向(Redirect)之间区别与联系
2010-03-30 15:05 5189一个比喻: 小张向小李发送一次请求,想让他完成某项工作,当小李 ... -
The taglib validator rejected the page 问题的解决
2009-03-15 23:01 2021问题: 在weblogic8.1,windows ... -
session的理解
2008-08-25 10:59 1515HTTP协议(http://www.w3.org/Protoc ... -
JAVA Web开发中 JSP隐式对象
2008-08-24 17:25 1723JAVA Web开发中 JSP隐式对象 方法: 1. voi ... -
jsp传递中文参数、空格以及表单内容换行问题解决小结
2007-09-28 12:21 4203一、地址传递参数中文/空格问题 举例说明: Strin ...
相关推荐
java_web开发中的路径问题
java_web开发中的路径问题.pdf
java_web开发中的路径问题定义.pdf
java_web开发中的路径问题借鉴.pdf
大家在做Javaweb开始时,有没有遇到路径匹配不对,各种蛋疼的问题,本人特从网上找的关于javaweb开发中各种路径匹配问题,在这贡献给大家。
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
主要介绍了Java Web开发之访问路径问题,较为详细的分析了java web开发过程中常见的绝对路径与相对路径使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
如何在java中获取文件的绝对路径,以及在java web开发中得到文件的绝对路径。
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》介绍了Web开发中客户端技术的基础知识,包括JavaScript、CSS、AJAX等,这些技术都是Web应用中常用的客户端技术。 《Java Web开发技术大全:JSP+...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、...
第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、...
java web项目开发的源码,里面附带mysql数据库。 具体开发工具 tomcat+Mysql+Myeclopse. 自己只需打开数据库,修改下路径配置就OK.
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、...
开发web工程时经常要获取工程的根目录,自己用Java实现的获取Tomcat下war包部署的Web工程根目录路径的方法,主要利用web工程默认的目录结构,此外也可以指定工程名称获取工程目录的绝对路径
《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》介绍了Web开发中客户端技术的基础知识,包括JavaScript、CSS、AJAX等,这些技术都是Web应用中常用的客户端技术。 《Java Web开发技术大全:JSP+...
客户端路径是由客户端浏览器发起请求的路径,例如图片路径、超链接路径、表单提交地址、背景图路径、链接js文件的路径,链接CSS文件的路径。简单点理解就是html文件里可以使用的各种路径。重定向路径也是客户端路径...