Spring MVC入门示例
2015-10-29 09:58
615 查看
MVC框架: MVC是一个设计模式, MVC全名是Model View Controller, 是模型(model)-视图(view)-控制器(controller)的缩写, 一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码, 将业务逻辑聚集到一个部件里面, 在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: Model(模型)表示应用程序核心(比如数据库记录列表)是应用程序中用于 处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据。 View(视图)显示数据(数据库记录)。 负责从视图读取数据,控制用户输入,并向模型发送数据。
Spring MVC应用程序中,模型通常由POJO对象组成,
视图通常是用JSP标准标签库(JSTL)编写的JSP模板,
控制器部分是由dispatcher servlet负责。
Dispatcher servlet(Spring控制器):
当一个web请求发送到Spring MVC应用程序,dispatcher servlet首先接收请求,
然后它组织那些在Spring Web应用程序上下文
配置(实际请求处理控制器和视图解析器)的或者使用注解配置
的组件,所有的这些都需要处理该请求。
基本流程:
Spring3.0中定义一个控制器类,这个类必须标有@Controller注解,当有@Controller注解的控制器收到一个请求时,它会寻找一个合适的handler方法去处理这个请求。在每个handler方法前面都会有一个@RequestMapping注解装饰,它代表该方法用于拦截某一个具体的url请求。所以多个url请求可以被多个handler方法拦截。 当handler方法处理完请求后,它把控制权委托给视图名与handler方法返回值相同的视图。为了提供一个灵活的方法,一个handler方法的返回值并不代表一个视图的实现而是一个逻辑视图也就是没有任何文件扩展名。你可以将这些逻辑视图映射到正确的实现,为一个逻辑名称匹配正确的文件是视图解析器的责任。在mvc-dispatcher-servlet.xml文件中会有一项:
mvc-dispatcher-servlet.xml:
我们来看一个简单的HelloWorld程序:
1> 首先拦截器的配置在web.xml中:
2> mvc-dispatcher-servlet.xml
<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" 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.xsd"> <context:component-scan base-package="com.springapp.mvc"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/pages/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
<context:component-scan base-package="com.springapp.mvc"/>
代表允许com.springapp.mvc包下的使用注解
com.springapp.mvc.HelloController类: package com.springapp.mvc; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/") public class HelloController { @RequestMapping(method = RequestMethod.GET) public String printWelcome(ModelMap model) { model.addAttribute("message", "Hello World!"); return "hello"; } }
视图页面hello.jsp:
<html> <body> <h1>${message}</h1> </body> </html>
运行结果:
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Zend的MVC机制使用分析(二)
- ASP.NET MVC 4 捆绑和缩小实例介绍
- ASP.NET MVC中将控制器分离到类库的实现
- asp.net实现在非MVC中使用Razor模板引擎的方法
- ASP.NET MVC中的AJAX应用
- 为ASP.NET MVC及WebApi添加路由优先级
- ASP.NET MVC中图表控件的使用方法
- ASP.NET MVC的四种验证编程方式
- ASP.NET MVC 3仿Server.Transfer效果的实现方法
- 如何在MVC应用程序中使用Jquery
- ASP.NET MVC小结之基础篇(二)
- ASP.NET小结之MVC, MVP, MVVM比较以及区别(一)
- Asp.net实现MVC处理文件的上传下载功能实例教程
- ASP.NET MVC小结之基础篇(一)
- 浅析Asp.net MVC 中Ajax的使用
- JSP使用MVC模式完成删除和修改功能实例详解