目录
spring MVC
一、什么是spring MVC
spring mvc : 基于web层(请求处理和响应发送 b/s)的框架.
(sturts1,struts2,spring mvc ,spring webFlux等等都属于web层框架)mvc:是一种设计模式,是一种创建 Web 应用程序的模式
二、传统的b/s架构与spring mvc的架构有区别
mvc模式:m (model ) v(view--jsp,html) c (control--servlet)
1)传统的b/s架构
客户端------请求-----控制器(servlet)----->封装数据model中
-------响应-----------jsp-------------------------|
缺点:
1. servlet生产周期长,大量servlet的产生。占据大量内存。
2)spring mvc 的b/s架构
优点:1.只有1个servlet。
2.分工明确
中央处理器(servlet):接受请求,分配任务,发送响应
映射器:根据url,确定找谁(处理器),干什么(办什么业务),将其告诉老大
适配器:根据映射器结果,找到对应的处理器,完成任务,并将结果返回给老大
视图解析器:解析处理器返回的结果(model view)---返回哪个jsp,里面要显示什么数据, 渲染
三、spring mvc开发的流程
第1步: mybatis spring mvc需要的包(spring+ spring-web包+spring-webmvc)
第2步:web.xml配置中央处理器(spring 写好的一个servelt)
<!-- 加载spring容器 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:context.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 三、spring的编码过滤器 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--二、 spring mvc的配置==>中央处理器(1个老大与3个小弟) -->
<display-name>nd-springmvc01-base</display-name>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 参数 :告诉中央处理器 使用哪个映射器,哪个适配器,哪个视图解析器 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-web.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- / 中央处理器处理所有请求:包括jsp html 注意:不能写/*,否则报错 *.do 中央处理器处理url中以.do结果 比如:
http://127.0.0.1:8080/easybuy/index.do 被处理 http://127.0.0.1:8080/easybuy/index.jsp
不被处理 -->
<!-- <url-pattern>*.do</url-pattern> -->
<url-pattern>/</url-pattern>
</servlet-mapping>