SpringMVC快速入门第一讲——SpringMVC介绍与入门

SpringMVC介绍

SpringMVC是什么?

SpringMVC和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来:
SpringMVC快速入门第一讲——SpringMVC介绍与入门_第1张图片

SpringMVC的处理流程

知道了SpringMVC是什么之后,我们还得从全局的角度来看待它,杜甫这个老诗人不是说过吗?会当凌绝顶,一览众山小。下面我们就来看看SpringMVC的处理流程。
SpringMVC快速入门第一讲——SpringMVC介绍与入门_第2张图片
上面这个图大致描述了SpringMVC的整个处理流程,乍一看有点晕乎,且待我一步步分析,最后弄个流程图出来就明白了。

SpringMVC入门

本系列教程使用的SpringMVC是SpringMVC4.2.4这个版本。下面我就以两个案例来教大家如何快速入门SpringMVC这个框架。先来介绍第一个案例,就是咱们通常所说的Hello World小程序。

Hello World入门小程序

第一步,创建一个Dynamic Web Project项目,例如01-springmvc。
SpringMVC快速入门第一讲——SpringMVC介绍与入门_第3张图片
第二步,导入SpringMVC独立运行的jar包,一共有9个jar包,如下图所示。
SpringMVC快速入门第一讲——SpringMVC介绍与入门_第4张图片
第三步,在WebContent/WEB-INF目录新建一个普通的jsp目录,并在该目录下新建一个hello.jsp页面。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<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的核心配置文件,其内容如下:


<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">

	
	<context:component-scan base-package="com.meimeixia.springmvc.controller" />
beans>

可以清楚地看到,以上文件配置了扫描包(Controller类所在的包),那么SpringMVC就会扫描这个包下所有带@Controller注解的类,并创建好对象放到SpringMVC容器中。
第六步,配置前端控制器。即在web.xml文件中web.xml文件中添加如下配置:


<servlet>
	<servlet-name>springmvcservlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
	
	
	<init-param>
		
		<param-name>contextConfigLocationparam-name>
		<param-value>classpath:springmvc.xmlparam-value>
	init-param>
servlet>

<servlet-mapping>
	<servlet-name>springmvcservlet-name>
	<url-pattern>*.actionurl-pattern>
servlet-mapping>

第七步,入门程序测试。发布咱们的项目到Tomcat服务器上,然后启动Tomcat服务器,在Google Chrome浏览器地址栏中输入url地址,例如http://localhost:8080/01-springmvc/hello.action,就能看到如下图所示的效果了。
SpringMVC快速入门第一讲——SpringMVC介绍与入门_第5张图片

展示商品列表

这儿再来看第二个案例,即使用SpringMVC这个框架实现商品列表的展示。先分析一下这个需求,这里我假设请求的url为/itemList.action,由于我想要展示商品列表,所以是并不需要传递参数的,其次该案例仅仅是一个SpringMVC的入门小程序,并不会与MyBatis进行整合,所以也就不会从数据库表里面查询商品列表信息了,查询出来的商品列表数据仅仅只是一些静态数据罢了。在第一个案例中,我已经讲了一下SpringMVC入门程序的开发步骤,这里,我再重新讲一遍。
第一步,创建一个Dynamic Web Project项目,例如02-springmvc。
SpringMVC快速入门第一讲——SpringMVC介绍与入门_第6张图片
第二步,导入SpringMVC独立运行的jar包,一共有9个jar包,如下图所示。
SpringMVC快速入门第一讲——SpringMVC介绍与入门_第7张图片
第三步,在WebContent/WEB-INF目录新建一个普通的jsp目录,并在该目录下新建一个itemList.jsp页面。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查询商品列表title>
head>
<body> 
<form action="${pageContext.request.contextPath }/queryItem.action" method="post">
查询条件:
<table width="100%" border=1>
<tr>
<td><input type="submit" value="查询"/>td>
tr>
table>
商品列表:
<table width="100%" border=1>
<tr>
	<td>商品名称td>
	<td>商品价格td>
	<td>生产日期td>
	<td>商品描述td>
	<td>操作td>
tr>
<c:forEach items="${itemList }" var="item">
<tr>
	<td>${item.name }td>
	<td>${item.price }td>
	<td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>td>
	<td>${item.detail }td>
	
	<td><a href="${pageContext.request.contextPath }/itemEdit.action?id=${item.id}">修改a>td>

tr>
c:forEach>

table>
form>
body>

html>

第四步,在src目录下新建一个com.meimeixia.springmvc.pojo包,并在该包下创建一个Item类,用于描述商品信息。

package com.meimeixia.springmvc.pojo;

import java.util.Date;

/**
 * 商品数据模型
 * @author liayun
 *
 */
public class Item {
	
	// 商品id
	private int id;
	// 商品名称
	private String name;
	// 商品价格
	private double price;
	// 商品创建时间
	private Date createtime;
	// 商品描述
	private String detail;
	
	public Item() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	public Item(int id, String name, double price, Date createtime, String detail) {
		super();
		this.id = id;
		this.name = name;
		this.price = price;
		this.createtime = createtime;
		this.detail = detail;
	}

	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public Date getCreatetime() {
		return createtime;
	}
	public void setCreatetime(Date createtime) {
		this.createtime = createtime;
	}
	public String getDetail() {
		return detail;
	}
	public void setDetail(String detail) {
		this.detail = detail;
	}
	
}

第五步,在src目录下新建一个com.meimeixia.springmvc.controller包,并在该包下创建一个Controller,例如ItemController,它就是一个普通的Java类,有点类似于Struts2中的Action,且不需要实现任何接口,只需要在类上添加@Controller注解即可。

package com.meimeixia.springmvc.controller;

import java.util.Arrays;
import java.util.Date;
import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.meimeixia.springmvc.pojo.Item;

@Controller
public class ItemController {

	@RequestMapping("itemList")
	public ModelAndView itemList() {
		ModelAndView mav = new ModelAndView();
		//模拟查询商品列表
		List<Item> list = Arrays.asList(new Item(1, "冰箱", 1999, new Date(), "冰箱质量好"), new Item(2, "冰箱2", 1999, new Date(), "冰箱质量好2"), 
				new Item(3, "冰箱3", 1999, new Date(), "冰箱质量好3"), new Item(4, "冰箱4", 1999, new Date(), "冰箱很热"));
		mav.addObject("itemList", list);
		mav.setViewName("/WEB-INF/jsp/itemList.jsp");
		return mav;
	}
	
}

以上ItemController类中的@RequestMapping注解是用于绑定用户的url请求地址的,例如itemList.action,其中.action这个东西可以加也可以不加。在ModelAndView(模型和视图)对象中,将视图设置为了/WEB-INF/jsp/hello.jsp
第六步,在工程下新建一个名为config的源码目录,并在该源码目录新建一个springmvc.xml的核心配置文件,其内容如下:


<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">

	
	<context:component-scan base-package="com.meimeixia.springmvc.controller" />
beans>

第七步,配置前端控制器。即在web.xml文件中web.xml文件中添加如下配置:


<servlet>
	<servlet-name>springmvcservlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
	
	
	<init-param>
		
		<param-name>contextConfigLocationparam-name>
		<param-value>classpath:springmvc.xmlparam-value>
	init-param>
servlet>

<servlet-mapping>
	<servlet-name>springmvcservlet-name>
	<url-pattern>*.actionurl-pattern>
servlet-mapping>

第八步,发布咱们的项目到Tomcat服务器上,然后启动Tomcat服务器,在Google Chrome浏览器地址栏中输入url地址,例如http://localhost:8080/02-springmvc/itemList.action,就能看到如下图所示的效果了。
SpringMVC快速入门第一讲——SpringMVC介绍与入门_第8张图片

你可能感兴趣的:(SpringMVC快速入门第一讲——SpringMVC介绍与入门)