zoukankan      html  css  js  c++  java
  • JSON学习(三)

    案例:

      * 校验注册用户名是否存在

       在注册页面,填写完用户名且该栏失去焦点时,前端会进行ajax传输该内容与后台数据库进行比对,

       若数据库中没有该用户名,则用户栏后显示“用户名可用”,反之,则显示"此用户名太受欢迎,请更换一个"

    如:

    注册页面:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>注册页面</title>
        <script src="js/jquery-3.3.1.min.js"></script>
        <script>
            //在页面加载完成后
            $(function () {
               //给username绑定blur(失去焦点)事件
           ‘    $("#username").blur(function () {
                   //获取username文本输入框的值
                   var username = $(this).val();
                   //发送ajax请求
                   //期望服务器响应回的数据格式:{"userExsit":true,"msg":"此用户名太受欢迎,请更换一个"}
                   //                         {"userExsit":false,"msg":"用户名可用"}
                   $.get("findUserServlet",{username:username},function (data) {
                       //判断userExsit键的值是否是true
                       // alert(data);
                       var span = $("#s_username");
                       if(data.userExsit){
                           //用户名存在
                           span.css("color","red");
                           span.html(data.msg);
                       }else{
                           //用户名不存在
                           span.css("color","green");
                           span.html(data.msg);
                       }
                   });
    
               }); 
            });
        </script>
    </head>
    <body>
        <form>
            <input type="text" id="username" name="username" placeholder="请输入用户名">
            <span id="s_username"></span>
            <br>
            <input type="password" name="password" placeholder="请输入密码"><br>
            <input type="submit" value="注册"><br>
        </form>
    
    </body>
    </html>

    findUserServlet:

    import com.fasterxml.jackson.databind.ObjectMapper;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    
    @WebServlet("/findUserServlet")
    public class FindUserServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //1.获取用户名
            String username = request.getParameter("username");
    
            //2.调用service层判断用户名是否存在
            //期望服务器响应回的数据格式:{"userExsit":true,"msg":"此用户名太受欢迎,请更换一个"}
            //                         {"userExsit":false,"msg":"用户名可用"}
            //设置响应的数据格式为json
            response.setContentType("application/json;charset=utf-8");
    Map
    <String,Object> map = new HashMap<String,Object>();      //这里就不进行数据库查询了,假定是和“tom”比对 if("tom".equals(username)){ //存在 map.put("userExsit",true); map.put("msg","此用户名太受欢迎,请更换一个"); }else{ //不存在 map.put("userExsit",false); map.put("msg","用户名可用"); } //将map转为json,并且传递给客户端 //将map转为json ObjectMapper mapper = new ObjectMapper(); //并且传递给客户端 mapper.writeValue(response.getWriter(),map); } }

    需要注意的是:

      服务器响应的数据,在客户端使用时,要想当做json数据格式使用。有两种解决方案:

        1. $.get(type):将最后一个参数type指定为"json"
        2. 在服务器端设置MIME类型
          response.setContentType("application/json;charset=utf-8");

  • 相关阅读:
    编程语言的进化
    面向对象
    面向对象oop
    .NET——内存分配
    使用IIS承载WCF服务
    .NET代码生成器ASP.NET Factory 开放所有源代码下载
    SyntaxHighlighter
    写代码的三重境界
    Wijmo jQuery 插件集
    给vs2012换肤
  • 原文地址:https://www.cnblogs.com/churujianghudezai/p/11909338.html
Copyright © 2011-2022 走看看