springmvc入门

目录

一.什么是springmvc

二.如何在项目中加入springmvc支持

三.编写一个简单的controller控制器

四.视图层配置

五.springmvc处理请求的流程

六.常用的注解


一:什么是springmvc

1.Spring Web Mvc 是一种基于java的实现了MVC设计模式,请求驱动类型的,轻量级的Web框架

2.ssm:即springmvc,spring,mybatis


二.如何在项目中加入springmvc支持

1.首先我们在pom.xml中导入我们所需要的依赖

    
      org.springframework
      spring-webmvc
      5.3.18
    


    
      jstl
      jstl
      1.2
    
    
      taglibs
      standard
      1.1.2
    

2.在导入依赖完成后我们去配置springMVC文件

首先我们编写spring-mvc.xml配置文件将其放在WEB-INF中。配置代码如下



    
    
    

    
    
        
        
        
    

    
	
    
    

    
    
        
        
        
        
    

    
    

将提供的web.xml放入WEB-INF目录替换原来的配置文件。需要理解配置文件的各个部分的作用。



    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
        /
    


三:编写一个简单的controller

首先在controller包中创建一个TestController类如下

springmvc入门_第1张图片

 

注: 示例中用到的注解:

  • @Controller:该注解在springmvc中用于标记一个控制器,类似的注解还有@RestController,不同的是@RestController专门用于标记一个rest风格的接口,相当于@ResponseBody + @Controller合在一起的作用。
  • @RequestMapping:该用于标记请求路径,在有些参考资料中也称之为服务端点。该注释可以用在方法上也可以用在类上。

使用浏览器测试,如果服务后台输出了提示字符串,则说明配置成功,现在页面上会显示错误,因为目前还没有配置页面。


四.视图层配置

1 视图解析器配置

springmvc入门_第2张图片

 注: 如果是前后端分离的开发方式则不需要配置。

2静态资源配置

springmvc入门_第3张图片

为了方便配置可以将所有的静态资源放置在static目录中,具体配置如图所示:

springmvc入门_第4张图片 

3.编写界面 

springmvc入门_第5张图片

修改controller的配置

springmvc入门_第6张图片 4.页面跳转方式

转发: "forward:path"

springmvc入门_第7张图片

 重定向: "redirect:path"

springmvc入门_第8张图片

 注: 因为页面文件放置在了WEB-INF目录下,所以不能直接重定向到页面。注意看示例。


五.springmvc处理请求的流程

主要组件
1 首先用户发送请求-->DispatherServlet
2 DispatcherServlet-->HandlerMapping
3 DispatcherServlet-->HandlerAdapter
4 HandlerAdapter-->处理器功能处理方法的调用
5 ModelAndView的逻辑视图名-->ViewRecolver
6 View-->渲染
7 返回控制权给DispatcherServlet,由DispatcherServlet返回呼应给用户,流程结束

处理流程示意图:

springmvc入门_第9张图片

Spring工作流程描述
      1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;
      2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;
      3. DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法)
       4.  提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:
      HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息
      数据转换:对请求消息进行数据转换。如String转换成Integer、Double等
      数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等
      数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中
      5.  Handler执行完成后,向DispatcherServlet 返回一个ModelAndView对象;
      6.  根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet ;
      7. ViewResolver 结合Model和View,来渲染视图
      8. 将渲染结果返回给客户端。


 六.常用的注解

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

你可能感兴趣的:(java,开发语言,spring)