在ajax當中使用url重寫來避免url的暴露

來源:互聯網
上載者:User

標籤:使用   頁面   沒有   表示   res   建立   自己   規則   正則表達   

記得一次面試,有這樣一道面試題:
jsp頁面當中需要用到ajax的實現,此時需要調用java的url;此時的問題是如果使用者查看頁面源碼就能看到真是的url,這個問題如何避免。

說實話,AJAX我用的只是皮毛,只會用js擷取參數,然後傳遞給java應用程式,由應用程式來加工處理。如果有返回需求的話,可以以xml的方式返回資料。

自己使用的時候沒有考慮過url暴露的問題,看到這個題目,當時沒有了注意。下來想想,我自己的想到的實現方法是這樣的,就是指定自己的一套規則,然後頁面上寫的url按照規則來組織,然後傳到一個中介軟體上:這個中介軟體的功能就是解析這些url,得到最終的真實的url,然後由由這個中介軟體轉到相應的請求上去處理。

 

最近聽同學說,好像url重寫可以更好的實現,就看了一下
1.下載urlrewrite,官方:http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.zip 
2.將以下代碼添加到web.xml裡 
Xml代碼 
<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>  

3.建立一個 urlrewrite.xml
 1<?xml version="1.0" encoding="utf-8"?>
 2<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
 3    "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
 4<urlrewrite>
 5 <rule>  
        <from>^/world/(.*)$</from>  
        <to>/world.jsp?tid=$1</to>  
    </rule>  
 9</urlrewrite>

rule是url重寫規則,from是顯示出來的地址,to是映射的實際地址,$1是重寫參數,可以為多個,()裡是匹配的Regex. 

在項目中建立world.jsp,啟動tomcat,輸入 
http://localhost:8080/mysite/world/1 
mysite是你的項目名 
實際上訪問的是http://localhost:8080/mysite/world.jsp?tid=1 
這樣就簡單的實現了偽靜態效果 

在ajax當中,var url = "";這個地方寫個虛擬訪問路徑,然後將解析規則用正則表示到urlrewrite.xml當中,那麼到背景時候,就可以自動解析成真實的路徑,從而達到對url的保護。

  

在ajax當中使用url重寫來避免url的暴露

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.