您的位置:首页 > 编程语言 > Java开发

spring MVC入门教程

2016-05-13 16:52 555 查看
spring教程手册下载:全面、详细、五星推荐

这篇博客的目的在于简单介绍如何快速上手使用Spring MVC框架。

spring mvc类似于struts2的一个MVC框架,通过实现Model-View-Controller模式来很好地将数据、业务与展现进行分离。spring mvc需要有spring的架包作为支撑才能跑起来。Spring MVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler。通过可配置的handler mappings、view resolution、locale以及theme resolution来处理请求并且转到对应的视图。

一、Spring MVC处理请求的流程

如下图:



具体执行步骤如下:

1、 首先用户发送请求,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器(Controller)进行处理并把请求委托给它;图2-1中的1、2步骤;

2、 页面控制器接收到请求后,进行功能处理,处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图2-1中的3、4、5步骤;

3、 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图2-1中的步骤6、7;

4、 前端控制器再次收回控制权,将响应返回给用户,图2-1中的步骤8;至此整个结束。

二、Spring MVC优点

1、优秀的MVC框架;

2、可以与Spring框架集成(如IoC容器、AOP等);

3、能简单的进行Web层的单元测试;

4、支持灵活的URL到页面控制器的映射;

5、非常容易与其他视图技术集成,如Velocity、FreeMarker等等,因为模型数据不放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用);

6、支持Restful风格。

三、简单的 Spring MVC框架搭建

本测试项目代码下载地址:http://pan.baidu.com/s/1gfps04F

1、jar包下载并复制到web 项目WEB-INF–>lib文件下:http://pan.baidu.com/s/1kUQhNZD

2、在web.xml文件中添加前端控制器的配置(该文件位置位于WEB-INF下面):

<servlet>
<servlet-name>mydemo</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mydemo</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>


url-pattern:表示哪些请求交给Spring Web MVC处理, “/” 是用来定义所有的请求都交给DispatcherServlet。也可以如“*.html”表示拦截所有以html为扩展名的请求;

默认DispatcherServlet会加载WEB-INF/[Servlet名字]-servlet.xml配置文件(Spring官方文档上推荐的默认的文件名是[servlet-name]-servlet.xml)。

3、在[servlet-name]-servlet.xml中进行配置,该文件位置是根据web.xml中DispathServlet来进行的:

<!-- 默认的注解映射的支持 -->
<mvc:annotation-driven />

<!--启用自动扫描  -->
<context:component-scan base-package="demo.*" />

<!-- ViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/" />
<property name="suffix" value=".jsp" />
</bean>

</beans>


其中自动扫描的目录需要正确,否则会报错:

WARNING: No mapping found for HTTP request with URI [/springMVC/hello] in DispatcherServlet with name ‘mydemo’

InternalResourceViewResolver:用于支持Servlet、JSP视图解析;

prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传进来的逻辑视图名为hello,则该该jsp视图页面应该存放在“WEB-INF/hello.jsp”;

4、开发处理器(页面控制器):

@Controller
public class HelloController {

@RequestMapping(value="/hello",method=RequestMethod.GET)
public String sayHello(Model model) {
model.addAttribute("msg", "Hello World!");
return "hello";
}
}


5、根据第3步中的配置文件开发页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>hello world</title>
</head>
<body>
${msg}
</body>
</html>


6、配置jdk和tomcat,进行部署;

7、浏览器输入并显示”Hello World!”:http://localhost:8080/springMVC/hello

这是一个简单的spring mvc框架搭建过程。

关于 spring mvc 的基础知识请参考:http://blog.csdn.net/u012385190/article/details/51425416
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc