Struts学习(七):说说相对路径
2007-08-06 14:45
162 查看
从刚开始接触Tomcat开始,就被繁杂的相对路径给弄晕了,尽管最后每次都能正确的匹配上,但是总觉得不是很顺畅,一直试图找出一条匹配的规则出来,但是每每总结出一条来的时候,总是又被新的“事实”给颠覆,让人不胜烦恼,因此决定有一点写一点。
通常相对路径的写法有两种,一种就是以“/”开头,一种就是不以“/”开头,这两种写法有什么区别呢,下面举例阐述一下。
现在的Web环境是一个Struts2的应用,我的应用名是Struts,应用程序所在的目录名也是Struts。这样我的url基本是以http://localhost/Struts开头的啦。现在做如下测试:
1.在Struts目录下面有一个文件叫sayHello.jsp,它里面的form的action的值是HelloWorld.action,那么提交之后匹配的路径是http://localhost/Struts/HelloWorld.action。
2.如果action的值是test/HelloWorld.action,那么提交之后匹配的路径是http://localhost/Struts/test/HelloWorld.action。
3.假设在Struts目录下面有一个子目录add,它里面有一个文件叫sayHello.jsp,它里面的form的action的值是HelloWorld.action,那么提交之后匹配的路径是http://localhost/Struts/add/HelloWorld.action。
4.在测试3下将action的值改为test/HelloWorld.action,那么提交之后匹配的路径是http://localhost/Struts/add/test/HelloWorld.action。
5.在测试3下将action的值改为/HelloWorld.action,那么提交之后匹配的路径是http://localhost/Struts/ HelloWorld.action。
6.在测试3下将action的值改为/test/HelloWorld.action,那么提交之后匹配的路径是http://localhost/Struts/ test/HelloWorld.action。
总结:在页面文件中,所请求的相对路径为path,那么它的路径匹配是从文件当前所在的目录开始的,假设页面文件当前所在目录为curr,那么匹配后的完整路径就是http://localhost/Sturts/curr/path;如果相对路径为/aa/bb/cc,那么匹配后的路径就是http://localhost/Sturts/path。也就是说,如果以“/”开头,就从当前应用的根目录开始匹配,如果不以“/”开头就从当前文件所在的目录开始匹配。这样的话,如果文件本来就在根目录下面,那么加“/”和不加“/”就没啥区别了。
在Struts2还一个要匹配路径的地方就是在处理完请求之后对页面进行分发的时候,也就是result元素里面的内容。测试记录如下:
1.<result>/HelloWorld.jsp</result>。匹配的路径是http://localhost/Struts/HelloWorld.jsp。
2.<result>HelloWorld.jsp</result>。这个时候就和调用这个action的路径相关了。可以这样进行匹配,首先得到请求这个action的url,然后去掉最后一个“/”后面的内容,再把HelloWorld.jsp接上去即可。例如,我们是通过http://localhost/Struts/aa//bb/cc/HelloWorld.action调用的action,那么匹配出来的url就是http://localhost/Struts/aa//bb/cc/HelloWorld.jsp。
通常相对路径的写法有两种,一种就是以“/”开头,一种就是不以“/”开头,这两种写法有什么区别呢,下面举例阐述一下。
现在的Web环境是一个Struts2的应用,我的应用名是Struts,应用程序所在的目录名也是Struts。这样我的url基本是以http://localhost/Struts开头的啦。现在做如下测试:
1.在Struts目录下面有一个文件叫sayHello.jsp,它里面的form的action的值是HelloWorld.action,那么提交之后匹配的路径是http://localhost/Struts/HelloWorld.action。
2.如果action的值是test/HelloWorld.action,那么提交之后匹配的路径是http://localhost/Struts/test/HelloWorld.action。
3.假设在Struts目录下面有一个子目录add,它里面有一个文件叫sayHello.jsp,它里面的form的action的值是HelloWorld.action,那么提交之后匹配的路径是http://localhost/Struts/add/HelloWorld.action。
4.在测试3下将action的值改为test/HelloWorld.action,那么提交之后匹配的路径是http://localhost/Struts/add/test/HelloWorld.action。
5.在测试3下将action的值改为/HelloWorld.action,那么提交之后匹配的路径是http://localhost/Struts/ HelloWorld.action。
6.在测试3下将action的值改为/test/HelloWorld.action,那么提交之后匹配的路径是http://localhost/Struts/ test/HelloWorld.action。
总结:在页面文件中,所请求的相对路径为path,那么它的路径匹配是从文件当前所在的目录开始的,假设页面文件当前所在目录为curr,那么匹配后的完整路径就是http://localhost/Sturts/curr/path;如果相对路径为/aa/bb/cc,那么匹配后的路径就是http://localhost/Sturts/path。也就是说,如果以“/”开头,就从当前应用的根目录开始匹配,如果不以“/”开头就从当前文件所在的目录开始匹配。这样的话,如果文件本来就在根目录下面,那么加“/”和不加“/”就没啥区别了。
在Struts2还一个要匹配路径的地方就是在处理完请求之后对页面进行分发的时候,也就是result元素里面的内容。测试记录如下:
1.<result>/HelloWorld.jsp</result>。匹配的路径是http://localhost/Struts/HelloWorld.jsp。
2.<result>HelloWorld.jsp</result>。这个时候就和调用这个action的路径相关了。可以这样进行匹配,首先得到请求这个action的url,然后去掉最后一个“/”后面的内容,再把HelloWorld.jsp接上去即可。例如,我们是通过http://localhost/Struts/aa//bb/cc/HelloWorld.action调用的action,那么匹配出来的url就是http://localhost/Struts/aa//bb/cc/HelloWorld.jsp。
相关文章推荐
- Struts学习(七):说说相对路径
- Linux学习之绝对路径与相对路径
- 深入浅出学习Struts1框架(二):重构MVC模式代码中跳转路径和业务逻辑
- struts中log4j日志文件的相对路径配置实例分析
- linux学习相对路径与绝对路径
- struts 学习路径
- Linux学习资料-绝对路径与相对路径
- 深入浅出学习Struts1框架(二):重构MVC模式代码中跳转路径和业务逻辑
- Struts2说说相对路径
- 【Linux学习】Linux文件系统2—linux常用目录结构、绝对路径、相对路径
- [原创]java WEB学习笔记35:java WEB 中关于绝对路径 和相对路径问题
- linux学习相对路径与绝对路径
- Opencv学习笔记-----FilePath的相对路径设置方法
- 关于j2ee中相对路径、绝对路径的学习总结
- Java_Web开发之绝对路径与相对路径(学习笔记)
- linux学习(六)绝对路径、相对路径、cd、mkdir、rmdir、rm
- Linux学习- 相对路径以及一些命令20180409
- struts/Servlet,action转到jsp后,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)
- 【Python学习】Python写爬虫时用到的相对路径和绝对路径--urljoin
- struts2下,jsp视图页面中CSS和javascript引用相对路径和绝对路径问题。