Tag Archives: tomcat

关于Web路径的备忘

在处理Web页上一大堆连接的时候,常常被一些相对路径搞得很迷糊,现在整理一下,当作是提醒备忘。其实,很简单,只是老是不记住。呵 通常我们遇到的相对路径会有下面三种情况,下面一一来举例说明。 一、以”/”为首字母的路径,其完整路径将会是主机名加上该路径名 <a href=”/article/index.html”>article</a>实际指向:http://hostname/article/index.html 二、无斜杠开头的路径,其完整路径将会是当前的URL的上一级路径加上该路径名 <a href=”article/index.html”>article</a>,如果当前你访问的页面地址为http://hostname/book/list.html 则,这个连接将去到http://hostname/book/article/index.html 三、以一到N个.加斜杠开头的路径,其实整路径将会是当前的URL的上一级至N级路径加上该路径名,第二种情况是这种情况的特殊例子 <a href=”./article/index.html”>article</a>,如果当前你访问的页面地址为http://hostname/book/list.html 则,这个连接将去到http://hostname/book/article/index.html <a href=”../article/index.html”>article</a>,如果当前你访问的页面地址为http://hostname/book/list.html 则,这个连接将去到http://hostname/article/index.html

Posted in 技术 | Tagged , , | Leave a comment

在Tomcat中配置应用Context的一些差异与注意事项

使用的是Struts框 架:1,用””作应用的DocBase,这时该应用的相对路径是从整个URL倒数第一个”/”开始的,这时在页面中写相对路径的时候注意要在前面加上”/”,如:http:/login.do。在系统看来”/login.do”是相对路径,面应用的当前位置是在http://localhost/admin下面。 2、用”/”作DocBase的时候,应用的相对路径是从整个URL顺数第一个”/”之后开始,这时在页面构造相对路径的时候不要在前面加了”/”,如:http:/login.do。在系统看来,admin/login.do才是相对路径,如果把第一种情况的相对路径对应到这种情况上来,会出现http://localhost//login.do的情况。所以在配置工程的Context的时候因该认真考虑路径的问题。 这是个教训,以后在团队开发的时候一定要统一使用相同的配置。上面两种情况看起来相当,但是在调试的过程中导致了大量的路径的错误。 3、类似的配置是DocBase后面以””结束的,和第1种情况相仿,DocBase后面以”/”结束的,和第二种情况相仿。 4、两种配置的优缺点比较: 在工程中,常常会用到客户标签来构造一些URL,工程中Struts的Action通常会带有很长的名字和多个”/”分割符,如果使用””这种情况的配置,在构造URL的时候会产生混乱。比如说我们的Context本是http://localhost,有一个Action是这样的/admin/login.do,这时完整的路径就会是http:/login.do,如果页面中产生一个请求,是请求/admin/viewUser.do的话,浏览器会把完整的路径解释为:http:/admin/login.do,这就跟我们的用意相违背了,发生了错误。而使用”/”作为Bastpath的情况,就可以避免这种情况的出现,但是这种情况在Struts框架下的表单中构造完整路径的时候会产生严重的错误,可以认为是Struts的一个Bug,通过修改源码问题得以解决。 而””作为DocBase的问题解决方法也很简单,我们可以在请求中取得所配置的Context直接手动构造完整的路径,不交给浏览器去解释,可以避免出错。

Posted in 技术 | Tagged , , | Leave a comment