1. 开发第一个 Spring MVC应用
(1) Spring的下载和安装
spring是一个独立的框架,它不需要依赖于任何 Web服务器或容器。它既可在独立的 Java sE项目中使用, 也可以在 Java web项目中使用。 下面首先介绍如何为 Java项目和 Java Web 项目添加 Spnng支持。
下载和安装 Spring框架可按如下步骤进行:
a. 登录 http://repo.springsource.org/libs-release-local/站点,该页面显示一个目录列表,沿着 org→springfiramework→spring路径进入, 即可看到 spring框架各版本的压缩包的下载链接. 下载 Spring的最新稳定版4.2.0,下载完成,得到一个 spring-framework-4.2.0.RELEAsE_dist.zip压缩文件,解压该压缩文件得到一个名为 spring-framework-4.2.0.RELEASE的文件夹, 该文件夹下有如下几个子文件:
doos。该文件夹下存放Spring的相关文档,包含开发指南、 API参考文档。
libS。该文件夹下的JAR 分为三类:
①Spring框架 class文件的 JAR包;
②spring框架源文件的压缩包, 文件名以一source结尾;
③Spring框架API文档的压缩包, 文件名以-javadoc结尾。
schemas。该文件夹下包含了 Spring各种配置文件的 xML schema文档。
readme.txt、 notice.txt、license.txt等说明性文档。
b. 将1ibs文件夹下所需模块的 class文件的 JAR 包复制添加到项目的类加载路径中, 既可通过添加环境变量的方式来添加,也可使用Ant或 IDE工具来管理应用程序的类加载路径. 如果需要发布该应用,则将这些 JAR 包一同发布即可。如果没有太多要求,建议将libs文件夹下所有模块的 class文件的 JAR 包添加进去.
c.除此之外, Spring的核心容器必须依赖于 common_1ogging的 JAR包,因此还应该登录 http://commons.apache.org/站点, 沿着 Releases→Logging路径进入, 下载最新的commons-logging工具,下载完成得到一个 commons_1ogging_1.2_bin.zip压缩文件,将该文件解压路径下的 commons-1ogging-1.2.jar也添加到项目的类加载路径中 。
完成上面4个步骤后, 接下来即可在 Java Web应用中使用 spring Mvc框架了 。
(2) Spring MVC的 DispatcherServlet
在许多的 MVC框架中, 都包含一个用子调度控制的 Servlet。 spring Mvc也提供了一个名为 org.springframework.web.servlet.DispatcherServlet的 servlet充当前端控制器, 所有的请求驱动都 将围绕这个 Dispatcherservlet来分派请求 。
DispatcherServlet是一一个 Servlet(它继承自 HttpServlet基类), 因此使用时需要把它配置在 Web应用的部著描述符 web.xm1文件当中, 配置信息如下:
spri]lgmvc
org. springframework. web. servlet. DispataherServlet
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/springmvc-config.xml
1
springmvc
/
web.xml文件的内容告诉 web容器,将使用 Spring MVC的 DispatcherServlet,并通过配置 ur1_pattem元素的值为“/”,将所有的URL映射到该 Servlet。
3.配置Spring MVC的 Controller
在WEB-INF下新建springmvc-config.xml文件
下来是 spring MVC的配置文件, 配置信息如下:
4. Controller类的实现
在src目录下新建类HelloController
HelloController类实现了 Controller接口, 用来处理/hello请求。 示例代码如下:
package org.fkit.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
/**
* HelloController是一个基于注解的控制器,
* 可以同时处理多个请求动作,并且无须实现任何接口。
* org.springframework.stereotype.Controller注解用于指示该类是一个控制器
*/
public class HelloController implements Controller{
private static final Log logger = LogFactory
.getLog(HelloController.class);
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
logger.info("hello方法 被调用");
// 创建准备返回的ModelAndView对象,该对象通常包含了返回视图的路径、模型的名称以及模型对象
ModelAndView mv = new ModelAndView();
//添加模型数据 可以是任意的POJO对象
mv.addObject("message", "Hello World!");
// 设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面
mv.setViewName("/WEB-INF/content/welcome.jsp");
// 返回ModelAndView对象。
return mv;
}
}
5. View页面
在WEB-INF下新建content目录,在content目录下新建welcome.jsp:
springMVCTest包含一个视图页面welcome.jsp,用来显示欢迎信息,内容如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
welcome
${requestScope.message}
此处jsp使用了EL表达式来简化页面开发.
6.测试应用
使用Eclipse部署springMVCTest这个 web应用,在浏览器输入URL来测试应用:
http://localhost:8080/SpringMVCTest/hello
看到以下结果表示显示成功: