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


記得一次面試,有這樣一道面試題:
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是重寫參數,可以為多個,()里是匹配的正則表達式. 

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

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

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM