- 浏览: 613006 次
- 性别:
- 来自: 太原
文章分类
- 全部博客 (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 957JSP页面首次执行的经历的3次编码 -
JSP Tag文件总结
2017-03-19 18:14 2349Tag文件是<jsp:include>替代技术 ... -
JSP开发常见问题
2017-03-15 18:15 8241、JSP页面可以包含哪些元素? HTML标签:< ... -
tomcat项目重复加载问题
2017-03-02 16:53 0如果仔细观察tomcat启动过程,你会发现server.xm ... -
Tomcat下域名配置及相关事项
2017-03-02 16:17 481当我们开发完一个web ... -
tomcat中java.lang.OutOfMemoryError: PermGen space异常处理
2017-01-04 16:24 8301、什么是PermGen space及作用 ... -
字符从浏览器到数据库过程的转换
2011-05-03 17:48 2764尽管开发些web程序,但 ... -
参数(parameter)和属性(Attribute)的区别
2011-04-18 14:34 16166在JAVA WEB开发中经常遇到获取请求参数的值和在reque ... -
cookie学习总结
2011-04-02 18:22 2422从以下几个方面总结 cookie的概念 cookie的使用场 ... -
Struts的Token机制解决表单重复提交
2011-02-26 13:58 0Struts 的Token(令牌)机制能够很好的解决表单重复提 ... -
请求转发(Forward)和重定向(Redirect)之间区别与联系
2010-03-30 15:05 5221一个比喻: 小张向小李发送一次请求,想让他完成某项工作,当小李 ... -
The taglib validator rejected the page 问题的解决
2009-03-15 23:01 2060问题: 在weblogic8.1,windows ... -
session的理解
2008-08-25 10:59 1545HTTP协议(http://www.w3.org/Protoc ... -
JAVA Web开发中 JSP隐式对象
2008-08-24 17:25 1754JAVA Web开发中 JSP隐式对象 方法: 1. voi ... -
jsp传递中文参数、空格以及表单内容换行问题解决小结
2007-09-28 12:21 4253一、地址传递参数中文/空格问题 举例说明: Strin ...
相关推荐
在Java Web开发中,理解和掌握相对路径与绝对路径的运用是至关重要的,因为这直接影响到资源定位、页面跳转以及文件读写等操作的正确性。以下是对Java Web中相对路径与绝对路径问题的深入总结: ### 一、路径概念与...
在Java Web开发中,路径问题是一个常见的挑战,尤其是在处理JSP页面、Servlet以及web.xml配置文件时。理解和正确使用路径对于构建稳定、高效的应用程序至关重要。以下是对标题和描述中提及的知识点的深入探讨。 ###...
### Java(Web)中相对路径与绝对路径问题总结 #### 基本概念理解 在Java Web开发中,路径的概念非常重要,因为它们直接影响到资源的加载和处理。路径分为两种类型:绝对路径和相对路径。 **绝对路径**是指文件或...
这本书涵盖了从基础到高级的多个主题,旨在提供一个完整的Java Web开发学习路径。 在Java Web开发的世界里,基础知识至关重要。书中的内容可能包括但不限于以下几个方面: 1. **Java编程基础**:首先,读者需要对...
正确理解和使用这些路径处理方法对于Java Web开发至关重要,因为它们直接影响到资源的定位、文件操作以及网络请求的正确性。开发者应尽量避免使用像`.`, `./`, `../`这样的相对路径,以免因文件移动导致问题。在可能...
在Java Web开发中,获取WEB-INF目录或者更广泛的WEBROOT(Web应用的根目录)的物理路径是一项常见的需求。这通常涉及到服务器环境变量、Servlet API的使用以及对Web应用部署结构的理解。以下将详细讲解如何在Java中...
要在 Eclipse 中配置 Tomcat,需要点击 Eclipse 工具栏中的 Windows,然后找到 Preferences,接着找到 Tomcat 在 Tomcat version 中选择 Tomcat 的安装版本,然后在 Tomcat 的安装路径中选择 Tomcat 的安装目录。...
在Java Web开发中,路径问题经常困扰着开发者,特别是初学者。理解路径的不同类型和使用场景至关重要,因为它们决定了资源的定位和访问方式。以下将详细介绍Java Web中涉及的路径类型以及在JSP、Servlet和`web.xml`...
在Java Web开发中,Tomcat是一个至关重要的组件。它是一个开源的、轻量级的应用服务器,主要用于执行Java Servlets和JavaServer Pages(JSP)。Tomcat以其小巧、高效和易于配置的特点,成为许多开发者首选的Java Web...
特别是在 Java Web 项目中,获取路径变得更加复杂。下面我们将详细讨论 Java 项目中获取路径的方法和注意事项。 获取相对路径 在 Java 项目中,获取相对路径可以使用 `getResource` 方法。这个方法可以返回当前类...
在Java Web开发中,路径问题往往困扰着许多开发者,尤其是在处理资源定位、文件读取以及配置文件加载等场景时。本文将深入解析Java Web中所有路径问题的解决方法,涵盖Servlet、Action、Controller、Filter、...
Java Web开发环境的安装与配置 Java Web 开发环境的安装与配置是 Java Web 开发应用的基础。它包括 JDK、Tomcat 和 MyEclipse 等软件的安装与配置。下面是详细的安装与配置过程: 1. JDK 的安装与配置 JDK 是 ...
【JAVA_Web开发教程】 Java Web开发是将Java编程语言应用于构建互联网应用程序的过程。这个教程主要面向初学者...这不仅是理论知识的积累,更是实践技能的提升,有助于学员在未来的职业生涯中胜任Java Web开发的工作。
总之,Java Web开发中的路径问题涉及多个层面,理解并正确使用这些路径表示方式对于编写高效、无误的代码至关重要。在实际项目中,开发人员需要根据不同的场景灵活运用绝对路径和相对路径,确保Web应用的正常运行。
第四章 "JSP技术基础知识" 讲解了Java Server Pages,它是Java Web开发中的一个重要组件。JSP允许开发者在HTML页面中嵌入Java代码,实现动态网页。学习者将了解到JSP指令、脚本元素、表达式以及自定义标签的使用,...
在Java Web开发中,模型通常由JavaBeans或POJO(Plain Old Java Objects)组成,它们封装了应用程序的数据和业务逻辑。模型层与数据库交互,获取和更新数据,并通过控制器向视图提供必要的信息。 **视图(View)** ...
【Java学习笔记】JavaWeb开发中常见问题总结 在JavaWeb开发中,开发者经常会遇到各种问题,这些问题涵盖从基础语法到高级设计模式的各个方面。以下是一些关键知识点的概述: 1. **Java基础知识**: - **Classpath...
通过以上介绍,我们可以看到,在Java开发中,无论是Web开发还是普通的Java应用程序开发,获取路径都是一个非常重要且实用的功能。掌握这些方法,可以帮助开发者更好地管理项目中的文件路径,提高程序的灵活性和可...
6. **总结分析Web开发中的字符乱码问题**: 字符乱码主要由于编码格式不一致导致,尤其是在HTTP请求和响应、文件读写、数据库存储等环节。确保统一的字符编码(如UTF-8),并在必要时进行编码转换,如在Servlet中...
Java Web开发中的路径问题是一个常见的困惑点,尤其是在JSP页面、Servlet以及web.xml配置文件中。理解路径的正确表示方式至关重要,因为它们决定了资源的访问和处理方式。 首先,我们来了解一下基本概念。绝对路径...