ajax異步處理時,如何在JS中獲取從Servlet或者Action中session,request


ssh項目中,我需要登陸某個頁面(如a.jsp),通過onblur()鼠標失去焦點后來觸發js函數(函數是ajax請求)請求到相應的action,處理完成后將數據存放到session對象里面,然后在a.jsp中用el表達式獲取想要的數據。可是問題來了,不知道為什么在打開瀏覽器第一次登錄a頁面時,a頁面不會顯示想要的數據,刷新后就有數據了,之后也正常。

后來查詢了各種博客,各種網上的一些說法,最后總結出了自己的一套思路,僅供參考.

以下是在Action中 根據用戶id查詢出用戶信息

........ 一些屬性省了......

public String checkUser() throws Exception{
HttpServletResponse response=ServletActionContext.getResponse();
PrintWriter out = response.getWriter();
Map<String, Object> session = ActionContext.getContext().getSession();
if(session.get("user")!=null){
session.clear();
}
Users user= usersDAO.findById(users.getUserId());
if(user==null){
out.println(1);
}
else{
session.put("user", user);
out.println(2);
}
//很重要,如果忘記不寫,在ajax返回語句中會執行最后一個語句
out.flush();
out.close();
return "borrowBook";
}

..........struts2的語句在這里也省了.....

<script>

function checkUser(txt) {
if(txt.value=="") {alert("借書者的編號必須填寫!");}
else{
var userid=$("#userId").val();
$.post("/LibrarySysterm/u_checkUser.action", {
userId:userid
},function(data){
debugger;
if(data==1){
alert("此用戶不存在,需要輸入相關信息");

}else{

$("#userId").val("${user.userId}");
$("#userName").val("${user.userName}");
$("#tel").val("${user.tel}");
window.location.href="borrowBook.jsp";//此句話是讓這個頁面執行刷新的語句,這時候如果輸入了一個userId后就會自動填充剩下的空白信息
}

});
}

}

</script>

jsp里的form表單里的語句在這里也省了.....

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM