SpringMVC入门

SpringMVC(用于表现层)概述


  1. 是一种基于Java实现的MVC设计模型的请求驱动类型的轻量级WEB框架。
  2. Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供
    了构建 Web 应用程序的全功能 MVC 模块。
  3. 使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的
    SpringMVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts2等。

SpringMVC入门


解决maven加载webapp过慢问题
---archetypeCatalog
---internal

需引入spring-contextspring-webspring-webmvcservlet-api以及jsp-api
maven引入所需的jar




    4.0.0

    com.ygg
    yggtzsj
    1.0-SNAPSHOT
    war

    yggtzsj Maven Webapp
    
    http://www.example.com

    
        UTF-8
        1.7
        1.7
        5.0.2.RELEASE
    

    
        
            junit
            junit
            4.11
            test
        
        
            org.springframework
            spring-context
            ${spring-version}
        
        
            org.springframework
            spring-web
            ${spring-version}
        
        
            org.springframework
            spring-webmvc
            ${spring-version}
        
        
            javax.servlet
            servlet-api
            2.5
            provided
        
        
            javax.servlet.jsp
            jsp-api
            2.0
            provided
        
    

    
        yggtzsj
        
            
                
                    maven-clean-plugin
                    3.1.0
                
                
                
                    maven-resources-plugin
                    3.0.2
                
                
                    maven-compiler-plugin
                    3.8.0
                
                
                    maven-surefire-plugin
                    2.22.1
                
                
                    maven-war-plugin
                    3.2.2
                
                
                    maven-install-plugin
                    2.5.2
                
                
                    maven-deploy-plugin
                    2.8.2
                
            
        
    

web.xml配置Servlet的映射




  Archetype Created Web Application

  
    dispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
    
    
      contextConfigLocation
      classpath:springmvc.xml
    
    
    1
  
  
    dispatcherServlet
    /
  


配置SpringMVC.xml配置文件




    
    

    
    
        
        
    

    
    


目录结构如下:


SpringMVC入门_第1张图片

配置前端控制器的class文件

package com.ygg.controller;

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

/**
 * 控制器
 * @author rt
 */
@Controller
public class HelloController {
    /**
     * 接收请求
     * @return
     */
    @RequestMapping(path = "/hello")
    public String sayHello() {
        System.out.println("Hello SpringMVC!!");
        return "success";
    }
}

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>


    Title



    

入门成功

success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>


    Title



    

入门成功

配置完成
开始验证是否配置成功


SpringMVC入门_第2张图片

SpringMVC的请求流程


SpringMVC入门_第3张图片

SpringMVC入门_第4张图片

请求绑定入门


一. 绑定机制

  1. 表单提交的数据都是k=v格式的 username=haha&password=123
  2. SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的
  3. 要求:提交表单的name和参数的名称是相同的
    二. 支持的数据类型
  4. 基本数据类型和字符串类型
  5. 实体类型(JavaBean)
  6. 集合数据类型(List、map集合等)
    三. 实体类型(JavaBean)
  7. 提交表单的name和JavaBean中的属性名称需要一致
  8. 如果一个JavaBean类中包含其他的引用类型,那么表单的name属性需要编写成:对象.属性 例如:address.name

创建Account类作为JavaBean

package com.ygg.domain;

import java.io.Serializable;

public class Account implements Serializable {
    private String username;
    private String password;
    private String money;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getMoney() {
        return money;
    }

    public void setMoney(String money) {
        this.money = money;
    }

    @Override
    public String toString() {
        return "Account{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", money='" + money + '\'' +
                '}';
    }
}

param.jsp来发送数据

<%--请求参数的绑定--%>
<%--请求参数绑定--%>

姓名:
密码:
金额:

ParamController类作为前端控制器

package com.ygg.controller;

import com.ygg.domain.Account;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/param")
public class ParamController {

    @RequestMapping("/testParam")
    public String testParam(String username){
        System.out.println("执行了...");
        System.out.println(username);
        return "success";
    }

    @RequestMapping("/saveAccount")
    public String saveAccount(Account account){//这里直接引入Account它能自动封装
        System.out.println("账户数据"+account);
        return "success";
    }
}

SpringMVC入门_第5张图片

解决中文乱码问题


配置一个解决乱码的过滤器


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

你可能感兴趣的:(SpringMVC入门)