王汪汪同学 2016-06-21 09:18 采纳率: 60%
浏览 1609
已采纳

$.ajax()+servlet登陆的问题,我真的很想弄懂它

html

 <input type="text" name="username" id="username"/>**用户名输入框**
<input type="button" class="buttontype2" id="login" value="登录" onclick="checkUser();" />**这是一个登陆按钮,触发checkUser()方法**

js:

 function checkUser(){
            var username = $("#username").val();
            var password = $("#password").val();
            $.ajax({
                type: "post",
                url: "logincheck",
                data: "username"+username+"password"+password,
                success: function(data){
                    username = "<%=Session("username")%>";
                    alert(username);
                }

            });
        }
        **js部分,因为我才刚刚接触!弄不懂,我只知道,这个$.ajax()方法会向服务器提交username和password,然后servlet与数据库进行处理**

#   servlet
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html");
        response.setCharacterEncoding("utf-8");
        PrintWriter out = response.getWriter();

        String un = request.getParameter("username");
        String pd = request.getParameter("password");

        userCheck uc = new userCheck();
        String res = uc.getUser(un,pd);

        if(!res.equals("userwrong") && !res.equals("passwordwrong"))
        {
            request.getSession().setAttribute("username", res);
        }
    **获得的验证的username保存到session中**

    大神能不能和我详细说一下$.ajax()这个方法,怎么发送数据到服务器,还有怎么在这个方法里取回服务器的数据(username)
  • 写回答

6条回答 默认 最新

  • ren7wei 2016-06-21 10:10
    关注

    首先解释下。 session是 服务端执行的。success是在浏览器端执行的。所以你直接在success里面取session的值是没用的。
    整个的执行过程是 浏览器$AJAX发起请求->Web容器收到请求,响应->浏览器接收到响应数据。执行success
    响应数据在success:function(data){} 的data里面。
    要给前台响应数据你需要用response进行响应。

                        response.setContentType("application/json; charset=utf-8");
            response.setCharacterEncoding("utf-8");
            response.getWriter().write(json);
            response.getWriter().flush();
            response.getWriter().close();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!