zoukankan      html  css  js  c++  java
  • 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表单里的语句在这里也省了.....

  • 相关阅读:
    hdu 1166 敌兵布阵
    linux(debian)系统django配远程连接sqlserver数据库
    [机器学习] Coursera ML笔记
    UICollectionView使用方法补充(照片轮播墙)
    word中公式的排版及标题列表
    FZOJ2110: Star
    Windows 下的 Makefile 编写
    掌握VS2010调试 -- 入门指南
    Visual Studio 2010初学者的调试指南:Mastering Debugging in Visual Studio 2010
    AlphaGo:用机器学习技术古老的围棋游戏掌握AlphaGo: Mastering the ancient game of Go with Machine Learning
  • 原文地址:https://www.cnblogs.com/zhangliang88/p/5440782.html
Copyright © 2011-2022 走看看