您的位置:首页 > 移动开发

web 与 app 共用接口

2016-07-04 10:22 253 查看
之前一直做web 的练习,接收参数,返回结果,跳转页面等都在servlet的方法里面干了,没有什么问题。但是考虑到如果app访问借口,肯定需要做一些改动。

首先,接收参数方面,app用Url的方式向我的接口发出请求,他需要传送的信息:接口地址,方法名,参数,如果任然按照以前request.getParameter(“*“)肯定是行不通的,试想倘若参数很多那会造成很大的麻烦。于是让接口接收json字符串(当然在参数非常简单的情况下也可以直接跟在地址后传参),然后解析出自己想要的参数。

同理,如果是返回结果给客户端,肯定不能像以前一样放session或者request里,人家又访问不到你的session~所以同样以json字符串的形式输出到客户端。

问题来了,页面跳转是肯定不能再写在servlet里了,因为在向客户端返回json字符串事实际上是返回了一个页面文档。

于是乎,把接收参数,取返回结果,跳转页面,都交给JS做吧,借助jquery的ajax方法,其实非常简单,最简单的做法,只需要设置好请求地址,返回值类型,请求参数,回调方法就可以了,如下:

字体变大

$.ajax({
type : "post",
url : "UserServlet?method=login",
async : false,
data : {
data:jsonStr,
},
cache : false,
dataType : "text",
success : function(msg) {
//alert(msg);
if(msg=="success")
{
alert("login success!");
//window.location.href="NoticeServlet?method=getAllNotice";
goIndex();
}
else {
alert("login failed!");
//window.location.href="NoticeServlet?method=getAllNotice";
}
// alert("ajax()");
/*if (!msg.pswfailure) {
var url = host + ws + "/test1.action";
window.location = url;
}
else {
$("#pwdErr").html("密码错误");
passwordFocus();
$("#password").attr("value", "");
$("#password").focus().select();
}*/
},
error : function(msg) {
alert("网络错误!");
//$("#unameErr").html("网络错误!");
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: