SpringMVC介绍
SpringMVC是什么?
SpringMVC和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来:
SpringMVC的处理流程
知道了SpringMVC是什么之后,我们还得从全局的角度来看待它,杜甫这个老诗人不是说过吗?会当凌绝顶,一览众山小。下面我们就来看看SpringMVC的处理流程。
上面这个图大致描述了SpringMVC的整个处理流程,乍一看有点晕乎,且待我一步步分析,最后弄个流程图出来就明白了。
SpringMVC入门
本系列教程使用的SpringMVC是SpringMVC4.2.4这个版本。下面我就以两个案例来教大家如何快速入门SpringMVC这个框架。先来介绍第一个案例,就是咱们通常所说的Hello World小程序。
Hello World入门小程序
第一步,创建一个Dynamic Web Project项目,例如01-springmvc。
第二步,导入SpringMVC独立运行的jar包,一共有9个jar包,如下图所示。
第三步,在WebContent/WEB-INF目录新建一个普通的jsp目录,并在该目录下新建一个hello.jsp页面。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>输出提示</title>
</head>
<body>
${msg }
</body>
</html>
第四步,在src目录下新建一个com.meimeixia.springmvc.controller包,并在该包下创建一个Controller,例如HelloControll,它就是一个普通的Java类,有点类似于Struts2中的Action,且不需要实现任何接口,只需要在类上添加@Controller注解即可。
package com.meimeixia.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloControll {
@RequestMapping("hello") //该注解用于绑定用户的请求地址,例如hello.action
public ModelAndView hello() {
System.out.println("hello springmvc...");
ModelAndView mav = new ModelAndView();
//设置模型数据,用于传递到jsp页面中显示
mav.addObject("msg", "hello springmvc......");
//设置视图名字,用于响应用户
mav.setViewName("/WEB-INF/jsp/hello.jsp");
return mav;
}
}
大家就先照着上面这样写吧!先入门再说。不过,我还得说道说道,@RequestMapping注解是用于绑定用户的url请求地址的,例如hello.action,其中.action
这个东西可以加也可以不加。在ModelAndView(模型和视图)对象中,将视图设置为了/WEB-INF/jsp/hello.jsp
。
第五步,在工程下新建一个名为config的源码目录,并在该源码目录新建一个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: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://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<!-- 配置controller扫描包 -->