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日

相关文章

  • java对象转换String类型的三种方法

    当我们需要将Java对象转换为字符串时,通常有三种方法: 方法一:调用toString()方法 Java类可以覆盖toString()方法以返回有意义的字符串。在这种情况下,将Java对象传递给System.out.println()和String类的构造函数时,将自动调用toString()方法。因此,我们可以直接使用toString()方法将Java对象…

    Java 2023年5月26日
    00
  • 详解java的值传递、地址传递、引用传递

    1. 值传递 值传递是指在方法调用过程中,实际传递的是变量的值,如果传递的是基本数据类型或者不可改变的对象,则不会改变原有变量的值。这是Java中的默认传递方式。 示例1: public class ValuePassingExample{ public static void main(String[] args) { int originalValue …

    Java 2023年5月26日
    00
  • tomcat漏洞汇总

    Tomcat漏洞汇总 简介 Tomcat是Apache Foundation下的一个开源的Web服务器,在Web应用的开发中使用非常普遍。然而,Tomcat在使用过程中会存在各种漏洞,这些漏洞可能会导致服务器遭到攻击。 该文章旨在汇总Tomcat中的一些漏洞,并提供相关的解决方案和示例。 漏洞及解决方案 未授权访问 攻击者可以通过未授权访问进入Tomcat的…

    Java 2023年6月2日
    00
  • java中Supplier知识点总结

    Java中Supplier知识点总结 1. 概述 在Java中,Supplier是一个函数式接口,它只有一个方法get(),该方法没有任何参数,返回一个指定类型的值。我们可以使用Lambda表达式使用Supplier来创建任意类型的对象。 @FunctionalInterface public interface Supplier<T> { T …

    Java 2023年5月26日
    00
  • 如何使用Java调试技术?

    下面我将为您详细讲解如何使用Java调试技术。 如何使用Java调试技术 什么是Java调试技术 Java调试技术是指利用各种工具和技术,用来检查程序运行状态和问题,并找到程序中的错误。 Java调试工具 目前常见的Java调试工具有以下几种: Eclipse IntelliJ IDEA NetBeans jdb jvisualvm jstack等 Java…

    Java 2023年5月11日
    00
  • Maven搭建springboot项目的方法步骤

    下面我将详细讲解如何使用Maven搭建Spring Boot项目的方法步骤。 1. 准备工作 在使用Maven进行项目构建前,首先需要在本地安装和配置Maven环境。可以根据官方文档进行下载和安装,也可以使用包管理工具进行安装,例如使用APT工具: sudo apt-get install maven 2. 创建Spring Boot项目 2.1 使用Spr…

    Java 2023年5月15日
    00
  • Java获取服务器IP及端口的方法实例分析

    Java获取服务器IP及端口的方法实例分析 在Java中获取服务器的IP地址和端口号是很常见的需求。本文将介绍几种Java获取服务器IP及端口的方法实例,通过这些方法可以轻松实现对服务器IP地址和端口的获取。 方法一:使用InetAddress类 我们可以使用Java标准库中的InetAddress类来获取服务器的IP地址和端口号。 import java.…

    Java 2023年6月15日
    00
  • Java学习之Lambda表达式的使用详解

    Java学习之Lambda表达式的使用详解 什么是Lambda表达式? Lambda表达式是Java 8中引入的一个新特性。它可以将一个方法或一个匿名内部类作为参数作为输入传递,也可以在没有类的情况下声明和调用一个函数。Lambda表达式的语法如下: (parameters) -> expression or statement block 这个语法包…

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