Spring-MVC入门

Spring-MVC入门,第1张

Spring-MVC入门

MVC架构

        M:model,数据模型(JavaBean,业务等)

        V:View,展示给用户的试图,也就是页面,视图中会对Model层的数据进行对应的处理        

        C:Controller,控制器,用于处理请求,打包数据模型,转发、跳转视图,也就是Servlet

Spring-MVC,基于Java实现的Web框架,本质上为Servlet

特点

  • 轻量级,部署快
  • 基于请求与响应实现(Servlet的核心内容)
  • 约定优于配置,也就是说按照官方提供的格式进行编码即可,否则容易出错

DispatcherServlet

Spring-MVC的核心处理器,中心控制器,此控制器接管所有请求与响应的处理

配置

 web.xml中配置DispatcherServlet,接管所有的请求


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



    springmvc
    
    /

请求映射配置中/ 与 /* 的区别

        /  :会匹配所有的请求,但是不会解析jsp页面,也就是说xxx.jsp不会被解析

        /* :会匹配所有请求与页面,当xxx.jsp被解析时,最后视图返回效果就变为了x/x/xxx.jsp.jsp

Springmvc-Servlet.xml






        
        
        
        

BeanNameUrlHandlerMapping:映射处理器,将请求映射到对应的处理器中

SimpleControllerHandlerAdapter:处理器适配器,将请求适配到对应的处理器,并执行service()

InternalResourceViewResolver:视图解析器,解析所有请求中的视图名称,并查找对应的资源,将数据模型打包分发

编写Controller层

所有的公共配置完成后,接着来处理对应的控制器

public class DemoController implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg", "A B C D");
        mv.setViewName("hello");
        return mv;
    }
}

Controller接口:Spring提供的控制层接口,用于处理请求,核心对象ModelAndView

配置映射:

接着在对应的页面中获取由后台返回的数据即可

常见问题

        404:可能是由于IDEA的项目部署中,没用引入tomcat对应的jar文件所导致

        页面正常调整,但无法获取到msg的变量信息:原因是JSP和Servlet的版本导致EL表达式功能关闭,在JSP页面上添加<%@page isELIgnored="false"%>即可;

Spring-MVC执行原理

1,客户端发送请求到服务器(url)

2,请求通过web.xml中的配置,转接到DispatcherServlet

3,DispatcherServlet会将此请求交由映射器HandlerMapping,映射器会根据请求返回此请求映射的对象

4,映射器将返回到DispatcherServlet,返回的映射器会交由适配器HandlerAdapter

5,适配器HandlerAdapter会映射适配到对应的Controller进行请求处理

6,Controller连接、执行业务,封装数据模型,Controller最后返回一个ModelAndView对象

7,在ModelAndView封装了处理请求后的资源,Model和View,最终转接到DispatcherServlet

8,DispatcherServlet拿到返回的ModelAndView对象之后,通过视图解析器VIewResolver,解析ModelAndView中对应的资源路径名称,返回DispatcherServlet

——注:在Spring MVC允许多个ViewResolve存在,但InternalResourceViewResolver永远在最后一个

9、最终DispatcherServlet会根据解析的视图结果,返回对应的资源页面给客户端

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5684975.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存