首页 > 代码库 > Spring MVC入门

Spring MVC入门

1、选型
  选型范围:Struts2、Spring MVC,其他的没精力研究。

  Spring MVC特点:
    1、师出名门,受众广,与Spring兼容性好。
    2、轻量,简单,易于使用,可以让开发人员将精力放到业务逻辑开发上。
    3、高效,性能优秀。
    4、功能强大:RESTful、数据验证、格式化、绑定机制、本地化、主题等
    5、清晰的角色划分:控制器(controller)、验证器(validator)、 命令对象(command object)、表单对象(form object)、模型对象(model object)、 Servlet分发器(DispatcherServlet)、 处理器映射(handler mapping)、视图解析器(view resolver)等等。 每一个角色都可以由一个专门的对象来实现

  自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高。Spring 3.0更加完善,实现了对Struts 2的超越。

 

2、下载
http://spring.io/projects,选择“Spring Framework”

3、几个重要的东西
  3.1)DispatcherServlet:前端控制器,Spring的web框架围绕DispatcherServlet设计(很重要吧),其作用是将请求分发到不同的处理器。
  3.2)HandlerMapping:处理请求的映射,实现类包含:
    3.2.1)SimpleUrlHandlerMapping 通过配置文件,把一个URL映射到Controller
    3.2.2)DefaultAnnotationHandlerMapping 通过注解,把一个URL映射到Controller类上
  3.3)HandlerAdapter: 处理请求的映射,实现类包含:
    3.3.1)AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上

4、古老的开发流程

4.1)实现控制器接口

public class MyController implements Controller {    @Override    public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {        //返回一个模型视图对象,指定路径        return new ModelAndView("my/index", "message", "Hello World");    }}

4.2)创建视图

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><!DOCTYPE html><html><head>    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    <title>my view</title></head><body>    ${message}</body></html>

4.3)修改spring mvc 配置文件

<bean name="/my" class="com.myspringmvc.controllers.MyController"></bean>

4.4)运行

4.5)缺点:
一个控制器中只有一个Action,如果要多个Action则需要定义多个Controller。

5、现在的开发流程

5.1)在自定义Controller上添加注解 @Controller、@RequestMapping("/")
5.2)在控制器方法上添加注解 @RequestMapping

@Controller@RequestMapping("/my")public class MyController {    @RequestMapping("/index")    public String index(Model model){        model.addAttribute("message", "Hello World");        return "my/index";    }}        

5.3)修改spring mvc 配置文件,自动扫描包

<context:component-scan base-package="com.myspringmvc.controllers" />

5.4)运行

 

Spring MVC入门