SpringMvc介绍

一、这里对SpringMVC框架进行一个简单的介绍:

1.springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。
2.springmvc是一个基于mvc的web框架。
3.springmvc 表现层:方便前后端数据的传输
4.Spring MVC 拥有控制器,作用跟Servlet类似,接收外部请求,解析参数传给服务层
5.MVC是指,C控制层,M模块层,V显示层这样的设计理念,而SSM框架里面SPRING MVC本身就是MVC框架,作用是帮助(某种意义上也可以 理解为约束)

springmvc项目架构图
SpringMvc介绍_第1张图片

Springmvc架构原理解析

  1. 发起请求到前端控制器(DispatcherServlet)
  2. 前端控制器请求HandlerMapping查找 Handler,可以根据xml配置、注解进行查找
  3. 处理器映射器HandlerMapping向前端控制器返回Handler
  4. 前端控制器调用处理器适配器去执行Handler
  5. 处理器适配器去执行Handler
  6. Handler执行完成给适配器返回ModelAndView
  7. 处理器适配器向前端控制器返回ModelAndView,ModelAndView是springmvc框架的一个底层对象,包括 Model和view
  8. 前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)
  9. 视图解析器向前端控制器返回View
  10. 前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域
  11. 前端控制器向用户响应结果
     

一、SpringMVC基础入门,创建一个HelloWorld程序

  1. 首先,导入SpringMVC需要的jar包。
    
        org.springframework
        spring-webmvc
        ${spring.version}
    
    
    
    
      jstl
      jstl
      1.2
    
    
      taglibs
      standard
      1.1.2
    

  2. 添加Web.xml配置文件中关于SpringMVC的配置
    
    
        Archetype Created Web Application
        
        
        
            contextConfigLocation
            classpath*:applicationContext*.xml
        
        
        
            org.springframework.web.context.ContextLoaderListener
        
        
    
        
        
            org.springframework.web.util.IntrospectorCleanupListener
        
    
        
        
            encodingFilter
            org.springframework.web.filter.CharacterEncodingFilter
            
            true
            
                encoding
                UTF-8
            
        
        
            encodingFilter
            /*
        
    
        
        
            SpringMVC
            org.springframework.web.servlet.DispatcherServlet
            
            
                contextConfigLocation
                WEB-INF/spring-mvc.xml
            
            
            1
            
            true
        
        
            SpringMVC
            /
        
    
    

  3. 在WEB-INF目录下添加springmvc-servlet.xml配置文件
    
    
        
        
        
    
        
        
            
            
            
        
    
        
    	
        
        
    
        
        
            
            
            
            
        
    
        
        
    
    
  4. 在WEB-INF文件夹下创建名为jsp的文件夹,用来存放jsp视图。创建一个hello.jsp,在body中添加“Hello World”。

SpringMvc介绍_第2张图片

SpringMvc介绍_第3张图片

 

 

5.建立包及Controller,

SpringMvc介绍_第4张图片

 

6.编写Controller代码  TestController

@Controller
public class TestController {


    @GetMapping("test")
    public String hello(String name){
        System.out.println("controller name= "+name);
        return "redirect:/hello";
    }

    @RequestMapping("hello")
    public String toHello(){
        return "hello";
    }

}

注: 示例中用到的注解:

@Controller:该注解在springmvc中用于标记一个控制器,类似的注解还有@RestController,不同的是@RestController专门用于标记一个rest风格的接口,相当于@ResponseBody + @Controller合在一起的作用。

@RequestMapping:该用于标记请求路径,在有些参考资料中也称之为服务端点。该注释可以用在方法上也可以用在类上。

7.启动服务器,键入 http://localhost:8080/项目名/mvc/hello

三、. 常用注解

  • @Controller:用于标识处理器类
  • @RestController注解相当于@ResponseBody + @Controller合在一起的作用
  • @RequestMapping:请求到处理器功能方法的映射规则,可定义到类和方法,常用参数:value、method
  • @RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定,常用参数:value、required、defaultValue, (required设置成false的参数类型必须是引用类型,因为基本数据类型是不能为null的)
  • @ModelAttribute:请求参数到命令对象的绑定。
    可用@ModelAttribute标注方法参数,方法参数会被添加到Model对象中(作用:向视图层传数据)
    可用@ModelAttribute标注一个非请求处理方法,此方法会在每次调用请求处理方法前被调用(作用:数据初始化)
    可用@ModelAttribute标注方法,方法返回值会被添加到Model对象中(作用:向视图层传数据)
  • @RequestBody:用于目前比较流行的ajax开发的数据绑定(即提交数据的类型为json格式)

你可能感兴趣的:(mvc,spring,java)