java 伪静态学习

 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&amp;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&amp;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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值