Spring篇--02 Spring IOC
一、Spring MVC
1.spring mvc是什么
是一个mvc框架,用来简化基于mvc框架的web应用开发
2.五大组件
(1)DiapatcherServlet
接受请求,依据HandlerMapping的配置调用相应的模型来处理
(2)HandlerMapping
包含了请求路径与模型的对应关系
(3)Controller(处理器)
负责处理业务逻辑
(4)ModelAndView
封装了处理结果
注:处理结果除了数据之外,还可能有视图名
(5)ViewResolver(视图解析器)
DispatcherServlet依据ViewResolver的解析,调用真正的视图对象来生成相应的页面
3.五大组件的关系
a.DispatcherServlet收到请求之后,依据HandlerMapping的配置,调用相应的Controller来处理
b.Controller将处理结果封装成ModelAndView对象,然后返回给DispatcherServlet。
c.DispatcherServlet依据ViewResolver的解析,调用相应的视图对象(比如某个jsp)来生成相应的页面
4.编程步骤
step1:导包
建立maven项目,导入依赖包
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.1.8.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> </dependency> </dependencies>
step2:添加配置文件
在src/main/resource下面新建一个spring_mvc.xml文件
step3:配置DispatcherServlet
在web.xml文件中
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- DispatcherServlet在初始化方法里面,会读取该初始化参数的值来获取spring 配置文件的位置,然后启动spring容器 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring_mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
step4:Controller(处理器)
在src/main/java下建立controller包下新建一个HelloController控制器 package controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; public class HelloController implements Controller{ public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { System.out.println("handleRequest()"); /* * ModelAndView有两个构造器: * (1)ModelAndView(String viewName),viewName是视图名 * (2)ModelAndView(String viewName,Map data),Map用于封装处理数据 */ return new ModelAndView("hello"); } }
step5:配置HandlerMapping
在spring_mvc.xml文件中
<!-- 配置HandlerMapping --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/hello.do">helloController</prop> </props> </property> </bean> <!-- 配置处理器 --> <bean id="helloController" class="controller.HelloController"/>
step6:配置视图解析器ViewResolver
在spring_mvc.xml文件中
<!-- 配置视图解析器ViewResolver --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/"/> <property name="suffix" value=".jsp"/> </bean>
5.运行流程