首页 > 其他分享 >SpringMVC中的数据处理

SpringMVC中的数据处理

时间:2022-09-28 21:24:36浏览次数:72  
标签:return String SpringMVC JSON User 数据处理 public

数据处理

目录

SpringMVC 结果跳转方式

设置ModelAndView对象,根据view名称,和视图解析器跳转到指定页面

页面:视图解析器前缀 + viewName + 视图解析器后缀

1、利用SpringMVC实现

1.1 无需视图解析器

@Controller
public class GoController {
    @RequestMapping("/res1")
    public String test1(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        // 转发
        return "/WEB-INF/jsp/hello.jsp";
    }
    @RequestMapping("/res2")
    public String test2(HttpServletRequest req, HttpServletResponse resp) throws IOException {
       return "forward:/WEB-INF/jsp/hello.jsp";
    }
    @RequestMapping("/res3")
    public String test3(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        // 重定向
        return "redirect:/WEB-INF/jsp/hello.jsp";
    }
}

1.2 配置了视图解析器

@Controller
public class GoController {
    @RequestMapping("/res1")
    public String test1(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        // 转发
        return "hello";
    }
    @RequestMapping("/res2")
    public String test2(HttpServletRequest req, HttpServletResponse resp) throws IOException {
       return "forward:hello";
    }
    @RequestMapping("/res3")
    public String test3(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        // 重定向
        return "redirect:hello";
    }
}

2、SpringMVC处理参数

2.1 处理提交数据

接收参数,匹配实体类对象的字段名,一致则匹配成功

2.1.1 提交的名称和处理方法的参数名一致

@RequestMapping("/hello")
public String hi(String name){
    return "hello";
}
// 我实体类的字段名为name

image-20220927191012459

2.1.1 提交的名称和处理方法的参数名不一致

  • 添加注解 @RequestParam ,推荐写上,表示从前端接收的
@RequestMapping("/hello")
public String hi(@RequestParam("username") String name){
    return "hello";
}

2.2 提交的是对象

image-20220927192914878

用 ModelMap也可

3、乱码问题

springMVC自带的字符集过滤器, 在web.xml中配置

    <!-- springMVC自带的字符集过滤器 -->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

4、JSON(重点)

方括号保存数组,大括号保存对象

JSON: JavaScript Object Notation(JavaScript 对象标记法)。

JSON 是一种存储和交换数据的语法。

JSON 是通过 JavaScript 对象标记法书写的文本。

交换数据

当数据在浏览器与服务器之间进行交换时,这些数据只能是文本。

JSON 属于文本,并且我们能够把任何 JavaScript 对象转换为 JSON,然后将 JSON 发送到服务器。

我们也能把从服务器接收到的任何 JSON 转换为 JavaScript 对象。

以这样的方式,我们能够把数据作为 JavaScript 对象来处理,无需复杂的解析和转译。

image-20220927210001767

4.1 JSON的使用

用jackson处理 json数据

4.1.1 引入jackson依赖

<!-- jackson依赖 -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.11.4</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.11.4</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.11.4</version>
</dependency>

4.1.2 web.xml配置和之前一样

另外,SpringMVC的配置文件也和之前的一样

具体可以看这里:https://www.cnblogs.com/fulfill/p/16734407.html

4.1.3 写Controller

User实体类已写好

@Controller
public class JsonController {

    @RequestMapping(value = "/json1")
    @ResponseBody   // 不会走视图解析器,会直接返回一个字符串
    public String json1() throws JsonProcessingException {
        ObjectMapper mapper = new ObjectMapper();
        // 造一个对象
        User user = new User(1,"张三");
        // 返回字符串
        String str = mapper.writeValueAsString(user);
        return str;
    }
}

@RestController

image-20220928113915752

4.1.4 当以集合形式返回JSON时

/**
     * 返回集合时的JSON
     * @return
     * @throws JsonProcessingException
     */
@RequestMapping(value = "/json2")
public String json2() throws JsonProcessingException {

    List<User> list = new ArrayList<>();
    // 造对象
    User user1 = new User(1,"张一");
    User user2 = new User(2,"张二");
    User user3 = new User(3,"张三");

    list.add(user1);
    list.add(user2);
    list.add(user3);
    // 返回字符串
    return new ObjectMapper().writeValueAsString(list);
    // [{"id":1,"name":"张一"},{"id":2,"name":"张二"},{"id":3,"name":"张三"}]
}

4.2 JSON工具类

public class JsonUtil {

    /**
     * 自定义日期 json 输出
     * @param object date对象
     * @param dateFormat 自定义的格式
     * @return
     */
    public static String getJson(Object object,String dateFormat){
        ObjectMapper mapper = new ObjectMapper();
        // 不使用时间戳的方式
        mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
        // 自定义日期格式
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
        mapper.setDateFormat(sdf);
        try {
            return mapper.writeValueAsString(object);
        } catch (JsonProcessingException e) {
            throw new RuntimeException(e);
        }
    }

    public static String getJson(Object object){
        return getJson(object,"yyyy-MM-dd HH:mm:ss");
    }

image-20220928204941745

4.3 fastjson的使用

4.3.1 maven依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.14</version>
</dependency>

4.3.2 在SpringMVC配置文件中

要springMVC知道返回值是fastjson

注意,还要在配置文件 app-context.xml中配置:

image-20220928210713964

image-20220928210723120

用 fastjson传输数据不常用,

4.3.3 Controller

// Java对象转JSON字符串
String str = JSON.toJSONString(list);

// JSON字符串转Java对象
User user = JSON.parseObject(str,User.class);

// Java对象转JSON对象
JSONObject jsonObject = (JSONObject) JSON.toJSON(user);

// JSON对象转Java对象
User user4 = JSON.toJavaObject(jsonObject,User.class);

标签:return,String,SpringMVC,JSON,User,数据处理,public
From: https://www.cnblogs.com/fulfill/p/16739602.html

相关文章

  • Spring MVC框架:第一章:SpringMVC概述及初步体会SpringMVC使用过程
    第一节SpringMVC在知识体系中的坐标在我们学习框架知识以前,JavaSE+JDBC+JavaWeb+SQL这样的技术组合已经可以实现任何业务逻辑了。为什么还要学习SSM这样的框架呢?很简单,M......
  • java8实战三:函数式数据处理--流
    函数式数据处理(一)–流引入流集合是Java中使用最多的API。要是没有集合,还能做什么呢?几乎每个Java应用程序都会制造和处理集合。集合对于很多编程任务来说都是非常基本的:......
  • 数据处理的软件构造
                        ......
  • ENVI5.6.2中北京三号N数据处理方法
    北京三号N卫星即北京三号国际合作星,由四颗0.3米分辨率卫星组成,首批两颗卫星分别于2021年4月29日和8月17日成功发射,除了常见的蓝、绿、红、近红外波段,还提供了深蓝(400-450n......
  • 面试题:海量数据处理利器-布隆过滤器
    目录概念原理布隆过滤器的使用场景简单模拟布隆过滤器Guava布隆过滤器Redis布隆过滤器布谷鸟过滤器作者:小牛呼噜噜|https://xiaoniuhululu.com计算机内功、JAVA底层、......
  • SpringMVC请求与响应
    请求知识点1:@RequestParam名称@RequestParam类型形参注解位置SpringMVC控制器方法形参定义前面作用绑定请求参数与处理器方法形参间的关系相关参数re......
  • SpringMVC_拦截器(springboot)
    创建publicclassMyInterceptorimplementsHandlerInterceptor{@OverridepublicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponsere......
  • 数据处理——研究范围栅格化
    栅格化公式图 生成的栅格图   代码:1importpandasaspd2importnumpyasnp3importgeopandasasgpd4#用geopandas包读取深圳的行政区划sh......
  • Python 分部分项 数据处理2 桂柳
    excel格式python代码importosimportopenpyxlfromopenpyxlimportWorkbookfromcopyimportdeepcopyfromopenpyxl.utilsimportget_column_letter#原文:ht......
  • 第一个springmvc项目
    第一个SpringMVC项目1、使用配置(实际开发不使用)新建一个Module:springmvc-02-hello,添加web支持导入springmvc依赖<dependency><groupId>org.springframework......