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

相关文章
相关标签/搜索