SSM——SpringMVC入门学习



SpringMVC 的介绍:

在这里插入图片描述

(1)springmvc 是什么?

Spring mvc属于表现层的框架,它是Spring框架的一部分

(2)springmvc 有什么用?

  • 》接收请求,获取参数
  • 》处理参数
  • 》将结果响应给浏览器 如 重定向或者请求转发或者返回json
    springmvc就是对Servlet的封装

(3)springMVC与Spring 关系

springMVC是spring的一个组件/模块,springMVC是属于spring。类似于spring里面的其他模块:
比如:(1)bean (2)tx:事务管理 (3)AOP

(4)springMVC与MVC的关系

  • (1)springMVC是MVC模式里面的control模块。是一个控制层的框架。类似于:servlet,structs2等。
  • (2)SpringMVC 是遵循MVC模式的一个控制层框架。

SSM–>spring+springMVC+Mybatis
Ssh–>structs2+spring+hibernate
Spring(整个系统架构的对象)+springMVC+HIbernate—?行不行?能不能整合?
Spring+springMVC+JBDC?–>行不行?

(5)ssm与ssh的关系

SSM框架使用得比ssh多得多。

  • (1)更改控制层的框架。将structs2改成了springMVC。
    springMVC 在处理大型应用的时候,基本非常稳定,没有什么漏洞。
  • (2)更改持久化层的框架。将hibernate改成了Mybatis.
    Hibernate是一个重量级全自动持久化框架。–开发来说很简单,不需要做任何开发,甚至都不用写sql代码,sql代码也是hibernate框架自动生成。
  • 全自动的问题:
    *都导致配置比较麻烦,或者开发人员不容易理解。
    *全封装。灵活的同时不灵活。如果说我们要进行非常复杂的sql查询处理,全自动封装反而不灵活,也麻烦。

Mybatis是一个轻量的半自动持久化框架。–需要开发sql。

SpringMVC架构(MVC设计模式在BS系统下的应用)

springmvc 属于spring FrameWork的一部分,就是一个模块

在这里插入图片描述

SpringMVC框架原理

在这里插入图片描述

扫描二维码关注公众号,回复: 11901535 查看本文章

(1)前端控制 dispaterServlet

【不需要程序员开发,是springMVC框架提供,需要配置】
SpringMVC的核心它是springMVC的大脑,或者CPU。

  • SpringMVC通过dispatcherServlet与映射器处理,适配器处理器,视图解析器进行交互,降低了系统的耦合度。映射器处理,适配器处理,视图解析器可以独立的发展/配置。

  • 配置:servlet。—》在web.xml中配置。

  • 配置的目的:让所有的请求,首先访问dispatcherServlet 前端控制器。

<servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 表示容器在启动时立即加载servlet -->
    <load-on-startup>1</load-on-startup>
</servlet> 
<servlet-mapping>
	<servlet-name>springmvc</servlet-name>
	<!-- 处理所有URL
配置的方式:
(1)*. do或者*.action,*.abc。加了固定的请求后缀。要求所有的request请求都是.do/.action结尾。【推荐】
(2)/ 表示所有的路径。/login.jsp或者/login.html--也会被匹配到,这是我们不希望的。需要配置排除掉所有的/.html或者/*.jsp映射到该目录。【推荐】
(3)/* 不建议使用。会匹配到任何类型的请求。
-->
   <url-pattern>/</url-pattern>
</servlet-mapping>

(2)映射器处理器

【不需要程序进行开发,需要配置】

非注解:
BeanNameUrlHandlerMapping:根据name与路径进行映射,找到对应的handler.4

<!--处理器 映射器-->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
   <!--处理器-->
  <bean name="/hello.do" class="cn.happy.day01.FirstController"></bean>

SimpleUrlHandlerMapping :根据映射的key与路径进行映射,然后使用value与handler进行映射。

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
	   <property name="mappings">
		<props>
		   <prop key="/welcome.htm">welcomeController</prop>
		   <prop key="/*/welcome.htm">welcomeController</prop>
		   <prop key="/helloGuest.htm">helloGuestController</prop>
		 </props>
	   </property>
	</bean>
	<bean id="welcomeController" 
		class="com.mkyong.common.controller.WelcomeController" />	
	<bean id="helloGuestController" 
		class="com.mkyong.common.controller.HelloGuestController" />

注解:
RequestMappingHandlerMapping

<!-- 注解的映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

配置:
(1)在springMVC的配置文件中配置。
默认:springMVC的配置文件在WEB-INF/下面,springmvc-servlet.xml。
(2)配置映射器处理器。

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

(3)处理器

<bean name="/hello.do" class="cn.happy.day01.FirstController"></bean>
请求路径-> /hello.do

(3)适配器处理器

非注解:【了解】
SimpleControllerHandlerAdapter

HttpRequestHandlerAdapter
注解:
RequestMappingHandlerAdapter

<!-- 注解的适配器 -->    
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

配置:
(1)在springMVC的配置文件中配置。
处理器适配器–适配对应规则的handle/controller。
SimpleControllerHandlerAdapter–规则是:要求所有的handler类实现Controller。
HttpRequestHandlerAdapter–规则是:要求所有的handler类必须实现HttpRequestHandler
RequestMappingHandlerAdapter。

(2)在springMVC的配置文件中添加下面的信息。

<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

(4)处理器Handler

【需要程序员开发】
根据配置的适配器处理器不同,开发方式不同。

(5) ModelAndView

【需要开发】
包含Model和View。Model就是页面的数据,View就是显示页面。
View是有很多种类型的:Jsp,Excel,word,pdf 。。。
在开发过程中视图通常是jsp。所以我们要配置的视图解析器,就是JSP的视图解析器,–用于解析JSP视图和model,将model填充到视图里面去。

(6)视图解析器

【不需要程序员开发,只需要配置】

配置:

  • (1)在springMVC的配置文件中配置。
  • (2)在springMVC的配置文件中添加对应的视图解析器类。一般B/S架构中使用的视图接卸器是jsp的。
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
              id="internalResourceViewResolver">
       <!-- 前缀 -->
       <property name="prefix" value="/WEB-INF/jsp/" />
       <!-- 后缀 -->
       <property name="suffix" value=".jsp" />
  </bean>

SpringMVC的简单处理流程

  • 》核心是前端控制器
  • 》真正处理业务的是Handler
    在这里插入图片描述
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41209886/article/details/109065194