接上文:远离框架,实现本身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