一、什么是Spring MVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。

今天先从写一个Spring MVC的Hello World开始,让我们看看如何搭建起一个Spring mvc的环境并运行程序

我们会从一下几个步骤开始

步骤:
1、加入jar包
2、在web.xml中配置DispathcerServlet
3、加入SpringMVC的配置文件
4、编写处理请求的处理器,并标识为处理器
5、编写视图

二、加入所需的jar包

  • |--commons-logging-1.1.3.jar
  • |--spring-aop-4.3.7.RELEASE.jar
  • |--spring-beans-4.3.7.RELEASE.jar
  • |--spring-context-4.3.7.RELEASE.jar
  • |--spring-core-4.3.7.RELEASE.jar
  • |--spring-expression-4.3.7.RELEASE.jar
  • |--spring-web-4.3.7.RELEASE.jar
  • |--spring-webmvc-4.3.7.RELEASE.jar

三、在web.xml中配置DispathcerServlet

 <?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_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>SpringMVCStudy</display-name> <!-- 配置DispatcherServlet -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置DispatcherServlet 的一个初始化参数:配置SpringMVC 配置文件的位置和名称 -->
<init-param>
<!-- mvc配置文件的位置和名称 -->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 接收所有请求 -->
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

四、编写springmvc.xml配置文件(src下)

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"> <!--配置自动扫描的包 -->
<context:component-scan base-package="com.study.springmvc.handlers"></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>

五、编写HelloSpringMVC.java

 package com.study.springmvc.handlers;

 import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; /**
* 类名称:com.study.springmvc.handlers.HelloSpringMVC
* 创建人:吴既稳
* 修改备注:
* @version jdk1.8
*/
@Controller
public class HelloSpringMVC { /**
* @Title: hello
* @Description: TODO
* 1.使用RequestMapping()来映射请求
* 2.返回值会通过视图解析器解析为实际的物理视图,对于InternalResourceViewResolver 会做如下的解析
* 通过: prefix + returnVal + 后缀 这样的方式得到实际的物理视图,然后做转发操作
* 例如:/WEB-INF/views/successResult.jsp
* @return
*/
@RequestMapping("/hello")
public String hello() {
System.out.println("成功......");
return "successResult";
}
}

六、编写视图

HelloSpringMVC.jsp为链接请求页面

 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'HelloSpringMVC.jsp' starting page</title>
</head> <body> <h2>点击下方链接</h2> <a href="hello">Hello SpringMVC</a> </body>
</html>

successResult.jsp为跳转结果页面,路径为/WEB-INF/views/successResult.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'successResult.jsp' starting page</title>
</head> <body> <h1>Hello SpringMVC 测试成功</h1> </body>
</html>

七、启动项目,测试结果

最新文章

  1. JAVA实现图片裁剪
  2. Scala基础语法
  3. spark streaming中使用checkpoint
  4. map和json之间的转换
  5. java中的动态代理机制
  6. page59-一种能够累加数据的ADT(可视化版本) [可用于数据挖掘可视化工具]
  7. HDU-1402 A * B Problem Plus FFT(快速傅立叶变化)
  8. Java RMI详解
  9. Redis 集群常见问题
  10. 切换view的动画
  11. SHELL要发送HTML这类邮件的话,还得靠msmtp 和 mutt
  12. async 异步流程控制规则
  13. PAT (Advanced Level) 1108. Finding Average (20)
  14. 重启OpenStack服务步骤
  15. IOS9.0 之后友盟分享详细过程
  16. .Net程序员学用Oracle系列(29):PLSQL 之批量应用和系统包
  17. 使用vee-validate表单插件是如何设置中文提示?
  18. PHP04
  19. java ----&gt; 基础之位运算
  20. warning: this decimal constant is unsigned only in ISO C90问题的处理及理解

热门文章

  1. Opencv中Rect类
  2. [QT][SQLITE]学习记录二 日期查询
  3. BZOJ5312: 冒险【线段树】【位运算】
  4. Codeforces 1009D:Relatively Prime Graph
  5. test20181024 kun
  6. 浅谈iOS学习之路(转)
  7. nginx-vod-module &amp;&amp; docker &amp;&amp; docker-compose 测试
  8. 【转】Visual Studio 2012常用快捷键总结
  9. java对象模型
  10. Android中Parcelable与Serializable接口用法