SpringMVC--入门

MVC设计模式:

SpringMVC--入门_第1张图片

MVC流程: 

SpringMVC--入门_第2张图片

SpringMVC:

SpringMVC--入门_第3张图片


SpringMVC详解:

SpringMVC--入门_第4张图片

SpringMVC--入门_第5张图片

SpringMVC--入门_第6张图片


SpringMVC实现流程:

SpringMVC--入门_第7张图片

SpringMVC--入门_第8张图片

SpringMVC--入门_第9张图片

SpringMVC--入门_第10张图片


SpringMVC深入使用:

SpringMVC--入门_第11张图片


SpringMVC--基于XML配置:

SpringMVC--入门_第12张图片

1、创建一个maven web工程:并在pom.xml里导入依赖

  
    
      junit
      junit
      4.8.1
      test
    


    
      javax.servlet
      javax.servlet-api
      3.1.0
    


    
      org.springframework
      spring-webmvc
      4.3.1.RELEASE
    
  

在web.xml配置前置控制器:

  
    SpringMVC
    org.springframework.web.servlet.DispatcherServlet

    
      contextConfigLocation
      classpath:springmvc.xml
    
  
  
    SpringMVC
    /
  

springmvc.xml:配置请求和相应的处理操作,根据请求配置相应Handler和jsp页面.





    
    

        
        
            
                
                testHandler
            

        
    

    
    

    
    
        
        
        
        
    

MyHandler:

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class MyHandler implements Controller {
    @Override
    public ModelAndView handleRequest(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse) throws Exception {
        //装载模型数据和逻辑视图
        ModelAndView modelAndView = new ModelAndView();
        //添加模型数据
        modelAndView.addObject("name","TOM");
        //添加逻辑视图
        modelAndView.setViewName("show");
        return modelAndView;
    }
}

show.jsp:test请求都有本页面进行显示。

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


    Title


hello ${name}.


测试:访问 http://localhost:8080/SpringMVCTest/test

输出结果:

 


SpringMVC--基于注解:

SpringMVC--入门_第13张图片

AnnotationHandler: 配置注解Handler

package com.imooc.handler;

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

//基于注解的方式,不需要实现Controller类
//设置其为控制器
@Controller
public class AnnotationHandler {
    /**
     * 业务方法:ModelAndView完成数据的传递,视图的解析
     */

    //设置匹配的请求
    @RequestMapping("/AnnotationTest")
    public ModelAndView modelAndViewTest(){

        //创建ModelAndView对象
        //装载模型数据和逻辑视图
        ModelAndView modelAndView = new ModelAndView();
        //添加模型数据
        modelAndView.addObject("name","Jack");
        //添加逻辑视图
        modelAndView.setViewName("show");
        return modelAndView;

    }
}

在springmvc.xml配置,实现自动扫描功能,将注解Handler添加到IOC容器中:



    
    
    
    
        
        
        
        
    

测试:访问 http://localhost:8080/SpringMVCTest/AnnotationTest

输出结果:

SpringMVC--入门_第14张图片


注解实现的业务方法2:Model传值,String进行视图解析

AnnotationHandler:

package com.imooc.handler;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.Map;

//基于注解的方式,不需要实现Controller类
//设置其为控制器
@Controller
public class AnnotationHandler {
    /**
     * 方法2:
     * 业务方法:Model传值,String进行视图解析
     */
    @RequestMapping("/ModelTest")
    public String ModelTest(Model model){
        //填充模型数据
        model.addAttribute("name","jerry");
        //设置逻辑视图
        return "show";

    }
}

输出结果:

SpringMVC--入门_第15张图片


注解实现的业务方法3:

Map传值,String进行视图解析

AnnotationHandler:

package com.imooc.handler;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.Map;

//基于注解的方式,不需要实现Controller类
//设置其为控制器
@Controller
public class AnnotationHandler {

    /**
     * 方法3:
     * 业务方法:Map传值,String进行视图解析
     */
    @RequestMapping("/MapTest")
    public String MapTest(Map map){
        //填充模型数据
        map.put("name","cat");
        //设置逻辑视图
        return "show";

    }
}

输出结果:

SpringMVC--入门_第16张图片


案例展示:处理前台添加商品,并将其显示到页面上

Goods实体类:

package com.imooc.entity;

/**
 * Created by Administrator.
 */
public class Goods {
	private String name;
	private double price;
	public  String getName(){
		return this.name;
	}
	public void setName(String name){
		this.name = name;
	}
	public double getPrice(){
		return this.price;
	}
	public void setPrice(double price){
		this.price = price;
	}
}

add.jsp:

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


    add
    
    


AnnotationHandler:

package com.imooc.handler;

import com.imooc.entity.Goods;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.Map;

//基于注解的方式,不需要实现Controller类
//设置其为控制器
@Controller
public class AnnotationHandler {
    /**
     * 添加商品并展示
     */
    @RequestMapping("/addGoods")
    public ModelAndView addGoods(Goods goods){
        System.out.println(goods.getName()+"---"+goods.getPrice());
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject("goods",goods);
        modelAndView.setViewName("show");
        return modelAndView;
    }
}

在web.xml配置其中文乱码和静态资源的正常使用:


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


  
    default
    *.css
  

输出结果:

SpringMVC--入门_第17张图片

SpringMVC--入门_第18张图片


总结:

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