接上文:遠離框架,實現本身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