使用jquery的ajax进行异步交互(json格式)

来源:互联网 发布:国际关系学院知乎 编辑:程序博客网 时间:2024/05/16 02:02

jsp代码:即form表单

<form action="">                <table align="center">                    <tr><td>用户名:</td><td><input type="text" name="username" id="id1"><span id="msg1"></td></tr>                    <tr><td>密码:</td><td><input type="password" name="password" id="id2"><span id="msg2"></td></tr>                    <tr><td><a href="GoodsServlet?method=list"><input id="sub" type="button" value="登录"></a></td><td><input type="reset" value="重置"></td></tr>                    <tr><td><a href="page/zhuce.jsp"><p>点击注册</p></a></td></tr>                </table>            </form>

js代码:
注意:需要引入jquery文件:

<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<script type="text/javascript">        $(function(){            $("#id1").blur(function(){                if($('#id1').val()==""){                    alert("请输入用户名");                }else{                //使用ajax方法                    $.ajax({                    //具体的java代码所在的servlet                           url:"UserAjaxServlet",                        //传输方式                        type:"post",                        //从jsp页面上,传到servlet的数据,可以多个,用逗号隔开.                        data:{username:$("#id1").val()                        },                        //传输数据的格式,此处用到的是json格式,当然接收到的来自servlet的数据也需要是json格式的                        dataType:"json",                        //传输成功返回的方法,参数为ajax内部的msg                        success:function(msg){//具体的从servlet传来的数据,第一个msg是ajax的,第二个是自己定义的                            $("#msg1").text(msg.msg);                        },                     });                }            });    });

servlet,后台代码:

protected void doGet(HttpServletRequest request,            HttpServletResponse response) throws ServletException, IOException {        JSONObject j = new JSONObject();        request.setCharacterEncoding("utf-8");        response.setCharacterEncoding("utf-8");        response.setContentType("text/html;charset=UTF-8");        PrintWriter out = response.getWriter();        //拿到从前台通过ajax传过来的数据        String username = request.getParameter("username");        String password = request.getParameter("password");        //sql语句        String sql = "select username from t_user";        if (username != null && password == null) {            try {                Connection conn = CreateConnection.getConnection();                     Statement sta = conn.createStatement();                ResultSet set = sta.executeQuery(sql);                boolean flag = true;                while (set.next()) {                    System.out.println(set.getString("username"));                    //判断从前台来的username是否和从数据库中查到的数据匹配?                    if (username.equals(set.getString("username"))) {                        //匹配到,flag为true,并且跳出循环                        flag = true;                        break;                    } else {                        flag = false;                    }                }                //通过flag的值对前台发送信息                if (flag) {                    //匹配成功,调用JSONObject的对象,设置要传到前台的值                    j.put("msg", "合法");                    //写出                    out.write(j.toString());                } else {                    j.put("msg", "该用户不存在");                    out.write(j.toString());                }                conn.close();            } catch (SQLException e) {                e.printStackTrace();            }        }

在servlet中,因为要到了json数据,所以引入了一个jar包,

import net.sf.json.JSONObject;

其他的都还好.没什么难点,主要掌握ajax中的传向servlet数据的方法,以及servlet传回ajax的数据,也就是前台的数据.

0 0