SpringMVC基础:运行原理流程图及实现
2021-03-19 09:24
标签:底层实现 inter -o servlet bean jsp sch 支持 生成 注意:实线部分Spring已经完成的 我们只需要是实现虚线部分 1.导入MVC依赖(添加web支持) 使用Idea做web开发时,注意:别忘了在项目结构中的 artifacts/WERB-NF下创建一个lib,并将依赖jar包全部导入其中 2.配置web.xml,注册DispatcherServlet DispatcherServlet,是servlet上一层,对用户和servlet之间进行接收或转发(分发的作用),是SpringMVC的特有的, 因为有封装了一层,是程序更加简易 注意:/和/*的区别 /*:匹配所有请求,会去匹配jsp页面 3,创建控制器(类) 4,创建bean配置文件(Application.xml) 作用:将对应类导入springIOC容器中 SpringMVC工作流程小结:1,用户操作,生成一个请求(servlet) 2.这个servlet进入到SpringMVC的DispatcherServlet(请求分发器),通过映射处理器(BeanNameUrlHandlerMapping)的execution方法解析,获得参数,返回给请求分发器, 3.DispatcherServlet在将信息传给url/映射适配器,通过它去找相对应controller,控制层的接口实现类, 4.controller将已经封装好的model和view传回给适配器(HandlerAdapter),适配器再传给dispatcherServlet 5.最后跳转页面,并将model部署到页面中实现后台与用户的交互 SpringMVC基础:运行原理流程图及实现 标签:底层实现 inter -o servlet bean jsp sch 支持 生成 原文地址:https://www.cnblogs.com/CL-King/p/13942123.htmlMVC:Model(dao,service) View(jsp) Controller(servlet)
模型 视图 控制器
一,web开发的两个发展阶段
二,SpringMVC流程图(官方中文版)
实际上(具体流程)SpringMVC流程图
三,SpringMVC的简单搭建 (底层实现)
xml version="1.0" encoding="UTF-8"?>
web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
servlet>
servlet-name>springmvcservlet-name>
servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
init-param>
param-name>contextConfigLocationparam-name>
param-value>classpath:springmvc-servlet.xmlparam-value>
init-param>
load-on-startup>1load-on-startup>
servlet>
servlet-mapping>
servlet-name>springmvcservlet-name>
url-pattern>/url-pattern>
servlet-mapping>
web-app>
答:/:只匹配所有请求,不会去匹配jsp页面package com.king.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloController implements Controller {
public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
//ModelAndView 模型和视图
ModelAndView mv = new ModelAndView();
//封装对象,放在ModelAndView
mv.addObject("msg","HelloSpringMVC!");
//封装要跳转的视图,放在ModelAndView中
mv.setViewName("hello");//: /WEB-INF/jsp/hello.jsp
return mv;
}
}
xml version="1.0" encoding="UTF-8"?>
beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
https://www.springframework.org/schema/aop/spring-aop.xsd">
bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
property name="prefix" value="/WEB-INF/jsp/"/>
property name="suffix" value=".jsp"/>
bean>
bean id="/hello" class="com.king.controller.HelloController"/>
beans>
文章标题:SpringMVC基础:运行原理流程图及实现
文章链接:http://soscw.com/index.php/essay/66174.html