springmvc概述
1.1springmvc基本说明
springmvc是基于spring的,是spring中的一个模块。做web开发使用的,springmvc叫做spring web mvc,说明他是spring的核心技术,做web开发,springmvc内部是使用mvc架构模式,
springMVC是一个容器,管理对象,使用IOC核心技术,springmvc管理界面层中的控制器对象。
springmvc底层也是servlet为核心,接收请求,处理请求,显示处理结果给用户,
处理用户的请求:
用户发起请求—springmvc—spring—mybatis-mysql数据库,
1.2springMVC中核心servlet—DispatcherServlet
DispatcherServlet是框架一个servlet对象,负责接收请求,响应处理结果,
DispatcherServlet它的父类是httpservlet
DispatcherServlet也叫做前端控制器(frontcontroller)
springmvc是管理控制器对象,原来没有springmvc之前使用servlet作为控制器对象使用,现在通过springmvc容器创建一种叫做控制器的对象,代替servlet行使控制器的角色,功能。
springmvc主要是使用注解的方式,创建控制器对象,处理请求,
配置
<!--声明springmvc的核心对象
访问mymvc地址后,报错文件没有找到文件 /WEB-INF/springmvc-servlet.xml
/WEB-INF/myweb-servlet.xml
错误原因:
在servlet中init()初始化方法中,创建springmvc使用的容器对象webApplicationContext
webApplicationContext ctx=new ClasspathXmlApplicationContext(配置文件)
配置文件的默认路径:/WEB-INF/<servlet-name>-servlet.xml
-->
<servlet>
<servlet-name>myweb</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--自定义配置文件的位置-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!--
表示服务器tomcat创建对象的顺序,是个整数值,大于0
数值越小,创建对象时间越早,确定创建servlet对象的顺序
-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myweb</servlet-name>
<!--
url-pattern 作用:把一些请求交给指定的servlet处理
使用中央调度器(DispatcherServlet)
1.使用扩展名方式,格式*.xxx,xxx是自定义的扩展名,
例如*.do,*.action,*.mvc等等,不能使用*.jsp,
http:/localhost:8080/myweb/user/some.do
http:/localhost:8080/myweb/user/list.action
2.使用"/"
-->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
1.3springmvc请求处理的过程
简单的处理过程:
用户发起请求some.do—>tomcat接收了请求—DispacherServlet—分配mycontroller(dosome()返回mv对象)—mv显示给用户了,
省略tomcat
用户some.do—DispatcherServlet —mycontroller
如果使用servlet处理请求
用户发起请求----没有其他对象—servlet,
配置文件的加载顺序和功能
1.tomcat服务器启动,读取web.xml,根据web.xml文件中的说明创建对象
<servlet>
<servlet-name>myweb</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--自定义配置文件的位置-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!--
表示服务器tomcat创建对象的顺序,是个整数值,大于0
数值越小,创建对象时间越早,确定创建servlet对象的顺序
-->
<load-on-startup>1</load-on-startup>
</servlet>
创建DispatcherServlet它的对象。会执行init()方法,在init()方法中会执行springmvc容器对象创建webApplicationContext ctx=new ClasspathXmlApplicationContext(“classpath:springmvc.xml”)
2.springmvc框架,new ClasspathxmlApplicationContext()读取springmvc的配置文件
<!--spring配置文件-->
<!--声明组件扫描器-->
<context:component-scan base-package="com.controller"/>
<!--声明视图解析器:帮助处理视图-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--前缀:指定视图文件路径-->
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"/>
</bean>
使用组件扫描器base-package=“com.controller”,遍历controller包中的所有类,mycontroller类,找到类中的@controller,@requestmapping注解,就能创建mycontroller对象,知道some.do的请求是执行dosome()方法,
以上1,2都是项目启动的过程,没有执行任何的用户请求
3.用户发起请求some.do—DispatcherServlet
DispatcherServlet里面webApplicationcontext,webApplictionContext里面有mycontroller对象请求some.do,DispatcherServlet就知道是mycontroller处理的,
1.4 复习
用户发起some.do—DispatcherServlet(servlet请求)—转给mycontroller
1.4springmvc的mvc组件
简单了解就行
第一章项目内容,以模块形式到导入就能运行
链接:https://pan.baidu.com/s/1yjCZUmzYeW08Yuk5d8X4VQ
提取码:wm05