您的位置:首页 > 运维架构 > 网站架构

动态网站实现假静态利用urlrewrite

2015-05-05 14:40 309 查看
URLRewirte的用处: 
1.满足搜索引擎的要求 
2.隐藏技术实现,提高网站的移植性 
3.满足美感的要求(个人感觉这个用处太牵强) 

项目部署 
1.首先在http://tuckey.org/urlrewirte/下载urlrewirtefilter 
2.解压所下载的文件,把urlrewrite-2.6.0.jar复制到项目的WebRoot/WEB-INF/lib/目录下,然后编译 
3.把urlrewrite.xml复制到项目的WebRoot/WEB-INF/目录下 
4.在web.xml文件中加入以下: 

Xml代码  


<!-- 动态地址静态化 -->  

<filter>  

  <filter-name>UrlRewriteFilter</filter-name>  

  <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>  

  <init-param>  

    <param-name>logLevel</param-name>  

    <param-value>WARN</param-value>  

  </init-param>  

</filter>  

<filter-mapping>  

  <filter-name>UrlRewriteFilter</filter-name>  

  <url-pattern>/*</url-pattern>  

</filter-mapping>  

5.需要配置urlrewrite.xml文件来实现url静态化,下面将详细说明 

到这里相关的配置已经完成,下面看如何把动态地址静态化 
1.普通url静态化 
例如:要把http://localhost/prjtest/user/list.jsp转换成http://localhost/prjtest/user/list.html 
这种是最简单的,当一个servlet跳转到list.jsp页面列出user列表时,在urlrewrite.xml中这样配置: 

Xml代码  


<rule>  

  <from>^/user/list.html</from>  

  <to>/user/list.jsp</to>  

</rule>  

当请求/user/list.html这个页面时,实际上相当于请求/user/list.jsp页面 
在servlet的跳转要这样写: 
response.sendRedirect("./user/list.html"); 
2.带参数的url静态化 
例如:要把http://localhost/prjtest/user/view.jsp?cid=1&cname=admin转换成 
       http://localhost/prjtest/user/view/1_admin.html  在urlrewrite.xml中这样配置: 

Xml代码  


<rule>  

  <from>^/user/view/([0-9]+)_([a-z]+).html$</from>  

  <to>/user/view.jsp?cid=$1&cname=$2</to>  

</rule>  

当请求/user/view/1_admin.html这个页面时,实际上相当于请求/user/list.jsp?cid=1&cname=admin页面 
在servlet的跳转要这样写(cid,cname为变量): 
response.sendRedirect("./user/view/"+ cid +"_"+ cname +".html"); 
注意:配置文件中用"&"来代替"&" 
一个通用的正则表达式:[a-zA-Z0-9]+
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐