java/jsp使用伪静态的好处在于,可以让用户访问系统时像访问一般的静态网页一般,地址栏不会出现很多奇怪的参数,在用户体验上会更加的出色。

 构建一个伪静态框架也就是简简单单的3步:1)加入jar包、2)在web.xml文件中加上伪静态的过滤器和映射机制、3)在web.xml同目录下创建一个urlrewrite.xml文件,在文件中编写伪静态规则。那么我觉得,最重要的一步就是在urlrewrite.xml文件加下面编写合适的,优质的规则。下面看看编写规则到底需要注意哪些地方?

  一个基本的规则代码片段如下:

  

<url>
                      <from>^/xxx.html</from>
                      <to>/xxx.jsp</to>
                </url>

其中from里面的url是展现给用户的伪静态页面访问地址,而to里面的Url是伪静态url所对应的真实系统页面跳转的地址。

下面是几种常见的规则:

1,单页面规则写法:(记得不要把项目名写到里面去了!)

<rule>
  <from>^/index.html</from>
  <to>/index.jsp</to>
  </rule>

  2,带一个参的URL规则写法

  把:showNews.jsp?id=参数 伪成:shownews_参数.html

 

<rule>
  <from>^/shownews_(.[0-9]*).html</from>
  <to>/showNews.jsp?id=$1</to>
  </rule>

  ()里面是正则表达式,自己去找找这方面的知识,美元符号$1的意思是匹配第一个正则表达式

  3,带两个参和多个参的URL规则写法

  把showNews.jsp?id=参1&type=参2伪成news-参1-参2.html

<rule>
  <from>^/news-(.[0-9]*)-(.[0-9]*).html</from>
  <to>/showNews.jsp?id=$1&type=$2</to>
  </rule>

  注意一点:用“&amp;”来代替”&“,多个参的url规则基本类似,依葫芦画瓢,应该能写出来!哦,还有一点,那就是jsp页面上的url的写法,href=”shownews_<%=news.getNewsID() %>.html”,如果前面加项目名的话,就再多加个”/”,JSP用urlrewrite实现伪静态就这么些步骤!

 

补充:

比如我们实际的访问地址是:http://yousite.com/entity.htm ?category=user&page=2.而我们想把它重写为http://yousite.com/entity/uesr/page_2.html。这样看起来比我们实际的要好看的多。我们就应该这样的写:

<rule>
<from>^/(\w+)/(\w+)/page_(\d+)\.html$</from>
<to type="forward">/$1.htm?category=$2&page=$3</to>
</rule>


简单的介绍一下常用的正规表示式:

代码
说明

.
匹配除换行符以外的任意字符

\w
匹配字母或数字或下划线或汉字

\s
匹配任意的空白符

\d
匹配数字

\b
匹配单词的开始或结束

^
匹配字符串的开始

$
匹配字符串的结束

常用的&amp;要用 &amp;来表示。$1,$2代表与你配置正规表达式/(\w+)/(\w+)/相对应的参数。<to type="forward">默认的是 type="forward".
另一个常用的规则就是连接外部的网站。就要用到。<to type="redirect">

<rule>
<from>^/rss/yahoo\.html$</from>
<to type="redirect"> http://add.my.yahoo.com/rss? url=http://feed.feedsky.com/MySiteFeed
</to>
</rule>