urlrewrite和Struts2的生成伪静态页面
<filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter </filter-class> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
?
添加struts2 filter的参数:?
<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>*.action</url-pattern><dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> </filter-mapping>
?
?
所有的规则配置都写在urlrewrite.xml中。?
<rule> <from></from> <to type="forward></to></rule>
?<from></from> 写上你自己定义的访问地址,<to type="forward></to>就是实际的访问地址。比如我们实际的访问地址是: /entity.htm ?category=user&page=2.而我们想把它重写为/entity/uesr /page_2.html。这样看起来比我们实际的要好看的多。我们就应该这样的写:?
<rule> <from>^/(\w+)/(\w+)/page_(\d+)\.html$</from> <to type="forward">/$1.htm?category=$2&page=$3</to></rule>
?
urlrewrite.xml ? ? ? jsp->html ? ? action->html
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" "http://tuckey.org/res/dtds/urlrewrite2.6.dtd"><!-- Configuration file for UrlRewriteFilter http://tuckey.org/urlrewrite/ --><urlrewrite><rule><from>^/jsp/(.*).html$</from><to>/jsp/$1.jsp</to></rule><!-- <rule><from>^/jsp/emailMan.html</from><to>/jsp/emailMan.jsp</to></rule> --><rule><from>/icsslogin.html</from><to>/icsslogin.jsp</to></rule></urlrewrite>
将jsp页面内的所有*.jsp替换成*.html。
这样,进入网站首页后,鼠标触碰<a>标记时,浏览器左下角显示的是*.html,然而实际上访问的是*.jsp或者*.action。
?
?
简单的介绍一下常用的正规表示式:
?
代码
说明
?
.
匹配除换行符以外的任意字符
\w
匹配字母或数字或下划线或汉字
\s
匹配任意的空白符
\d
匹配数字
\b
匹配单词的开始或结束
^
匹配字符串的开始
$
匹配字符串的结束
?
常用的&要用 &来表示。$1,$2代表与你配置正规表达式/(\w+)/(\w+)/相对应的参数。<to type="forward">默认的是 type="forward".