说明:这个Demo用来简单展示Spring MVC的实现。[在此之前,应该下载好spring的jar文件,以及Spring的依赖jar文件,以及jstl标签库{可选},和standard.jar{可选}]
步骤如下:
1、 在MyEclipse下建立一个Web Projec名称为:Demo;
2、 添加相应的jar文件到WEB-INF/lib,如:spring-framework-3.0.2.RELEASE-with-docs.zip解压文件下dist文件夹下的core、beans、[context.support、context包支持上下文]、[web.servlet支持web MVC]、web包、asm、expression,以及spring-framework-3.0.2.RELEASE-dependencies.zip {Spring依赖}解压文件org.apache.commons/com.springsource.org.apache.commons.logging下的com.springsource.org.apache.commons.logging.jar以及jstl.jar和standard.jar,
3、 配置核心控制器,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- spring servlet dispatcher -->
<servlet>
<servlet-name>springMVC</servlet-name><!—核心控制器-->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup><!—服务器启动时加载-->
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.do</url-pattern><!—过滤类型-->
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
4、 编写一个控制类如:UserController.java,包结构:com.teana.controller,此类继承AbstractCommandController抽象类,[说明:此类用到数据绑定,数据类型的转换],代码如下:
package com.teana.controller;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.validation.BindException;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;
import com.teana.vo.User;
/**
* @author TEANA -- 2010-5-16
* User 控制器
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
@SuppressWarnings("deprecation")
public class UserController extends AbstractCommandController
{
@Override
protected ModelAndView handle(HttpServletRequest request,
HttpServletResponse response, Object commond, BindException be)
throws Exception
{
User user = (User)commond;//自动封装的User对象
System.out.println(user);
return new ModelAndView("success");//说明视图的跳转,会在SpringMVC-servlet.xml配置文件中查出
}
/**
* 数据绑定,及数据类型转换
*/
@Override
protected void initBinder(HttpServletRequest request,
ServletRequestDataBinder binder) throws Exception
{
binder.registerCustomEditor(Date.class,
new CustomDateEditor(
new SimpleDateFormat("yyyy-MM-dd"), true));
}
}
5、 编写User.java文件,包结构:com.teana.vo,代码如下:
package com.teana.vo;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author TEANA -- 2010-5-16
* 用户模型
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/
public class User implements Serializable
{
private static final long serialVersionUID = -4360427971861239742L;
private int id;
private String name;
private String cardID;
private Date birth;
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 String getCardID()
{
return cardID;
}
public void setCardID(String cardID)
{
this.cardID = cardID;
}
public Date getBirth()
{
return birth;
}
public void setBirth(Date birth)
{
this.birth = birth;
}
@Override
public String toString()
{
return "[ name =" + name + ", birth = " +
new SimpleDateFormat("yyyy-MM-dd").format(birth) +
", carID = " + cardID + ", id = " + id + " ]";
}
}
6、 编写jsp页面:
A:修改WebRoot文件下的index.jsp页面,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Spring MVC Demo</title>
</head>
<body>
<jsp:forward page="login.do" /><!—在此处会根据springMvc-servlet.xml文件中查找真正的jsp页面-->
</body>
</html>
B:在 WEB-INF文件下创建一个jsp文件夹,在jsp文件夹下创建一个login.jsp文件,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Spring MVC Demo 用户注册</title>
</head>
<body>
<center>
<br/>
<br/>
<h5 style="color:pink" >Spring MVC Demo 用户注册</h5>
<form action="user.do" method="post"><!—user.do在springMVC-servlet.xml中查找-->
<table>
<tr><td>账号:</td><td><input type="text" name="id" /></td></tr>
<tr><td>姓名:</td><td><input type="text" name="name" /></td></tr>
<tr><td>生日:</td><td><input type="text" name="birth" /></td></tr>
<tr><td>卡号:</td><td><input type="text" name="cardID" /></td></tr>
<tr><td><input type="submit" value=" 提 交 "/></td><td align="center"><input type="reset" value=" 重 置 "/></td></tr>
</table>
</form>
</center>
</body>
</html>
C:在WEB-INF/jsp文件夹下创建一个success.jsp文件,这里只用来说明页面跳转成功,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Spring MVC Demo 用户登录成功</title>
</head>
<body>
<br>
<center>用户登录成功页面</center>
</body>
</html>
7、 在WEB-INF文件夹下创建一个类似于Spring中的applicationContext.xml文件的SpringMVC-servlet.xml文件,这个文件的命名为*****-servlet.xml,*****由配置在web.xml文件下的核心控制器的servlet-name决定。编写其文件代码如下:
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<!—说明处理url的方式映射方式-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="index.do">indexController</prop>
<prop key="login.do">loginController</prop>
<prop key="user.do">userController</prop>
</props>
</property>
</bean>
<!—根据Url直接跳转到相应jsp文件,此处是当输入http://localhost:8080/Demo/index.do,则跳到WEB-INF/jsp/index.jsp页面-->
<bean id="indexController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController" />
<!-此处是当输入http://localhost:8080/Demo/login.do则根据springMVC-servlet.xml文件的viewName的值去在制定格式的路径下查找相应文件-->
<bean id="loginController" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<property name="viewName" value="login" />
</bean>
<bean id="userController" class="com.teana.controller.UserController">
<property name="commandClass" value="com.teana.vo.User" />
</bean>
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"><!-- 指定策略解析 -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /><!-- 指定视图处理 -->
<property name="prefix" value="/WEB-INF/jsp/" /><!—前缀-->
<property name="suffix" value=".jsp" /><!—后缀-->
</bean>
</beans>
总结:【使用Spring mvc 需要步骤】
① 在web.xml中配置DispatcherServlet及URL映射;
② 编写IOC容器所需要的XML配置文件,命名为<servlet-name>-servlet.xml,放到/WEB-INF目录下,如果DispatchertServlet在web.xml中的配置为SpringMVC,则Spring将寻找SpringMVC-servlet.xml配置文件。
③ 在XML配置文件中定义URL映射方式和使用哪种View技术
相关推荐
Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于...
Spring MVC 实例
主要介绍Spring MVC 的使用注解来配置的使用实例
学习Spring MVC,关于注解的Spring MVC,简单例子,关于控制器的Spring MVC,学习Spring,简单Spring MVC实例
这篇文章将教你快速地上手使用 Spring 框架. 如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring...
spring mvc 实例有数据库,jar包,代码之间还有详细的注解,特别适合初学者学习,之间导入myeclipse工程中就可以用.希望对初学者学习spring mvc框架有帮助.
运用extjs2和spring mvc的项目,非常具有学习价值,里面有一套非常好用的jdbc技术.
Spring Mvc实例 主要实现利用spring注解,完成前后台交互,简单的视图控制和数据操作。
Spring mvc、 Spring、 Spring jdbc 整合实例源码
这是一个Spring MVC实例 使用MVC注解配置
Spring MVC 实例 - Hello World,spring mvc 入门Spring MVC 实例 - Hello World,spring mvc 入门
基于注解的spring mvc,dao 层注解:@Repository("userDao"), entity层注解:@Entity,service层注解:@Service("userService"), action层注解:@Controller("userController") @RequestMapping("/user.do")
基于spring2.5的采用XML配置的spring MVC项目
Spring MVC 基础实例源码01 我的博客上SpringMVC基础教程 实例的源码
maven spring mvc bubbo 实例
Spring mvc整合redis实例(redis连接池) 将所有jedis 增删改进行事务的封装、查询单独做为有返回参数的封装。简化了很多代码
Spring mvc 实例下载可运行
用STS(Spring Tool Suite)开发的,spring mvc + spring security 实现的最简单的登录系统,无数据库。
Spring MVC入门实例