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

SpringMVC

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

SpringMVC

MVC是三层架构的基础,使用了核心控制器统一处理请求,参数,转发,响应结果

可以减少servlet的数量

可以减少servlet的负担

SpringMVC在spring的基础上提出了基于MVC的web结构

SpringMVC输入参数

基本类型

对象类型

web对象类型

        HttpServletRequst

        HttpServletResponse

        HttpSession

支持数组类型

自定义转换类型

日期类型可以直接使用注解实现

SpringMVC的返回结果的处理

主要是通过ModelAndView对返回结果统一处理

ModelAndView的返回方式有两种

        转发,受到视图解析器的影响

        重定向

对数据的处理

        主要是通过mv.addobject(key,value)将数据保存

        默认情况下是保存在request的setAttribute中

         也可以通过注解@SessionAttributes放入到session中

SpringMVC对JSON的处理       

        可以使用默认自带的jackson进行处理

        也可以使用Fastjson进行处理

                方式一:在头部加上ResponseBody

                方式二:直接使用RestController

        对请求的json格式的处理

                请求的参数如果是json,那么则使用了@RequstBody修饰参数对象             

    @RequestMapping("/t2")
    public String t2(@RequestBody UserEntity userEntity){
        System.out.println(userEntity.toString());
        return "获取结果";
    }

        json的日期格式处理

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

SpringMVC的json的常用的注解操作

        日期格式的操作

                在jackson的直接使用@jsonFormat进行交换

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

                属性名修改操作

                        在jackson可以通过注解@jsonPropertry设置json输出参数的值

 @JsonProperty("password")   
 String pwd;

        忽略相关属性

                在jackson中可以通过注解@jsonlgnore设置忽略属性

  @JsonIgnore
    String pwd;

        null和empty属性排除

                属性如果未null的时候,那么不转换成json格式

                如果属性是空字符串,例如"",或者是List长度为0,那么不转换json格式

        自定义序列

                创建一个序列化执行的类

public class MySerializer extends JsonSerializer {
    @Override
    public void serialize(Double value, //原始值
                          JsonGenerator jsonGenerator,//json输出对象
                          SerializerProvider serializerProvider) throws IOException {
        //进行四舍五入
        String number = BigDecimal.valueOf(value).setScale(2, BigDecimal.ROUND_HALF_UP).toString();
        //输出结果
        jsonGenerator.writeNumber(number);
    }
}

     在类的属性上,通过注解使用                 

    @JsonSerialize(using = MySerializer.class)
    Double money = 100.126; //输出的时候,想要100.13
SpringMVC的Fastjson的使用

        导入fastJSON的依赖包



    com.alibaba
    fastjson
    1.2.54

需要在springmvc.xml中配置


    
    
        
            
            
                
                    application/json
                
            
        
    

常用的注解

        日期格式化:@JSONField(fromat="yyyy/MM/dd")

        属性名修改:@JSONField(name="birth")

        忽略属性:@JSONField(seriailze=false)

  • 包含null值@JSONField(serialzeFeatures = SerializerFeature.WriteMapNullValue) 默认会忽略所有null值,有此注解会输出null

    • @JSONField(serialzeFeatures = SerializerFeature.WriteNullStringAsEmpty) null的String输出为""

  • 自定义序列化:@JSONField(serializeUsing = MySerializer2.class)

拦截器和过滤器的区别

        实现机制不同

                过滤器是tomcat自带的组件,和tomcat容器相关

                拦截器是spring通过AOP机制实现的,和tomcat容器无关

        执行顺序不同

                过滤器先执行,拦截器后执行

        拦截器会被springMVC,可以通过@Autowired获取容器中的bean

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006716.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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