大纲摘要:
1、Springmvc介绍
2、入门程序
3、Springmvc架构讲解
a) 框架结构
b) 组件说明
4、Springmvc整合mybatis
5、参数绑定
乱码问题解决
a) Springmvc默认支持的类型
b) 简单数据类型
c) Pojo类型
d) Pojo包装类型
e) 自定义参数绑定
Springmvc和struts2的区别
一、springMVC介绍
springMVC是一个表现层框架
作用:从请求中获取传入的参数
将处理后的结果数据返回给页面显示
SpringMVC运行流程:
//把数据和标签拼装进行显示的过程叫做渲染
大致流程:(引用自http://blog.csdn.net/u014010769/article/details/47354529)
第一步:发起请求到前端控制器(DispatcherServlet)
第二步:前端控制器请求HandlerMapping查找 Handler
可以根据xml配置、注解进行查找
第三步:处理器映射器HandlerMapping向前端控制器返回Handler
第四步:前端控制器调用处理器适配器去执行Handler
第五步:处理器适配器去执行Handler
第六步:Handler执行完成给适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView
ModelAndView是springmvc框架的一个底层对象,包括Model和view
第八步:前端控制器请求视图解析器去进行视图解析
根据逻辑视图名解析成真正的视图(jsp)
第九步:视图解析器向前端控制器返回View
第十步:前端控制器进行视图渲染
视图渲染将模型数据(在ModelAndView对象中)填充到request域
第十一步:前端控制器向用户响应结果
二、入门程序
版本:Springmvc:4.1.3
需求:
使用springmvc实现商品列表的展示。(此处演示只使用静态数据)
导包:(独立运行springMVC的jar包)
此时来试试直接配置前端控制器并启动服务器(装了springIDE插件后将变得非常简单,一步到位配置)
<servlet>
<servlet-name>springMVC</servlet-name>
<!-- 在webmvc.jar里面servlet的包里面找 ,复制全路径名去掉class即可-->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- tomcat启动时即加载,12345代表顺序 -->
<load-on-startup>1</load-on-startup>
<!-- 如果没有指定核心配置文件,默认会去找servlet-name+ -servlet.xml
此处即使springMVC-servlet.xml
一般而言,会在项目目录下新建配置文件夹 source folder config
-->
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
//此时会报配置文件/WEB-INF/xxx.xml未找到的异常
创建 source folder ,并在里面创建springMVC.xml
<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
</beans>
//这里暂时只引入约束,具体内容待补充
在web.xml中前端控制器的servlet下指定核心配置文件的路径等信息
当然,也可以使用默认的配置文件的位置,name就是<servlet-name>-servlet.xml
<!-- 初始化参数 ,指定核心配置文件路径
spring-servlet.xml因为被配置在servlet的初始化过程中,
所以如果不初始化servlet,
那么spring-servlet.xml是不会被发现的
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springMVC.xml</param-value>
</init-param>
此时完整的web.xml如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>springMVC01</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!-- springMVC前端控制器 --> <servlet> <servlet-name>springMVC</servlet-name> <!-- 在webmvc.jar里面servlet的包里面找 ,复制全路径名去掉class即可--> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 初始化参数 ,指定核心配置文件路径 spring-servlet.xml因为被配置在servlet的初始化过程中, 所以如果不初始化servlet, 那么spring-servlet.xml是不会被发现的 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springMVC.xml</param-value> </init-param> <!-- tomcat启动时即加载,12345代表顺序 --> <load-on-startup>1</load-on-startup> <!-- 如果没有指定核心配置文件,默认会去找servlet-name+ -servlet.xml 此处即使springMVC-servlet.xml 一般而言,会在项目目录下新建配置文件夹 source folder config --> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> </web-app>