Webとappの共通インタフェース
これまでずっとwebの練習をして、パラメータを受信して、結果を返して、ページをジャンプするなどservletの方法の中でやっていましたが、問題はありません.しかし、appアクセスの言い訳を考えると、必ずいくつかの変更が必要です.まず、受信パラメータについて、appはUrl方式で私のインタフェースに要求を出して、彼が伝送する必要がある情報:インタフェースアドレス、メソッド名、パラメータ、もし任意に以前のrequestに従うならば.getParameter("*")は通用しないに違いありません.パラメータが多いと大変なことになると思います.そこでインタフェースにjson文字列を受信させます(もちろんパラメータが非常に簡単な場合はアドレスの後に直接パラメータを渡すこともできます)を選択します.同じように、結果をクライアントに返すと、以前のようにセッションやリクエストに入れられず、あなたのセッションにアクセスできないので、同じように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(" !");
}
});