SpringMVC个人总结
SpringMVC是基于MVC模式的web框架,采用前端控制器设计模式,属于SpringFrameWork的后续产品。现在以一个基本Hello World入门程序为例,通过XML配置形式介绍springMVC基本开发流程:
1.加入所需要的jar包,springMVC是建立在Spring IoC为容器,因此需要加入IoC相关的jar包(采用spring3.2.16版本)
commons-logging-1.1.3.jar
spring-beans-3.2.16.RELEASE.jar
spring-context-3.2.16.RELEASE.jar
spring-core-3.2.16.RELEASE.jar
spring-expression-3.2.16.RELEASE.jar
spring-web-3.2.16.RELEASE.jar
spring-webmvc-3.2.16.RELEASE.jar
2.配置springMVC的核心控制器DispatcherServlet,该控制器是一个servlet因此需要在web.xml中进行配置,如下
<!--配置springMVC核心控制器--><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping>
3.加载配置文件,配置文件默认为名称为:核心控制器名称-servlet.xml,本例默认配置文件为
dispatcher-servlet.xml,该文件位置在WEB-INF目录下,若配置文件名自定义,则需要在配置核心控 制器时,配置参数contextConfigLocation指定其路径,一般放在classpath下
4.配置处理器映射器HandlerMapper,默认为BeanNameUrlHandlerMapping
<beanclass="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
5.配置处理器适配器HandlerAdapter,默认为SimpleControllerHandlerAdapter
<beanclass="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
6.创建处理器HelloController继承Controller
packagecom.lw.action;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.springframework.web.servlet.ModelAndView;importorg.springframework.web.servlet.mvc.Controller;publicclassHelloControllerimplementsController{@OverridepublicModelAndViewhandleRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsException{ModelAndViewmv=newModelAndView();mv.setViewName("hello");mv.addObject("hello","helloworld");returnmv;}}
7.在配置文件中配置该处理器,name为url与该控制器映射
<beanname="/hello.action"class="com.lw.action.HelloController"></bean>
8.配置视图解析器ViewResolver
<beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><propertyname="prefix"value="/WEB-INF/jsp/"/><propertyname="suffix"value=".jsp"></property></bean>
9.创建在WEB-INF/jsp目录下创建一个hello.jsp页面
<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>hello页面</title></head><body>${hello}</body></html>
10.将该项目部署到tomcat上,打开浏览器访问路径http://localhost:8080/springMVC/hello.action
输出结果为
helloworld
简单总结SpringMVC工作原理
客户端发送http请求给web服务器,web服务器对请求进行解析,若匹配DispatcherServlet映射路径(在web.xml中配置),则web容器将转发给DispatcherServlet。
DispatcherServlet接收请求后通过配置的处理器映射器handlerMapping对request进行映射解析找到请求的处理器,并将其封装成处理器执行链HandlerExecutionChain返回给DispatcherServlet;
DispatcherServlet根据放回的HandlerExecutionChain中的处理器找到处理器适配器HandlerAdapter
DispatcherServlet通过HandlerAdapter来调用具体处理器的方法来处理请求,对数据处理完后将返回一个ModelAndView对象给DispatcherServlet
返回的ModelAndView只是一个逻辑视图,需要DispatcherServlet调用视图解析器ViewResolver将逻辑视图转化为真正视图View对象,并返回一个view对象给DispatcherServlet
DispatcherServlet通过调用view对象的render方法对视图进行渲染,终展现出完整的view并返回给客户端。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。