最近小弟研究了一下struts2.1.6与URLrewrite的结合,纵观整个WEB项目而言,毫无疑问urlrewrite是对网址的重写,在SSH中也只有struts2.1.6与网址打交道了,struts2.1.6在MVC中主要作用还是承担的是Control的作用.当然还需要在WEB.xml里面配置一下映射路径.
urlrewrite最新的稳定是urlrewrite-2.6.0.jar,开源JAR包到http://tuckey.org/urlrewrite/#download下载.小弟提倡所有的JAR最好到官网去下,不要用IDE工具提供的(如Myeclipse,因为它提供的JAR有问题.struts1.2的JAR就有问题.一直到Myeclispe7也没有纠正这个问题,所以各个框架的官网上的才是最可信的.)
下面大致的说下它们是如何结合的.小弟的项目后台框架是struts2.1.6+Springs.5+Hibernate3.3,前台用到了Jquery,关于编码的问题,最好使用Spring2.5的过滤器,而且一定要放在最前面,这个在前面已经说过了,在这里不啰嗦.
1,基于urlrewrite和struts2.1.6它们截取网址的原理,在web.xml采用以下的配置:
下面是struts2.1.6的配置(重要)
2,urlrewrite还需要一个XML文件,名字urlrewrite.xml,它用来告诉哪些文件需要转重写成什么网址,它是基于正则来实现的.
这个文件可以到开源里面拷贝,把原来的删掉,加上自己的代码,(把DTD给留下).这个文件放在WEIN-INF和web.xml同级目录.
如上例子,from中的正则以^开头和$结尾这个是显示在地址栏里面的,这样严格一点.to是真正要访问的网址,它们是一一对应的,$1,表示的是第一个正则.
注意:网址中的&要用&进行转义,(在XML文件中出现这个字符的时候都要进行转义).
以上就是小弟使用urlrewrite+SSH的心得和体会,如果有更好的方法,欢迎大家讨论和探究一下..
正品推荐,欢迎大家到我的博客里面看下我的心得,期待与同行好友的技术交流