栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springmvc学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springmvc学习

SpringMVC学习 什么是Spring
  • MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。
  • 是将业务逻辑、数据、显示分离的方法来组织代码。
  • MVC主要作用是降低了视图与业务逻辑间的双向偶合。
  • MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。

Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。

View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。

Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作。

  • web.xml

    
    
    
        
            SpringMVC
            org.springframework.web.servlet.DispatcherServlet
            
            
                contextConfigLocation
                classpath:springmvc-servlet.xml
            
            
            1
        
    
        
        
            SpringMVC
            /
        
    
        
            encoding
            org.springframework.web.filter.CharacterEncodingFilter
            
                encoding
                utf-8
            
        
        
            encoding
            /
        
    
    
  • spring mvc-servlet.xml

    
    
    
        
        
        
        
        
        
    
        
        
            
            
            
            
        
    
    
    
    
  • 相关依赖



    
        SpringMVC-study
        org.example
        1.0-SNAPSHOT
    
    4.0.0

    SpringMVC-03-annotation

    
        
            
                src/main/java
                
                    ***.xml
                
                false
            
            
                src/main/resources
                
                    ***.xml
                
                false
            
        
    

spring-json 什么是json
  • JSON(Javascript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。

  • 采用完全独立于编程语言的文本格式来存储和表示数据。

  • 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。

  • 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

    json乱码解决方案 方案一
        
            
                
                    
                
                
                    
                        
                            
                        
                    
                
            
        
    
    方案二
    @RequestMapping(value = "/j1",produces = "application/json;charset=utf-8")//使用RequestMapping的produces属性也可以解决乱码问题
    
    两套注解
    //@RestController 相当于@Controller和@ResponseBody配合在一起使用
    //@RestController也不会走视图解析器直接返回一个字符串
    //或者直接使用@Controller
    
    相关依赖


    
        SpringMVC-study
        org.example
        1.0-SNAPSHOT
    
    4.0.0

    SpringMVC-05-json

    
        
            com.fasterxml.jackson.core
            jackson-databind
            2.10.0
        

        
            org.projectlombok
            lombok
            1.18.20
        

        
            com.fasterxml.jackson.core
            jackson-core
            2.10.0
        
    

实体类
package com.zb.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor //有参构造
@NoArgsConstructor//无参构造
public class User {
    private String name;
    private String sex;
    private int age;

}
测试用例
package com.zb.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zb.pojo.User;
import com.zb.utils.JsonUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.SimpleFormatter;

//@RestController 相当于@Controller和@ResponseBody配合在一起使用
//@RestController也不会走视图解析器直接返回一个字符串

@Controller
public class UserController {

    
    @RequestMapping("j1")
    @ResponseBody//他就不会走视图解析器,会直接返回一个字符串
    public String json1() throws JsonProcessingException {
        //jackson ,ObjectMapper
        ObjectMapper mapperapper = new ObjectMapper();
        //创建一个对象
        User user = new User("小波1号","男",18);

        String str = mapperapper.writevalueAsString(user);

        return str;
    }

    @RequestMapping("j2")
    @ResponseBody
    public String json2() throws JsonProcessingException {
        List userList=new ArrayList();
        ObjectMapper mapperapper = new ObjectMapper();
        User user1 = new User("小波1号","男",18);
        User user2 = new User("小波2号","男",18);
        User user3 = new User("小波3号","男",18);
        User user4 = new User("小波4号","男",18);
        userList.add(user1);
        userList.add(user2);
        userList.add(user3);
        userList.add(user4);
        String str = mapperapper.writevalueAsString(userList);
        return str;
    }

    @RequestMapping("j3")
    @ResponseBody
    public String json3() throws JsonProcessingException {
        Date date = new Date();
        ObjectMapper mapperapper = new ObjectMapper();
        //自定义日期格式
        SimpleDateFormat sfmat = new SimpleDateFormat("yyyy/mm/dd--HH:mm:ss");
        //指定日期格式
        mapperapper.setDateFormat(sfmat);
        String str = mapperapper.writevalueAsString(date);
        return str;
    }

    @RequestMapping("j4")
    @ResponseBody
    public String json4() throws JsonProcessingException {
        Date date = new Date();
        String json = JsonUtils.getJson(date);
        return json;
    }

}
将设置时间戳的方法封装(工具类)
package com.zb.utils;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

import java.text.SimpleDateFormat;

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

    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) {
            e.printStackTrace();
        }
        return null;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/301719.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号