SpringMVC学习笔记——第一天

SpringMVC学习打卡

  • SpringMVC学习笔记---第一天
  • SpringMVC笔记 第一天
      • 引言
          • 概念: 是控制层的框架,解决的是MVC分层开发中控制层的问题
          • 优势:
          • 作用:
      • 第一个SpringMVC程序的开发
      • SpringMVC语法
        • @RequestMapping 注解
        • 收集参数
        • 解决字符集乱码问题
          • GET: conf/server.xml
          • POST:
        • 流程跳转
          • Controller------>JSP
          • forward: 使用视图解析器 默认forward跳转
          • redirect:
          • Controller------->Controller
          • 传递数据
        • 传递数据拓展
      • SSM整合(SpringMVC+Spring+Mybatis)

SpringMVC学习笔记—第一天

SpringMVC笔记 第一天

引言

概念: 是控制层的框架,解决的是MVC分层开发中控制层的问题
优势:

​ 1.SpringMVC是Spring体系组成的一部分,可以与Spring全家桶无缝衔接

​ 2.SpringMVC框架从运行效率和开发效率,比Struts2高很多

作用:

​ 1.收集参数

​ 2.调用业务

​ 3.流程跳转

第一个SpringMVC程序的开发

​ 环境搭建:

​ 1.引入相关依赖

 

  junit
  junit
  4.12
  test




  javax.servlet
  servlet-api
  2.5
  provided



  org.springframework
  spring-core
  4.3.2.RELEASE



  org.springframework
  spring-context
  4.3.2.RELEASE



  org.springframework
  spring-context-support
  4.3.2.RELEASE



  org.springframework
  spring-aop
  4.3.2.RELEASE


  org.springframework
  spring-expression
  4.3.2.RELEASE



  org.springframework
  spring-aspects
  4.3.2.RELEASE



  org.springframework
  spring-tx
  4.3.2.RELEASE



  org.springframework
  spring-jdbc
  4.3.2.RELEASE



  org.springframework
  spring-beans
  4.3.2.RELEASE



  org.springframework
  spring-web
  4.3.2.RELEASE



  org.springframework
  spring-test
  4.3.2.RELEASE
  test



  org.springframework
  spring-webmvc
  4.3.2.RELEASE

                               ```

2.初始化SpingMVC的核心类 (web.xml)



<web-app>
      
        
        <servlet>
          <servlet-name>dispatcherServletservlet-name>
          <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
          
          <init-param>
            <param-name>contextConfigLocationparam-name>
            <param-value>classpath:dispatcher.xmlparam-value>
          init-param>
          
          <load-on-startup>1load-on-startup>
        servlet>
        <servlet-mapping>
          <servlet-name>dispatcherServletservlet-name>
          
          <url-pattern>*.dourl-pattern>
        servlet-mapping>
web-app>

编码步骤:

​ 1.开发Controller

package com.baizhi.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

//自动创建控制器的对象
@Controller
public class FirstController {

    /*
     *  方法语法:public   String  方法名  throws  Exception
     *  访问:SpringMVC_Day1/first.do
     *  返回值:代表跳转路径
     * */
    @RequestMapping("/first")
    public  String   first() throws  Exception{
        System.out.println("我是第一个SpringMVC程序");
        //跳转到index.jsp中
        return "index";
    }
}

2.SpringMVC配置文件中进行配置 (只需要配置一次)


<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    
    <context:component-scan base-package="com.baizhi.controller">context:component-scan>

    
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
         <property name="prefix" value="/">property>
         <property name="suffix" value=".jsp">property>
    bean>

    
    <mvc:annotation-driven>mvc:annotation-driven>
    
beans>

SpringMVC语法

@RequestMapping 注解

​ 作用: 1.指定访问的URL路径

​ 类:相当于struts2中的namespace

​ 方法:相当于struts2中的name

​ 2.指定被请求的方式

​ method = RequestMethod.GET 指定该方法 只可以被GET方式访问

​ method = RequestMethod.POST 指定该方法 只可以被POST方式访问

​ method = {RequestMethod.GET,RequestMethod.POST}) 指定该方法 既可以被GET方式访问 又可以被POST方式访问

收集参数

1.原始的方式收集参数
SpringMVC学习笔记——第一天_第1张图片

2.零散变量收集参数
SpringMVC学习笔记——第一天_第2张图片

注意:

​ i.SpringMVC在接收数据时,对于8中基本类型+String进行自动类型转换

​ ii.当传入参数的键与接收数据的形参名不一致,可以通过@RequestParam注解解决

3.对象收集参数
SpringMVC学习笔记——第一天_第3张图片

注意:

​ 1.springmvc对于日期类型转换时,只针对yyyy/MM/dd 格式进行转换

​ @DateTimeFormat(pattern =“yyyy-MM-dd”) 指定接收日期时的格式

​ 再使用 type=“date” 时 默认看着为/形式 实为—形式

​ 2.嵌套对象接收数据
SpringMVC学习笔记——第一天_第4张图片

​ 3.数组或集合收集参数
SpringMVC学习笔记——第一天_第5张图片

解决字符集乱码问题

GET: conf/server.xml

SpringMVC学习笔记——第一天_第6张图片

POST:

​ 设置字符集过滤器 web.xml



    
    
        encodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
    
    
        encodingFilter
        /*
    

流程跳转

​ Forward: 一次请求 地址栏不变 可以使用request作用域传值

​ Redirect: 多次请求 地址栏改变 不可以使用request作用域传值

Controller------>JSP
forward: 使用视图解析器 默认forward跳转
redirect:

SpringMVC学习笔记——第一天_第7张图片

Controller------->Controller

SpringMVC学习笔记——第一天_第8张图片

​ Redirect
SpringMVC学习笔记——第一天_第9张图片

​ 注意:自定义跳转方式时,视图解析器将失效

传递数据

​ Controller---------->JSP

​ 1.request 作用域

​ 2.Session作用域
SpringMVC学习笔记——第一天_第10张图片

​ Controller---------->Controller

​ 1.Forward: request作用域传递数据
SpringMVC学习笔记——第一天_第11张图片

​ 2.Redirect
SpringMVC学习笔记——第一天_第12张图片

​ 建议:Action跳Action时 使用Forward跳转

传递数据拓展

​ 1.使用Model或者ModelMap替换Request作用域 (建议使用·)

​ 好处:视图层解耦合
SpringMVC学习笔记——第一天_第13张图片

​ 2.@SessionAttributes 注解的使用(了解)

​ 作用: 可以使用@SessionAttributes注解 替换Session作用域

​ 前提: 必须在request作用域中存储一份

​ 使用:

​ @SessionAttributes(“name”) //把Request作用域中的数据转存到Session作用域中
SpringMVC学习笔记——第一天_第14张图片

SSM整合(SpringMVC+Spring+Mybatis)

​ 整合思路:
SpringMVC学习笔记——第一天_第15张图片

​ 环境搭建:

​ 1.引入相关依赖

 
      junit
      junit
      4.11
      test
    

  jstl
  jstl
  1.2



  javax.servlet
  servlet-api
  2.5


  org.springframework
  spring-core
  4.3.2.RELEASE


  org.springframework
  spring-beans
  4.3.2.RELEASE


  org.springframework
  spring-web
  4.3.2.RELEASE


  org.springframework
  spring-expression
  4.3.2.RELEASE


  org.springframework
  spring-aop
  4.3.2.RELEASE


  org.springframework
  spring-context
  4.3.2.RELEASE


  org.springframework
  spring-context-support
  4.3.2.RELEASE


  org.springframework
  spring-aspects
  4.3.2.RELEASE


  org.springframework
  spring-jdbc
  4.3.2.RELEASE


  org.springframework
  spring-webmvc
  4.3.2.RELEASE




  org.mybatis
  mybatis
  3.2.8




  org.mybatis
  mybatis-spring
  1.3.2



  mysql
  mysql-connector-java
  5.1.38



  commons-dbcp
  commons-dbcp
  1.4

                     

2.初始化配置 web.xml

​ SpringMVC:

​ i.解决POST方法接收数据乱码

​ 2.配置SpringMVC核心类

 
  
    encodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      UTF-8
    
  
  
    encodingFilter
    /*
  

  
  
    dispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:dispatcher.xml
    
    1
  
  
    dispatcherServlet
    *.do
  

Spring:

1.Spring的监听工厂



  
    contextConfigLocation
    classpath:applicationContext.xml
  

  
    org.springframework.web.context.ContextLoaderListener
  

​ 开发步骤:

​ 1.建表

​ 2.写实体

​ 3.定义DAO

​ 4.Mapper文件实现DAO接口

​ 5.Spring配置文件中配置mybatis的相关内容

​ 6.定义Service接口

​ 7.实现Service接口

​ @Service

​ @Autowire

​ @Transaction

​ 8.开发控制器

package com.baizhi.action;
import com.baizhi.entity.User;
import com.baizhi.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/user")
public class UserController {

    //给Service做对应的注入
    @Autowired
    private UserService userService;

    //注册                       //接收数据
    @RequestMapping("/register")
    public   String  register(User user) throws  Exception{
          //调用Service
        userService.register(user);
          //默认视图解析器
        return "index";
    }
}

​ 9.SpringMVC配置文件配置

 
    <contex:component-scan base-package="com.baizhi.action">contex:component-scan>

    
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/">property>
        <property name="suffix" value=".jsp">property>
    bean>

    
    <mvc:annotation-driven>mvc:annotation-driven>

你可能感兴趣的:(SpringMVC)