远离框架,实现自己REST风格的Servlet框架(三)

接上文:远离框架,实现自己REST风格的Servlet框架(二)一个ajax的url在相对路径下提交会产生拼接后的路径,以下是解决办法,如果有更好的办法希望大家指教,拜谢。

针对ajax提交路径的解析:
当一个请求过来的时候,在filter中有如下代码:


Enumeration header = req.getHeaderNames();  

内容如下:


   === 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在进行我们的操作。

你可能感兴趣的:(servlet,REST,大连,好基有,有木有)