如何使用session.setAttribute()或set参数将数据从ajax success()函数传递到下一页?我不想在网址上显示值



我正在开发一个登录函数,通过将json对象传递给servlet进行验证。如果登录名/密码与DB匹配。页面将重定向到具有登录ID和相应配置文件的主页。如果登录失败,则重定向到错误页面。这里是我的编码:

jsp:
function submitForm(thisObj, thisEvent) {
var sLogin = $('#userName').val();
var sPwd = $('#userPwd').val();
var myData = {
"userName": sLogin, 
"userPwd": sPwd
};

$.ajax({
type: "POST",
url: "login",
data:  JSON.stringify(myData),
dataType: "json",
success: function(result){
if (result.status == "SUCCESS"){
setAttribute("ID", result.requestId);
}
}
});
return false;
}
servlet:
public class login extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
res.setContentType("application/json");
PrintWriter out = res.getWriter();
StringBuffer sbuffer = new StringBuffer();
String inLine = null;
String sUsername  = "", sUserPwd = "";
try{
BufferedReader reader = req.getReader();
while ((inLine = reader.readLine()) != null)
sbuffer.append(inLine);
if (sbuffer.length() != 0){
JSONObject jsObj = new JSONObject(sbuffer.toString());
sUsername        = jsObj.optString("userName");
sUserPwd         = jsObj.optString("userPwd");
}
}catch(Exception e){
out.print("error");
return;
}
if (sUsername == "userA") {
JSONObject jsonSResp =  new JSONObject();
jsonResp.put("status", "SUCCESS");
jsonResp.put("requestId", "1");
jsonResp.put("url", "LoginOK.jsp");
out.println(jsonResp.toString());
}
}    

servlet可以获得用户输入的登录名/密码并执行验证。并将结果返回给ajax。接下来,我想使用setsession.setAttribute((方法将数据从ajax成功函数传递到新页面,但不起作用。有人能提示我解决这样的问题吗?谢谢

我认为您需要使用"rd.forward(req,res(";rd.include(req,res("在这种情况下。

实际上,如果登录名/密码与mysql数据库匹配,我只想返回一个带有用户配置文件的成功页面(作为json对象(,以进行后续操作,或者返回登录失败页面以进行无效登录。但我真的不知道我的编码出了什么问题。

相关内容

  • 没有找到相关文章

最新更新