[ZZ]JSP、Servlet中的相对路径和绝对路径

JSP和Servlet中的绝对路径和相对路径问题困扰了我好几天,经过努力之后将其部分心得和大家共享。

前提:假设你的Http地址为http://192.168.0.1/你的web应用为webapp,那么你的web应用URL为http://192.168.0.1/webapp/

web应用的目录结构:

webapp/

web-inf/

classes/

lib/

web.xml

<servlet-mapping>

<servlet-name>handleservlet</servlet-name>

<url-pattern>/handleservlet</url-pattern>此映射是相对于当前web应用的

</servlet-mapping>

user/

a.jsp

b.jsp

images/

css/

js/



所有相对路径都是由“/”开头的。如:/image/a.gif,/user/main.jsp,大家知道在html中的相对路径是这样的:

有个html文件:a.html,其中有<link href="one.css" rel="stylesheet" type="text/css">,其中href属性表示引用的css文件的路径。

one.css:表示one.css和a.hmtl处于同一个目录

user/one.css:表示one.css处于a.html所在目录的子目录user中。

../one.css:表示one.css位于a.hmtl上一级目录下,

../../one.css:表示one.css位于a.hmtl上一级目录的上一级目录下,

./:表示和a.hmtl同一目录

我们称上述相对路径为html相对路径

1、服务器端的地址

服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的(不同于html和javascript中的相对地址,他们是由客户端浏览器解析的)也就是说这时候在jsp和servlet中的相对地址应该是相对于你的web应用,即相对于http://192.168.0.1/webapp/的。

其用到的地方有:

forwarder:servlet中的request.getRequestDispatcher(address);这个address是在服务器端解析的,所以,你要forwarder到a.jsp应该这么写:request.getRequestDispatcher(“/user/a.jsp”)这个/相对于当前的web应用webapp,其绝对地址就是:http://192.168.0.1/webapp/user/a.jsp。

sendRedirect:在jsp中<%response.sendRedirect("/rtccp/user/a.jsp");%>

2、客户端的地址

所有的html中的相对地址都是相对于http://192.168.0.1/的,而不是http://192.168.0.1/webapp/的。

Html中的form表单的action属性的地址应该是相对于http://192.168.0.1/的,所以,如果提交到a.jsp为:action=”/webapp/user/a.jsp”;提交到servlet为action=”/webapp/handleservlet”

Javascript也是在客户端解析的,所以其相对路径和form表单一样。

3、站点根目录和css路径问题

我们称类似这样的相对路径/webapp/….为相对于站点根目录的相对路径。

当在jsp中引入css时,如果其相对路径相对于当前jsp文件的,而在一个和这个jsp的路径不一样的servlet中forwarder这个jsp时,就会发现这个css样式根本没有起作用。这是因为在servlet中转发时css的路径就是相对于这个servlet的相对路径而非jsp的路径了。所以这时候不能在jsp中用这样的路径:<link href="one.css" rel="stylesheet" type="text/css">或者<link href="../../one.css" rel="stylesheet" type="text/css">类似href="one.css"和../../one.css的html相对路径是相对于引用这个css的文件的相对路径。而在servlet中转发时就是相对于这个servlet的相对路径了,因为jsp路径和servlet路径是不一样的,所以这样的引用肯定是出错的。

所以这个时候,要用站点根目录,就是相对于http://192.168.0.1/的目录,以“/”开头。

因此上述错误应更正为href=”/webapp/one.css”类似的站点根目录的相对目录。这样在servlet转发后和jsp中都是相对于站点根目录的相对路径,就能正确使用所定义的css样式了。

平均得分
(0 次评分)





文章来自: 互联网
标签: css A servlet 路径 相对 
评论: 3 | 查看次数: 732
  • 共有 3 条评论
游客 [2008-09-25 00:40:06]
国庆节十一

机票,深圳机票0755-88866618
http://www.szpiaopiao.cn
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票
机票  
机票
飞机票
深圳特价机票
深圳特价机票
深圳打折机票
深圳打折机票
深圳飞机票查询
深圳飞机票查询
深圳国际机票
深圳国际机票
深圳机票
深圳机票
深圳到北京机票
深圳到北京机票
深圳到上海机票
深圳到上海机票
深圳到成都机票
深圳到成都机票
深圳到重庆机票
深圳到重庆机票
深圳到哈尔滨机票
深圳到哈尔滨机票
深圳到南昌机票
深圳到南昌机票
深圳到福州机票
深圳到福州机票
深圳到三亚机票
深圳到三亚机票
深圳到桂林机票
深圳到桂林机票
深圳到贵阳机票
深圳到贵阳机票
深圳到海口机票
深圳到海口机票
深圳到合肥机票
深圳到合肥机票
深圳到昆明机票
深圳到昆明机票
深圳到济南机票
深圳到济南机票
深圳到乌鲁木齐机票
深圳到乌鲁木齐机票
深圳到太原机票
深圳到太原机票
深圳到西安机票
深圳到西安机票
深圳到沈阳机票
深圳到沈阳机票
深圳到长春机票
深圳到长春机票
深圳到兰州机票
深圳到兰州机票
深圳到大连机票
深圳到大连机票
深圳到郑州机票
深圳到郑州机票
深圳到呼和浩特机票
深圳到呼和浩特机票
深圳到天津机票
深圳到天津机票
深圳到重庆特价机票
深圳到长春特价机票
深圳到哈尔滨特价机票
深圳到沈阳特价机票
深圳到昆明特价机票
深圳到西安特价机票
深圳到北京特价机票
深圳到太原特价机票
深圳到上海特价机票
深圳到武汉特价机票
深圳到成都特价机票
深圳到石家庄特价机票
深圳到呼和浩特特价机票
深圳到兰州特价机票
深圳到合肥特价机票
深圳到乌鲁木齐特价机票
深圳到郑州飞机票
深圳到大连飞机票
深圳到北京飞机票
深圳到北京飞机票
游客 [2008-09-16 14:41:17]
游客 [2008-09-04 12:53:35]
  • 共有 3 条评论
发表评论
昵 称:  登录
内 容:
选 项:
字数限制 1000 字 | UBB代码 开启 | [img]标签 开启