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工具类的完整攻略。

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

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

相关文章

  • 详解Spring Hibernate连接oracle数据库的配置

    下面是详解Spring Hibernate连接Oracle数据库的完整攻略: 步骤一:添加Oracle JDBC驱动 首先,需要将Oracle JDBC驱动添加到项目依赖中。这可以通过将以下代码添加到项目的pom.xml文件中来完成: <dependency> <groupId>com.oracle</groupId> &…

    Java 2023年6月16日
    00
  • Maven setting配置镜像仓库的方法步骤

    为了更好地管理和下载Java项目的依赖,我们需要使用Maven,而为了更快地从Maven仓库下载依赖,我们可以使用镜像仓库。下面是配置Maven镜像仓库的方法步骤: 1.打开Maven的settings.xml配置文件 可以在本地.m2目录下找到settings.xml,如果没有则需要在Maven的安装目录下找到conf文件夹内的settings.xml文件…

    Java 2023年5月20日
    00
  • 史上最全MyBatis面试题及答案

    史上最全MyBatis面试题及答案攻略 什么是MyBatis?它的作用是什么? MyBatis是一个持久层框架,用于简化Java应用程序中的数据库交互。它使用XML或注解来描述对象映射器,从而实现将Java对象映射为数据库表中的数据。MyBatis的主要作用是:简化数据库交互代码的编写,防止SQL注入攻击,提高代码的可维护性和可读性。 MyBatis中的Ma…

    Java 2023年5月20日
    00
  • 教你怎么在win10环境下安装jdk8

    下面是详细的“在win10环境下安装jdk8”的攻略: 安装JDK8的步骤 1. 下载JDK8安装包 在Oracle官网下载JDK8安装包,下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 2. 运行安装包 双击下载得到的安装包,按照提示进行安装。注…

    Java 2023年5月26日
    00
  • 图文演示Flash+ASP实现用户登录/注册程序第1/2页

    下面我将详细讲解“图文演示Flash+ASP实现用户登录/注册程序第1/2页”的完整攻略。 一、前置知识 在学习本文之前,你需要了解以下知识: Flash基础知识:包括Flash界面结构、基本操作、动画制作等。 ASP基础知识:包括ASP排版、变量定义、数据类型、循环控制、函数封装等。 如果你缺乏上述知识,请自行学习补充,并确保已经掌握了这些知识点。 二、实…

    Java 2023年6月15日
    00
  • java算法之余弦相似度计算字符串相似率

    Java算法之余弦相似度计算字符串相似率 介绍 余弦相似度是一种常用的字符串相似率计算方法,可以用于文本相似度计算、推荐算法等场景。本文将介绍如何在Java中实现余弦相似度算法,可用于计算两个字符串之间的相似度。 算法原理 余弦相似度的计算原理是将两个文本的词向量表示为向量,然后计算这两个向量之间的夹角余弦值,夹角余弦值越大表示两个文本之间越相似,反之则越不…

    Java 2023年5月19日
    00
  • Java实现读取及生成Excel文件的方法

    生成Excel文件可以使用Apache POI库,读取Excel文件可以使用JXL或者Apache POI库。 使用Apache POI进行Excel文件读取及生成 要使用Apache POI进行Excel文件处理,需要添加以下maven依赖: <dependency> <groupId>org.apache.poi</grou…

    Java 2023年5月20日
    00
  • java中使用zxing批量生成二维码立牌

    下面就详细讲解一下“java中使用zxing批量生成二维码立牌”的完整攻略。 简介 zxing是一个开源的、支持多种编程语言的二维码生成和识别库。我们可以借助zxing库,使用java语言批量生成带有文字的二维码立牌。 准备工作 下载zxing库:我们可以从zxing的官方网站或者Maven中央仓库中获取zxing库。 创建Java工程:我们可以选择使用Ec…

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