遠離框架,實現本身REST風格的Servlet框架(三)

接上文:遠離框架,實現本身REST風格的Servlet框架(二)一個ajax的url在相對路徑下提交會產生拼接後的路徑,如下是解決辦法,若是有更好的辦法但願你們指教,拜謝。javascript

針對ajax提交路徑的解析:
當一個請求過來的時候,在filter中有以下代碼:java

<!-- lang: java -->
Enumeration header = req.getHeaderNames();

內容以下:ajax

<!-- lang: java -->
   === MimeHeaders ===
<!-- lang: java -->
host = localhost:8080
<!-- lang: java -->
connection = keep-alive
<!-- lang: java -->
content-length = 0
<!-- lang: java -->
accept = application/json, text/javascript, */*; q=0.01
<!-- lang: java -->
origin = http://localhost:8080
<!-- lang: java -->
x-requested-with = XMLHttpRequest
<!-- lang: java -->
user-agent = Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22
<!-- lang: java -->
referer = http://localhost:8080/myCMIS/Test1Controller/init/123/456
<!-- lang: java -->
accept-encoding = gzip,deflate,sdch
<!-- lang: java -->
accept-language = zh-CN,zh;q=0.8
<!-- lang: java -->
accept-charset = GBK,utf-8;q=0.7,*;q=0.3
<!-- lang: java -->
cookie = JSESSIONID=F6811EE2B38E04B0BB8D683F274EBB31  

能夠看出其中**x-requested-with = XMLHttpRequest**能夠判斷是不是ajax方法

accept = application/json, text/javascript, /; q=0.01能夠斷定請求什麼數據類型
referer = http://localhost:8080/myCMIS/Test1Controller/init/123/456能夠看出原先的url是什麼
這樣咱們就能夠生成本身想要的url,方法就是取得當前的url,在取得header中referer除去origin後的url,倆個url再進行截取,最後會變成/Test1Controller/testJson的url在進行咱們的操做。json

相關文章
相關標籤/搜索