posts - 35,  comments - 7,  trackbacks - 0
关于网站开发中连接的可移植性总结

网络主机地址http://localhost:
8080/

1. 相对于根目录的连接,形如: "/another.jsp"
 
 /DIR/目录下的
 <a href
="/another.jsp">Link</a>
 <html:link href
="/another.jsp">Link</html:link>
 <html:link page
="/another.jsp">Link</html:link> 
 在默认ROOT应用中
,分别连接到地址:
 http://localhost:
8080/another.jsp
 http://localhost:
8080/another.jsp
 http://localhost:
8080/another.jsp 
 在应用test中
,分别连接到地址:
 http://localhost:
8080/another.jsp
 http://localhost:
8080/another.jsp
 http://localhost:
8080/test/another.jsp 
 
2. 相对于当前目录的连接,形如: "./another.jsp" 或 "another.jsp"
 
 /DIR/目录下的
 <a href
="./another.jsp">Link</a> 
 <html:link href
="./another.jsp">Link</html:link>
 <html:link page
="./another.jsp">Link</html:link> 
 在默认ROOT应用中
,都分别连接到地址:
 http://localhost:
8080//DIR/another.jsp
 http://localhost:
8080//DIR/another.jsp
 http://localhost:
8080//DIR/another.jsp  
 在应用test中
,分别连接到地址:
 http://localhost:
8080//DIR/another.jsp
 http://localhost:
8080//DIR/another.jsp
 http://localhost:
8080/test./another.jsp   错误连接(而且与DIR无关,都连接到此地址)
  
 /DIR/目录下的
 <a href
="another.jsp">Link</a> 
 <html:link href
="another.jsp">Link</html:link> 
 <html:link page
="another.jsp">Link</html:link> 
 在默认ROOT应用中
,都分别连接到地址:
 http://localhost:
8080//DIR/another.jsp
 http://localhost:
8080//DIR/another.jsp
 http://localhost:
8080//DIR/another.jsp   
 在应用test中
,分别连接到地址:
 http://localhost:
8080//DIR/another.jsp
 http://localhost:
8080//DIR/another.jsp
 http://localhost:
8080/testanother.jsp       错误连接(而且与DIR无关,都连接到此地址)
 
3总结
 由于在网站开发时经常不使用默认的WEB应用,而可能把一个模块开发成一个WEb应用(可能多人合作),
 但是在发布的时候要把所有模块发布为一个WEB应用,并通常是默认的WEB应用,为了使URL不依赖于Web应用
 和是否是默认WEB应用,建议如下
  a.对于相对于WEB应用根目录的连接
,形如: "/another.jsp"
    使用<html:link page
="/..">Link </html:link>
  b.对于相对于当前目录的连接,形如: 
"./another.jsp" 或 "another.jsp"
    使用<html:link href
="./another.jsp">Link </html:link>
        <a href
="./another.jsp">Link </a>或        
        <html:link href
="another.jsp">Link </html:link>
        <a href
="another.jsp">Link </a>
    不要使用<html:link page
="./another.jsp">Link </html:link>
            <html:link page
="another.jsp">Link </html:link> 此二者不可移植
  c.建议使用struts的html标签库<html:link..标签,因为当用户关闭Cookie时会自动重写URL,所以概括
    两句话:相对应用根目录用<html:link page
="/.."  
            相对当前的目录用<html:link href
="./XXXXX.jsp"   或 <html:link href="XXXXX.jsp"  
 
 
4.补充
  还有一个标签<html:link forward
="forwardname"> Link </html:link> 上面没有提到,现做以说明。
  
  forward属性和struts配置文件<global-forwards>中的一个<forward>元素匹配,不能和<action>中<forward>匹配。
  
  例子:<global-forwards>
         <forward name
="forwardname" path="//another.jsp"/>
       </global-forwards>
       
       <html:link forward
="forwardname"> Link </html:link>
       相当于<html:link page
="//another.jsp"> Link </html:link>
  需要注意的是:<global-forwards>中<forward>的path要使用相对于WEB应用的根目录路径,包括<action>中也是。
  
  在struts1.1多应用模块时<html:link forwad. 有时不好使,不知道为什么????(好像是模块切换状态
  不对)所以最好不用。
  替代方法;
  网页中用连接
    <html:link page
="/forwardaction.do">forward</html:link>
  在action-mapping配置如下action
     <action  path
="/forwardaction"  forward="/index.jsp" />
  
posted on 2006-02-06 20:58 java小记 阅读(207) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 

<2006年2月>
2930311234
567891011
12131415161718
19202122232425
2627281234
567891011

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜