zoukankan      html  css  js  c++  java
  • Spring MVC 工作流程详解

    1.首先先来一张图

    开始流程----------------》

    1.用户发送请求到前端控制器,前端控制器会过滤用户的请求,例如我们在web.xml里面配置的内容;

    <!-- 配置SpringMVC核心控制器 -->
      <servlet>
        <servlet-name>springMVC</servlet-name>

        //前端控制器是一个Servlet 
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath*:config/spring-mvc.xml</param-value>
        </init-param>
        <!-- 启动加载一次 -->
        <load-on-startup>1</load-on-startup>
      </servlet>

    <servlet-mapping>
            <servlet-name>springMVC</servlet-name>
            <!-- 此处可以可以配置成*.do -->
            <url-pattern>/</url-pattern>
    </servlet-mapping>

    这里表示过滤以/开始的所有请求

    2-3.前端控制器会找到处理器映射器(HandlerMapping),简单来说就是它会去找你配置好@Controller ,然后把请求的url 与处理器绑定在一起

    @Controller
    public class UserCon {

    @Autowired
    private UserService userService;

    @ResponseBody
    @RequestMapping(method = RequestMethod.POST, value = "/login")
      public String login(HttpServletRequest request) {

      String phone = request.getParameter("phone");
      String password = request.getParameter("password");
      boolean b = userService.login(phone, password);
      if (b) {
        return "true";
      }
        return "false";

    }

    这里绑定url就是/login 这里吧login和login()方法绑定在一起,并且返回这个绑定后的Map集合

    4-5 HandlerAdapter 会将Map集合中的Login()拿出来交给Handler处理器

    5-6 Handler处理器处理代码最终会处理器会返回一个ModelAndView对象给HandlerAdapter(这里不返回视图,直接返回String)

    7-8 通过HandlerAdapter将ModelAndView对象返回给前端控制器(DispatcherServlet)

    9-10 前端控制器请求视图解析器(ViewResolver)去进行视图解析,根据逻辑视图名解析成真正的视图(jsp);

    最终返回给用户,呈现在浏览器上

  • 相关阅读:
    集群项目总结和思考
    centos7安装zabbix
    string方法中字符与Unicode编码的相互转化:fromCharCode(),charCodeAt()
    element-ui @change添加自定义参数
    js ES6字符串的新功能
    js 去除字符串中的空格
    五月份,是金色的
    夏天快要到来了,2019年还有一半多的时间
    自定义element-ui中的图标
    js下拉框:从数组中筛选出匹配的数据
  • 原文地址:https://www.cnblogs.com/ChromeT/p/9959644.html
Copyright © 2011-2022 走看看