Spring MVC 狂神说自学笔记(helloMVC篇)
作者:互联网
0.重点理解
spring :IOC和aop
springMVC :他的执行流程要搞懂
回顾:什么是mvc:模型(model) 视图(view) 控制器(controller)
课外:推荐看的书:《淘宝的十年革命》
———————————————————————————————————————————
1.springMVC的执行原理
自我理解:
第一步:用户发起请求的时候会经过一个前端控制器(DispatcherServlet)
第二步(2,3,4):前端控制器会根据这个请求找到映射器(HandlerMapping),然后把这个映射器返回给DispatcherServlet
第三步(5~8):根据映射器 去 适配(适配器:HandlerAdapter) 这个映射器,适配到的映射器就是一个Controller(控制器), 然后会执行一个具体的Controller ,执行完了之后会返回一个ModelAndView
第四步 (9,10):通过ModelAndView去配置具体的 视图解析器(ViewResolver) ,然后ViewResolver在返回给DispatcherServlet
第五步:DispatcherServlet 把ViewResolver的数据交给 View 进行展示 然后结束。
———————————————————————————————————————————
2.练习过程
第一步:把框架搭好 把可避免的错误都避免
第二步: 配置前端控制器(DispatcherServlet) web.xml
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--说明context是在哪-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!--运行级别 1 就是和服务器一起运行-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<!--
这里要明白 /和/* 的区别
/ : 就是不会吧jsp文件访问
/*: 会吧jsp访问 如果访问了哪就会在后面多一个.jsp
-->
<url-pattern>/</url-pattern>
</servlet-mapping>
第三步:配置环境 (映射器,适配器,视图解析器) 他其实就是一个spring
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
springMVC的运行环境
<!--处理器映射器-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--处理器适配器-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--视图解析器:DispatcherServlet给他的ModelAndView-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>
<!--因为我们是使用的BeanNameUrl 的处理器 所以就要配置一个这个-->
<bean id="/hehe" class="com.kuang.controller.SpringController"/>
第四步:编写Controller
public class SpringController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mv = new ModelAndView();
mv.setViewName("hello");
mv.addObject("msg","HelloSpringMVC");
return mv;
}
}
可能发生的错误:404 找不到页面 大概是lib没有jar包 。还有的就是bean没有实例化,应该就是你pom.xml 里的环境有问题(我是这样解决的)
3.需要记忆的单词
*前端控制器:DispatcherServlet
*处理器映射器:HandlerMapping
*处理器适配器:HandlerAdapter
*视图解析器:ViewResolver
*控制器:Controller
*上下文配置位置:context Config Location
视图:view
模型:model
*前缀:prefix
*后缀:suffix
属性:property
在启动时加载:load on startup
初始化:init param
模式:pattern
映射:mapping
标签:helloMVC,控制器,映射器,Spring,视图,Controller,MVC,ModelAndView,DispatcherServlet 来源: https://blog.csdn.net/flight___/article/details/123076524