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

SpringMVC(入门案例)

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

SpringMVC(入门案例)

文章目录

入门

三层架构SpringMVC入门案例(重点)入门案例工作流程分析(重点)SpringMVC技术架构图(重点)6大核心组件 基础配置

controller加载控制静态资源加载中文乱码处理 请求

请求参数(重点)

普通类型(String,包装类,基本数据类型)POJO类型参数数组类型参数&集合类型参数 类型转换器(Data的格式转换默认只转yyyy/MM/dd)

自定义类型转换器 请求映射 @RequestMapping(重点) 响应

无数据跳页面

页面前后缀页面跳转方式 带数据跳页面【重点】

方式一: 使用HttpServletRequest类型形参进行数据传递方式二:使用Model类型形参进行数据传递方式三:使用ModelAndView类型参数进行数据传递,将该对象作为返回值传递给调用者 纯数据返回(JSON)【重点】

方式一、方式二 :返回String返回JSON

方式一:基于response返回数据的简化格式(返回结果是中文乱码)方式二:【推荐】使用SpringMVC提供的消息类型转换器将对象与集合数据自动转换为JSON数据返回JSON集合数据方式三: (了解)使用SpringMVC注解驱动简化配置 Servlet相关接口

请求/响应对象获取、原生Session对象获取头数据获取cookie数据获取Session数据获取/设置

Session数据获取Session数据设置(了解) 数据封装底层实现

入门 三层架构

表现层:数组展示业务层:业务处理数据层 :数据操作
SpringMVC

基于java实现MVC模型的轻量级web框架

优点

使用简单性能突出灵活性强

入门案例(重点)


pom.xml




  4.0.0
  org.example
  spring-web-mvc
  1.0-SNAPSHOT
  war
  
    8
    8
  

  
    
      org.springframework
      spring-context
      5.2.0.RELEASE
    

    
      javax.servlet
      javax.servlet-api
      4.0.1
    





    
      javax.servlet.jsp
      jsp-api
      2.1
    
    
      org.springframework
      spring-web
      5.2.0.RELEASE
    
    
      org.springframework
      spring-webmvc
      5.2.0.RELEASE
    

  


  
    
      aliyun-maven
      aliyun maven
      http://maven.aliyun.com/nexus/content/groups/public/
    
  
  
    
      aliyun-maven
      aliyun maven
      http://maven.aliyun.com/nexus/content/groups/public/
    
  
  
    
      
        src/main/java
        
          **
    //集合
    //http://localhost:8080/reqParam10?nick=zs&nick=zzz
    @RequestMapping("/reqParam11")
    public String requestParam11(@RequestParam List nick){
        for (String s : nick) {
            System.out.println(s);
        }
        return "page.jsp";
    }
}
类型转换器(Data的格式转换默认只转yyyy/MM/dd)
    
    


    
        
            
                
                    
                
            
        
    

@DateTimeFormat

public String reqParam13(@DateTimeFormat(pattern = "yyyy-MM-dd") Date date){
	System.out.println("date=" + date);
	return "page.jsp";
}
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date birthday;
自定义类型转换器
package com.zs.converter;

import org.springframework.core.convert.converter.Converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Pattern;


public class StringToDate implements Converter {
    @Override
    public Date convert(String s) {
        SimpleDateFormat sdf=simpleDateFormat(s);
        Date date=null;
        try {
            date=sdf.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }


        return date;
    }

    public SimpleDateFormat simpleDateFormat(String source){
        SimpleDateFormat sdf = new SimpleDateFormat();
        if (Pattern.matches("^\d{4}-\d{2}-\d{2}$", source)) { // yyyy-MM-dd
            sdf = new SimpleDateFormat("yyyy-MM-dd");
        } else if (Pattern.matches("^\d{4}-\d{2}-\d{2} \d{2}-\d{2}-\d{2}$", source)) { // yyyy-MM-dd HH-mm-ss
            sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
        } else if (Pattern.matches("^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$", source)) { // yyyy-MM-dd HH:mm:ss
            sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        } else if (Pattern.matches("^\d{4}/\d{2}/\d{2}$", source)) { // yyyy/MM/dd
            sdf = new SimpleDateFormat("yyyy/MM/dd");
        } else if (Pattern.matches("^\d{4}/\d{2}/\d{2} \d{2}/\d{2}/\d{2}$", source)) { // yyyy/MM/dd HH/mm/ss
            sdf = new SimpleDateFormat("yyyy/MM/dd HH/mm/ss");
        }  else if (Pattern.matches("^\d{4}\d{2}\d{2}$", source)) { // yyyyMMdd
            sdf = new SimpleDateFormat("yyyyMMdd");
        }  else if (Pattern.matches("^\d{4}\d{2}\d{2} \d{2}\d{2}\d{2}$", source)) { // yyyyMMdd HHmmss
            sdf = new SimpleDateFormat("yyyyMMdd HHmmss");
        } else if (Pattern.matches("^\d{4}\.\d{2}\.\d{2}$", source)) { // yyyy.MM.dd
            sdf = new SimpleDateFormat("yyyy.MM.dd");
        }  else if (Pattern.matches("^\d{4}\.\d{2}\.\d{2} \d{2}\.\d{2}\.\d{2}$", source)) { // yyyy.MM.dd HH.mm.ss
            sdf = new SimpleDateFormat("yyyy.MM.dd HH.mm.ss");
        }else{
            System.out.println("TypeMismatchException");
            throw new RuntimeException();
        }
        return sdf;
    }
}

    
    

    
        
            
                
            
        
    
package com.zs.controller;

import com.zs.domain.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Date;

@Controller
public class DateController {

    //http://localhost:8080/reqParam12?date=2022-11-11
    //http://localhost:8080/reqParam12?date=2022/11/11
    @RequestMapping("/reqParam12")
    public String requestParam12(Date date){
        System.out.println("date = " + date);
        return "page.jsp";
    }
}

请求映射 @RequestMapping(重点)


响应 无数据跳页面


页面前后缀

页面跳转方式

带数据跳页面【重点】 方式一: 使用HttpServletRequest类型形参进行数据传递

方式二:使用Model类型形参进行数据传递

方式三:使用ModelAndView类型参数进行数据传递,将该对象作为返回值传递给调用者

纯数据返回(JSON)【重点】 方式一、方式二 :返回String

返回JSON
    
    
      com.fasterxml.jackson.core
      jackson-core
      2.9.9
    
    
      com.fasterxml.jackson.core
      jackson-databind
      2.9.9
    
    
      com.fasterxml.jackson.core
      jackson-annotations
      2.9.9
    
    
方式一:基于response返回数据的简化格式(返回结果是中文乱码)

方式二:【推荐】使用SpringMVC提供的消息类型转换器将对象与集合数据自动转换为JSON数据

该方式可以解决中文乱码问题

这里的手工添加信息类型转换器也可以不用添加,直接添加 mvc注解驱动即可

返回JSON集合数据

方式三: (了解)使用SpringMVC注解驱动简化配置

Servlet相关接口 请求/响应对象获取、原生Session对象获取

头数据获取

cookie数据获取

Session数据获取/设置 Session数据获取


Session数据设置(了解)


数据封装底层实现

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

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

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