`
zhangning0422
  • 浏览: 13288 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

Spring MVC(1)

阅读更多
大部分的Java应用都是基于Web的,作为轻量级的JavaEE框架,Spring也提供了自己的Web层的展现技术,一个优秀的MVC框架—— Spring MVC。与其它的Web框架相比Spring的MVC框架在可扩展性和灵活性上有很大提高。但是相对要复杂很多。Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器、视图解析器、视图组成。以DI(笔者更喜欢DI这个概念,觉得IoC表达没有DI清晰)为核心的Spring MVC也有的技术人员认为设计太复杂,有过度设计的嫌疑。不过它确实提供了一个接近于完美的Web框架,或许这也正是Rod Johnson先生的初衷吧。下图是Spring MVC的原理框图:

整个处理过程从一个HTTP请求开始:
1)DispatcherServlet接收到请求后,根据对应配置文件中配置的处理器映射,找到对应的处理器映射项(HandlerMapping),根据配置的映射规则,找到对应的处理器(Handler)。
2)调用相应处理器中的处理方法,处理该请求,处理器处理结束后会将一个ModelAndView类型的数据传给DispatcherServlet,这其中包含了处理结果的视图和视图中要使用的数据。
3)DispatcherServlet根据得到的ModelAndView中的视图对象,找到一个合适的ViewResolver(视图解析器),根据视图解析器的配置,DispatcherServlet将视图要显示的数据传给对应的视图,最后给浏览器构造一个HTTP响应。
DispatcherServlet是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:
1)截获符合特定格式的URL请求。
2)初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。
3)初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。
下面给出一个典型的使用Spring MVC的Web应用中的web.xml文件的配置:
xml 代码
  1. xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  6. <!---->
  7. <context-param>
  8. <param-name>contextConfigLocation<!---->param-name>
  9. <param-value>
  10. classpath:com/springdemo2/dao/springdemo2-dao.xml,classpath:com/springdemo2/service/springdemo2-service.xml
  11. <!---->param-value>
  12. <!---->context-param>
  13. <!---->
  14. <listener>
  15. <listener-class>
  16. org.springframework.web.context.ContextLoaderListener
  17. <!---->listener-class>
  18. <!---->listener>
  19. <!---->
  20. <servlet>
  21. <servlet-name>springdemo2<!---->servlet-name>
  22. <servlet-class>
  23. org.springframework.web.servlet.DispatcherServlet
  24. <!---->servlet-class>
  25. <!---->servlet>
  26. <!---->
  27. <servlet-mapping>
  28. <servlet-name>springdemo2<!---->servlet-name>
  29. <url-pattern>*.html<!---->url-pattern>
  30. <!---->servlet-mapping>
  31. <welcome-file-list>
  32. <welcome-file>welcome.jsp<!---->welcome-file>
  33. <!---->welcome-file-list>
  34. <!---->web-app>

我们一般倾向于使用“.html”作为框架映射的后缀,这样做可以屏蔽服务器端所使用的具体技术,容易被搜索引擎收录。
除了上面的配置外,web.xml中的DispatcherServlet还有四个初始化参数:
1)namespace:DispatcherServlet所对应的命名空间,用以构造Spring配置文件的路径。默认条件下配置文件的路径应该为 WEB-INF/<servlet-name>(servlet-name)-servlet.xml,如果配置了该参数,那么配置文件的路径就是WEB- INF/namespace<namespace>.xml。
2)contextConfigLocation:如果有多个配置文件可以使用这个属性。其配置形式和上面的<context-param>中的相似。
3)publishContext:boolean类型属性,默认为true。DispatcherServlet根据此属性来决定是否将WebApplicationContext发布到ServletContext中去。
4)publishEvents:波哦了案类型属性,默认为true。指定当DispatcherServlet处理完一个请求后是否向容器发布一个ServletRequestHandledEvent事件。
下面演示一个开发Spring MVC的小例子,一个相当于Hello,World的小程序。程序开发使用MyEclipse6.0完成的。
1)首先要下载Spring的发布包。地址为:www.springframework.org/download
2)创建一个Web应用程序,将下载的发布包中的spring.jar(dist文件夹下)和依赖包(lib文件夹)下的commons-logging.jar、log4jxxx.jar(xxx为版本号)添加到该应用的lib文件夹下。
3)创建一个处理器,代码如下:
</context-param></namespace></servlet-name>
java 代码
  1. package com.demo1.web.controller;
  2. import javax.servlet.http.HttpServletRequest;
  3. import javax.servlet.http.HttpServletResponse;
  4. import org.springframework.web.servlet.ModelAndView;
  5. import org.springframework.web.servlet.mvc.Controller;
  6. public class HelloController implements Controller {
  7. private String name;
  8. public String getName() {
  9. return name;
  10. }
  11. public void setName(String name) {
  12. this.name = name;
  13. }
  14. public ModelAndView handleRequest(HttpServletRequest arg0,
  15. HttpServletResponse arg1) throws Exception {
  16. // TODO Auto-generated method stub
  17. return new ModelAndView("hello", "name", name);
  18. }
  19. }
4)配置web.xml文件:
xml 代码
  1. xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  6. <!---->
  7. <servlet>
  8. <servlet-name>demo1<!---->servlet-name>
  9. <servlet-class>
  10. org.springframework.web.servlet.DispatcherServlet
  11. <!---->servlet-class>
  12. <!---->servlet>
  13. <!---->
  14. <servlet-mapping>
  15. <servlet-name>demo1<!---->servlet-name>
  16. <url-pattern>*.html<!---->url-pattern>
  17. <!---->servlet-mapping>
  18. <welcome-file-list>
  19. <welcome-file>index.jsp<!---->welcome-file>
  20. <!---->welcome-file-list>
  21. <!---->web-app>
5)在WEB-INF文件夹下建立demo1-servlet.xml文件,代码如下:
xml 代码
  1. xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd ">
  5. <!---->
  6. <bean
  7. class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
  8. <!---->
  9. <bean name="/hello.html"
  10. class="com.demo1.web.controller.HelloController">
  11. <property name="name" value="Rod Johnson" />
  12. <!---->bean>
  13. <!---->
  14. <bean
  15. class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  16. <property name="prefix" value="/WEB-INF/jsp/" />
  17. <property name="suffix" value=".jsp" />
  18. <!---->bean>
  19. <!---->beans>
6)在src文件夹下创建log4j.properties文件,处理日志,代码如下:
properties 代码
  1. log4j.rootLogger=INFO,stdout
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
7)部署到你的web服务器上就可以看到输出了,例子程序在附件。
  • demo1.rar (2.8 MB)
  • 描述: 例子程序
  • 下载次数: 241
分享到:
评论
2 楼 fragrant 2011-09-21  
高手啊,谢谢!
1 楼 NicholasBugs 2008-04-03  

相关推荐

    Spring MVC 1 资源文件

    这个"Spring MVC 1 资源文件"可能包含了这些概念的详细解释、实例代码以及配置示例,帮助开发者更好地理解和使用 Spring MVC 框架。如果你在学习或使用 Spring MVC 过程中遇到问题,这些资源将会是宝贵的参考资料。

    25号05: Spring MVC1课堂内容

    在"25号05:Spring MVC1课堂内容"中,我们可以推测这是一个教学资源,涵盖了Spring MVC的基础到进阶知识,可能包括了从版本v01到v02的更新内容,特别是针对测试类的优化和使用。 1. **Spring MVC 概述**: Spring ...

    精通Spring MVC 4

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。Spring MVC4是当前zuixin的版本,在众多特性上有了进一步的提升。, 在精通Spring...

    Spring MVC jar包

    1. **Spring MVC**: - **基本概念**:Spring MVC提供了一个灵活的MVC实现,包括请求映射、视图解析、模型绑定等功能。它通过DispatcherServlet作为前端控制器,负责接收请求并分发到相应的处理器。 - **组件**:...

    最全最经典spring-mvc教程

    Spring MVC 是一款强大的Java Web开发框架,用于构建高效、可维护和模块化的Web应用程序。它作为Spring框架的一部分,提供了一种优雅的方式来处理HTTP请求和响应,使得开发者可以专注于业务逻辑而不是底层实现。在这...

    Spring MVC 4.2.3

    Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构,使开发者能够有效地分离业务逻辑、数据处理和用户界面。在"Spring MVC 4.2.3"版本中,我们看到了一系列的...

    Spring.MVC-A.Tutorial-Spring.MVC学习指南 高清可复制版PDF

    Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。这个教程“Spring MVC - A Tutorial”旨在帮助开发者深入理解和掌握Spring MVC的核心概念和...

    spring mvc 4.0

    1. **依赖注入**:Spring MVC 4.0继续支持Spring框架的核心功能,依赖注入(DI),允许开发者通过配置来管理对象及其依赖关系,降低了代码耦合度,提高了可测试性。 2. **ModelAndView对象**:在处理完请求后,控制...

    Mastering Spring MVC 4(2015.09)源码

    Spring MVC 是一个强大的Java Web开发框架,它是Spring框架的一部分,专为构建高度可扩展和模块化的Web应用程序而设计。在2015年的版本中,Spring MVC 4已经相当成熟,提供了许多特性来简化开发流程并提高开发效率。...

    Spring MVC + Mybatis+Spring实现的个人博客系统

    这是一个基于Spring MVC、Mybatis和Spring框架实现的个人博客系统,涵盖了Web开发中的后端架构设计、数据库管理和前端展示等多个方面。以下将详细介绍这个系统的关键知识点: **1. Spring MVC** Spring MVC是Spring...

    Spring MVC所需jar包

    1. **Spring 框架核心库**:这是 Spring MVC 的基础,它包含了 IoC(Inversion of Control,控制反转)和 AOP(Aspect Oriented Programming,面向切面编程)的核心概念。主要的 jar 包有 `spring-core.jar`、`...

    spring mvc框架依赖全面jar

    Spring MVC 是一个基于 Java 的轻量级Web应用框架,它为构建模型-视图-控制器(MVC)架构的应用程序提供了强大的支持。在本压缩包中包含了一系列与Spring MVC相关的jar文件,这些文件是构建和运行Spring MVC项目所...

    Spring MVC 教程快速入门 深入分析

    Spring MVC是一种基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,使用了IoC容器,支持RESTful风格的应用程序开发。Spring MVC通过分离模型(Model)、视图(View)和控制器(Controller)来简化Web开发...

    Spring MVC使用Demo

    Spring MVC是Spring框架的一个核心模块,专用于构建Web应用程序。这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式...

    spring MVC .docx

    1. **DispatcherServlet**: 它是Spring MVC的入口点,负责接收HTTP请求,并根据请求信息找到合适的处理器(Handler)进行处理。DispatcherServlet通过`web.xml`配置文件或Java配置类进行初始化配置。 2. **...

    基本的spring mvc + spring security实现的登录(无数据库)

    1. **Spring MVC**: - **核心组件**:DispatcherServlet负责接收请求并分发到相应的控制器(Controller),ModelAndView用于封装模型数据和视图,ViewResolver解析视图。 - **配置**:通常通过Java配置或XML配置...

    spring mvc mybatis 整合源码,带数据库脚本,带详细注释

    1. **Spring MVC 概述** - Spring MVC是基于Model-View-Controller(MVC)设计模式的Web应用框架,提供了一种组织和处理请求的机制。 - 它的核心组件包括DispatcherServlet、HandlerMapping、HandlerAdapter、...

Global site tag (gtag.js) - Google Analytics