首页 > 编程语言 >json转java以及校验用户名是否存在

json转java以及校验用户名是否存在

时间:2023-02-09 16:26:22浏览次数:36  
标签:username map 用户名 java 校验 json msg ObjectMapper

json转java

步骤:

  1.导入jackson相关jar包

  2.创建Jackson核心对象 ObjectMapper

  3.调用ObjectMapper的相关方法进行转换

    1.readValue( json字符串数据,Class )

    //json转java
    @Test
    public void test5() throws Exception {
        //1.初始化JSON字符串
        String json = "{\"gender\":\"男\",\"name\":\"张三\",\"age\":\"20\"}";
        //2.创建一个ObjectMapper对象
        ObjectMapper mapper = new ObjectMapper();
        //3.转换为java对象 Person对象
        Person person = mapper.readValue(json, Person.class);
        System.out.println(person);// Person{name='张三', age=20, gender='男', birthday=null}
    }

 

 

案例-校验用户名是否存在

 服务器响应的数据,在客户端使用时,要想当做json数据格式使用

  1.$.get ( type ):将最后一个参数type指定为" json "

  2.在服务器设置MIME类型

    resp.setContentType("application/json;charset=utf-8");

案例实现:

regist.html:

<!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文本输入框的值
                let username = $(this).val();
                //发送ajax请求
                //期望服务器响应回的数据格式:{"userExsit":true,"msg":此用户太受欢迎,请更换一个}
                //                       {"userExsit":false,"msg":用户名可用}
                $.get("findUserServlet", {username: username}, function (data) {

                        //判断userExsit键的值是否是true
                        let span = $("s_username");
                        if (data.userExsit) {
                            //用户名存在
                            span.css("color","red")
                            span.html(data.msg);
                        } else {
                            //用户名不存在
                            span.css("color","green")
                            span.html(data.msg);
                        }
                    },"json");// 响应格式

            });
        });
    </script>
</head>
<body>

        <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="注册">

</body>
</html>

 

FindUserServlet:

package com.example.servlet;

import com.fasterxml.jackson.databind.ObjectMapper;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.HashMap;

@WebServlet(name = "findUserServlet", value = "/findUserServlet")
public class FindUserServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {


        //1.获取用户名
        String username = req.getParameter("username");

        //2.调用service层判断用户名是否存在
        //期望服务器响应回的数据格式:{"userExsit":true,"msg":此用户太受欢迎,请更换一个}
        //                       {"userExsit":false,"msg":用户名可用}

        //设置编码
//        resp.setContentType("text/html;charset=utf-8");
        resp.setContentType("application/json;charset=utf-8");
        HashMap<String, Object> map = new HashMap<>();
        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(resp.getWriter(), map);

    }
}

 

标签:username,map,用户名,java,校验,json,msg,ObjectMapper
From: https://www.cnblogs.com/qihaokuan/p/17105659.html

相关文章

  • Spring41 - 数据校验 Validation
    数据校验:ValidationSpringValidation概述在开发中,我们经常遇到参数校验的需求,比如用户注册的时候,要校验用户名不能为空、用户名长度不超过20个字符、手机号是合法的手......
  • Spring45 - 自定义校验
    实现自定义校验第一步自定义校验注解importjakarta.validation.Constraint;importjakarta.validation.Payload;importjava.lang.annotation.*;@Target({ElementT......
  • Spring44 - 基于方法实现校验
    基于方法实现校验第一步创建配置类,配置MethodValidationPostProcessorimportorg.springframework.validation.beanvalidation.LocalValidatorFactoryBean;importorg.......
  • Java Swing 禁止黏贴动作
    碰到一个需求,不让复制黏贴。可考的方法有:1重写JTextFieldpaste函数  2 删除组件ActionMap中与CTRL+V按键相关的操作因为JTextField已经被封装了一层,就不想再......
  • 使用AES的256位密钥加解密报错java.security.InvalidKeyException: Illegal key size
     使用AES的256位密钥加解密报错java.security.InvalidKeyException:Illegalkeysize。编写微信小程序在获取用户时,需要根据小程序传来的iv,encryptedData,和se......
  • JAVA缓存规范 —— 虽迟但到的JCache API与天生不俗的Spring Cache
    大家好,又见面了。本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面。如果感兴趣,欢迎关注以获取后续更新。有......
  • java冒泡排序
    java/**冒泡排序1.比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置2.每一次比较,都会产生一个最大或者最小的数字;3.下一轮则可以少一次排序!4......
  • java基础
    注释注释并不会被执行,是给我们写代码的人看的;书写注释是一个非常好的习惯单行注释//多行注释/*注释*/文档注释/**文档*/标识符关键字java所有的组成部......
  • 【Java面试】Runnable和Thread比较
    在线程使用过程中,我们肯定会用到Runnable与Thread,前者的实现方式是实现其接口即可,后者的实现方式是继承其类。两者实现方式带来最明显的区别就是,由于Java不允许多继承,因此......
  • JAVA PDF转图片,以及几种方案对比
    背景项目需要将PDF转为图片存储,在网上搜索,找到了三种方案(这里链接都是找的github上的地址):pdfbox,开源软件,apache社区在维护,还比较活跃icepdf,商业软件,但是github上有开......