Believe it,do it!

          Ideal is the beacon. Without ideal, there is no secure direction; without direction ,there is no life.
          理想是指路明燈。沒有理想,就沒有堅定的方向;沒有方向,就沒有生活。
          CTRL+T eclipse
          posts - 35, comments - 3, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          JSP使用URLRewirte實現url地址偽靜態化

          Posted on 2008-09-27 16:20 三羽 閱讀(1970) 評論(1)  編輯  收藏 所屬分類: 收 藏 夾

          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文件中加入以下:

           1<!-- 動態地址靜態化 -->  
           2<filter>  
           3  <filter-name>UrlRewriteFilter</filter-name>  
           4  <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>  
           5  <init-param>  
           6    <param-name>logLevel</param-name>  
           7    <param-value>WARN</param-value>  
           8  </init-param>  
           9</filter>  
          10<filter-mapping>  
          11  <filter-name>UrlRewriteFilter</filter-name>  
          12  <url-pattern>/*</url-pattern>  
          13</filter-mapping>  
          14

          5.需要配置urlrewrite.xml文件來實現url靜態化,下面將詳細說明

          到這里相關的配置已經完成,下面看如何把動態地址靜態化
          1.普通url靜態化
          例如:要把http://localhost/prjtest/user/list.jsp轉換成http://localhost/prjtest/user/list.html
          這種是最簡單的,當一個servlet跳轉到list.jsp頁面列出user列表時,在urlrewrite.xml中這樣配置:
          1<rule>  
          2  <from>^/user/list.html</from>  
          3  <to type="redirect">/user/list.jsp</to>  
          4</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中這樣配置:
          1<rule>  
          2  <from>^/user/view/([0-9]+)_([a-z]+).html$</from>  
          3  <to type="redirect">/user/view.jsp?cid=$1&cname=$2</to>  
          4</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]+

          特別說明
          為什么地址欄不變?
          原因就在于瀏覽器顯示的是最后被給定的URL。當一個URL被提交后,在某一個組件返回一個相應給瀏覽器之前,你的應用可能轉發請求多次。所有這些都發生在服務器端,瀏覽器并不知道發生了什么事。當一個Http相應被放回時,它并沒有包含地址信息,所以瀏覽器僅僅顯示用來作為初始請求的地址。

          要想讓地址欄也變成靜態化的URL,很簡單,將<to type="redirect">改成<to type="forward">即可

          評論

          # re: JSP使用URLRewirte實現url地址偽靜態化  回復  更多評論   

          2014-08-08 10:53 by 秦莞爾v
          恩恩額吧
          主站蜘蛛池模板: 北辰区| 甘洛县| 宝清县| 浦江县| 柳河县| 商丘市| 西乡县| 南昌市| 嘉祥县| 民权县| 宁阳县| 定陶县| 罗定市| 札达县| 贵阳市| 松滋市| 周口市| 益阳市| 芜湖市| 汤原县| 额济纳旗| 建瓯市| 读书| 永兴县| 北川| 祁东县| 体育| 贵州省| 香港| 赤峰市| 九寨沟县| 曲阳县| 鹿邑县| 新津县| 文成县| 靖西县| 定结县| 黄骅市| 涟水县| 沿河| 台东县|