浏览器中AJAX请求的地址
Servlet 3.1
我们现在使用 eclipse直接建立动态网页工程一般都支持Servlet 3.1。Servlet 3.1 支持使用注解来设置自己的地址。
@WebServlet(
description = "用来处理用户登陆",
urlPatterns = {
"/LoginServlet",
"/Servlet/LoginServlet"
},
initParams = {
@WebInitParam(name = "userName", value = "NULL", description = "用户名"),
@WebInitParam(name = "password", value = "NULL", description = "密码"),
@WebInitParam(name = "nickName", value = "新用户", description = "用户昵称"),
})
如上所示,其中urlPatterns
便是支持设置Servlet的地址,此处地址为相对工程的地址。
例如:服务器为http://localhost:8080
工程名为Test
则完整的地址为
http://localhost:8080/Test/LoginServlet
http://localhost:8080/Test/Servlet/LoginServlet
在AJAX中如何设置地址呢
AJAX中设置地址分为绝对地址和相对地址
和大家通常的思维不同的是!!
var request = new XMLHttpRequest(); // 请求器
request.open("post","/Servlet/LoginServlet",true); // 设置绝对地址
//实际访问地址为 http://localhost:8080/Servlet/LoginServlet
request.open("post","Servlet/LoginServlet",true); // 设置绝对地址
//实际访问地址为 http://localhost:8080/Test/Servlet/LoginServlet
因为这个小问题,我走了不少弯路,这里的路径和程序员通常的思维是不同的。而且,HTTP的路径分隔符和我们程序中的分割符也是不同的,大家从服务器向网页传参的时候记得转变下分隔符。
例如:网页上传了一张图片,服务器需要将路径返回。图片在服务器中的相对路径是\user\pic\a.jpg
但是传回网页后,这个链接就不能用,必须先转换为user/pic/a.jpg
才可以使用。