springboot封装JsonUtil,CookieUtil工具类代码实例

下面开始讲解"Spring Boot封装JsonUtil,CookieUtil工具类代码实例"的攻略,主要包含以下几步:

1. 创建工具类文件

在src/main/java目录下创建一个名为utils的包,然后在该包下创建两个工具类文件:JsonUtil和CookieUtil。

1.1 JsonUtil

JsonUtil用于将Java对象与Json数据相互转换,示例代码如下:

package com.example.demo.utils;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;

public class JsonUtil {
    private static final Logger logger = LoggerFactory.getLogger(JsonUtil.class);

    private static final ObjectMapper objectMapper = new ObjectMapper();

    public static String toJsonString(Object object) {
        try {
            return objectMapper.writeValueAsString(object);
        } catch (JsonProcessingException e) {
            logger.error("Object to JSON String error:", e);
            return null;
        }
    }

    public static <T> T toObject(String jsonString, Class<T> clazz) {
        try {
            return objectMapper.readValue(jsonString, clazz);
        } catch (IOException e) {
            logger.error("JSON String to Object error:", e);
            return null;
        }
    }
}

1.2 CookieUtil

CookieUtil用于操作Cookie,示例代码如下:

package com.example.demo.utils;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CookieUtil {
    public static void addCookie(HttpServletResponse response, String name, String value, int maxAge) {
        Cookie cookie = new Cookie(name, value);
        cookie.setMaxAge(maxAge);
        cookie.setPath("/");
        response.addCookie(cookie);
    }

    public static Cookie getCookie(HttpServletRequest request, String name) {
        Cookie[] cookies = request.getCookies();
        if (cookies != null && cookies.length > 0) {
            for (Cookie cookie : cookies) {
                if (cookie.getName().equals(name)) {
                    return cookie;
                }
            }
        }
        return null;
    }

    public static void removeCookie(HttpServletResponse response, HttpServletRequest request, String name) {
        Cookie[] cookies = request.getCookies();
        if (cookies != null) {
            for (Cookie cookie : cookies) {
                if (cookie.getName().equals(name)) {
                    cookie.setMaxAge(0);
                    cookie.setPath("/");
                    response.addCookie(cookie);
                }
            }
        }
    }
}

2. 使用工具类

在工程中需要用到工具类的地方,只需要import相应的类即可使用,例如:

2.1 使用JsonUtil转换对象与Json字符串

package com.example.demo.service;

import com.example.demo.entity.User;
import com.example.demo.utils.JsonUtil;

public class UserService {
    public void test() {
        User user = new User();
        user.setId(1);
        user.setUsername("Tom");
        user.setPassword("123456");
        String jsonString = JsonUtil.toJsonString(user); // 将对象转换为Json字符串
        System.out.println(jsonString);
        User user1 = JsonUtil.toObject(jsonString, User.class); // 将Json字符串转换为对象
        System.out.println(user1.getUsername());
    }
}

2.2 使用CookieUtil操作Cookie

package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.utils.CookieUtil;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UserController {
    public void login(HttpServletRequest request, HttpServletResponse response, User user) {
        // 登录成功后将用户信息存入Cookie,时长为30分钟
        CookieUtil.addCookie(response, "user", JsonUtil.toJsonString(user), 30 * 60);
    }

    public User getUser(HttpServletRequest request) {
        // 从Cookie中读取用户信息
        Cookie cookie = CookieUtil.getCookie(request, "user");
        if (cookie != null) {
            String userJson = cookie.getValue();
            return JsonUtil.toObject(userJson, User.class);
        }
        return null;
    }

    public void logout(HttpServletRequest request, HttpServletResponse response) {
        // 从Cookie中删除用户信息
        CookieUtil.removeCookie(response, request, "user");
    }
}

以上就是使用Spring Boot封装JsonUtil、CookieUtil工具类的完整攻略。

阅读剩余 68%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot封装JsonUtil,CookieUtil工具类代码实例 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • 什么是程序计数器?

    程序计数器(Program Counter Register)是一种用于存储当前线程正在执行的指令地址的内存区域。程序计数器是线程私有的,每个线程都有自己程序计数器。在 Java 虚拟机中,程序计数器一种较小的内存区域,其通常为几个字节。 程序计数器的主要作用是记录当前线程正在执行的指令地址,以便在发生线程切换时能够恢复执行。在 Java 虚拟机中,线程切换…

    Java 2023年5月12日
    00
  • Java 运算符 动力节点Java学院整理

    Java 运算符完整攻略 Java 运算符是可以用来执行各种算术、比较、逻辑和位运算的符号,常用的运算符包括算术运算符、赋值运算符、比较运算符、逻辑运算符和位运算符。在编写 Java 代码时,熟练掌握各类运算符的用法是非常重要的。 算术运算符 Java 中的算术运算符包括加、减、乘、除、求余和自增自减等运算。 加号(+):用于相加两个数; 减号(-):用于减…

    Java 2023年5月30日
    00
  • Spring Boot深入学习数据访问之Spring Data JPA与Hibernate的应用

    Spring Boot深入学习数据访问之Spring Data JPA与Hibernate的应用 前言 本文将介绍Spring Boot中的数据访问方案之一的Spring Data JPA。首先会了解JPA和Hibernate的基本概念和使用方法,然后结合Spring Data对其进行应用。最后提供两个具体的示例,分别是使用Spring Data JPA和H…

    Java 2023年6月2日
    00
  • Java Web中ServletContext对象详解与应用

    下面我将为你详细讲解Java Web中ServletContext对象的完整攻略。 什么是ServletContext对象 ServletContext是Java Web容器中的一个重要对象,它代表整个Web应用程序,一个Web应用程序只有一个ServletContext对象。ServletContext对象在Web应用程序启动时被创建,在Web应用程序停止…

    Java 2023年6月15日
    00
  • &#是什么编码 unicode两种编码方式与中文的转换

    编码是将某种信息从一种形式转换为另一种形式的过程。在HTML、XML等文档中,如果想要输入一些特殊字符,例如空格、小于号、大于号等,就需要使用特殊字符实体来代替这些字符。其中,&#是一种十进制字符编码方式。 Unicode是计算机科学领域中的一种字符编码,它将字符与二进制进行映射。Unicode中每个字符都有一个唯一的编码。常见的Unicode编码有…

    Java 2023年5月20日
    00
  • Java 进行时间处理的步骤

    Java 进行时间处理的步骤可以分为以下几个方面: 获取当前时间 Java 可以使用 java.util.Date 或 java.time.LocalDateTime 类获取当前的系统时间。其中,java.util.Date 是一个在 Java 8 之前使用的类,而在 Java 8 及以后,建议使用 java.time.LocalDateTime 类。 示例…

    Java 2023年5月20日
    00
  • 七段小代码解决Java程序常见的崩溃场景

    七段小代码所解决的Java程序常见的崩溃场景包括以下七种: 空指针异常(NullPointerException) 数组下标越界(ArrayIndexOutOfBoundsException) 类型转换异常(ClassCastException) 文件不存在异常(FileNotFoundException) 自定义业务异常(BusinessException…

    Java 2023年5月23日
    00
  • SpringMVC实现文件的上传和下载实例代码

    SpringMVC实现文件的上传和下载实例代码 在Web应用程序中,文件的上传和下载是非常常见的需求。SpringMVC提供了很多方便的方式来实现文件的上传和下载。本文将详细讲解SpringMVC实现文件的上传和下载的实例代码。 文件上传 在SpringMVC中,我们可以使用MultipartFile对象来处理文件上传。MultipartFile对象是Spr…

    Java 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部