一、SpringMVC 概述

• Spring为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一

• Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架

• Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。

• 支持 REST 风格的 URL 请求

• 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性

二、搭建SpringMVC的第一个helloWord入门程序

1. 新建一个名称为SpringMVC的web项目,项目结构如下:

2.在pom.xml里面引入Spring相关的依赖

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.study</groupId>
<artifactId>SpringMVC</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>SpringMVC Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<!-- 添加Spring相关的依赖 begin-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.3.12.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.12.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.12.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.12.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.3.12.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.12.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.12.RELEASE</version>
</dependency> <dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<!-- 添加Spring相关的依赖 end--> </dependencies>
<build>
<finalName>SpringMVC</finalName>
</build>
</project>

3.配置web.xml

 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5"> <!-- 配置 DispatcherServlet -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置 DispatcherServlet 的一个初始化参数: 配置 SpringMVC 配置文件的位置和名称 -->
<!--
实际上也可以不通过 contextConfigLocation 来配置 SpringMVC 的配置文件, 而使用默认的.
默认的配置文件为: /WEB-INF/<servlet-name>-servlet.xml
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 加载时创建 -->
<load-on-startup>1</load-on-startup>
</servlet> <!-- dispatcherServlet可以应答所有请求 -->
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> </web-app>

4. 在src/main/resources目录下新建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: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.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-- 配置自动扫描的包 配置以后才能使用Spring的注解-->
<context:component-scan base-package="com.study.springmvc"></context:component-scan> <!-- 配置视图解析器: 如何把 handler 方法返回值解析为实际的物理视图 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean> </beans>

5. 在src/main/java目录下新建一个com.study.springmvc.handlers包,创建请求处理器类HelloWorld.java

 package com.study.springmvc.handlers;

 import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
public class HelloWorld { /**
* 1. 使用 @RequestMapping 注解来映射请求的 URL
* 2. 返回值会通过视图解析器解析为实际的物理视图, 对于 InternalResourceViewResolver 视图解析器, 会做如下的解析:
* 通过 prefix + returnVal + 后缀 这样的方式得到实际的物理视图, 然会做转发操作
*
* /WEB-INF/views/success.jsp
*
* @return
*/
@RequestMapping("/helloworld")
public String hello(){
System.out.println("hello world");
return "success";
} }

6. 在index.jsp里面配置超链接请求

 <html>
<body>
<!-- href="helloworld"和HelloWorld.java的@RequestMapping("/helloworld")对应 -->
<a href="helloworld">Hello World</a>
</body>
</html>

7. 编写请求成功跳转的/WEB-INF/views/success.jsp,由springmvc.xml配置的视图解析器和HelloWorld.java的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>Insert title here</title>
</head>
<body> <h4>Sucess Page</h4> </body>
</html>

8. 输入地址http://127.0.0.1:8080/SpringMVC/ 进入index.jsp,点击超链接,跳转到success.jsp,到次SpringMVC的第一个程序完成

最新文章

  1. SQL 检查 是否存在 表 临时表
  2. DataTable转Entity(Emit版)
  3. android调试工具DDMS的使用详解
  4. publish_subscribe
  5. bzoj3034: Heaven Cow与God Bull
  6. Valuable site on github
  7. 【风马一族_Android】Android学习
  8. android webview js alert对话框 不能弹出 解决办法
  9. css选择器有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先
  10. NSdata 与 NSString,Byte数组,UIImage 的相互转换
  11. win7系统64位eclipse环境超详细暗黑1.4服务器搭建
  12. html的两种提交按钮submit和button
  13. 安装Oracle数据库和PLSQL连接数据库
  14. android maven eclipse里面新建mavenprojectThe desired archetype does not exist
  15. U3D GameObject 解读
  16. 【bootstrap组件】几个常用的好用bs组件
  17. Introduction to debugging neural networks
  18. Eclipse Jee环境配置
  19. Qt中的主窗口之菜单栏
  20. @ResponseBody返回中文乱码

热门文章

  1. 每日英语:Boost Your Balance; Avoid Falls
  2. idea 同project添加多个module maven支持
  3. iOS中大文件下载(单线程下载)
  4. 自定义NSOperation下载图片
  5. [转]mysql delete 使用别名 语法
  6. 编译 Linux 3.5 内核烧写 Android 4.2.2 到 Tiny4412 开发板
  7. ubuntu 安装redis
  8. JAVA是否可以作脚本语言呢
  9. 在Word 2007中添加参考文献及其引用的方法
  10. JMeter (3) —— JMeter录制脚本并压力测试用户登陆场景以CAS SSO为例(101 Tutorial)