zoukankan      html  css  js  c++  java
  • 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)运行

  • 相关阅读:
    Bzoj 1010: [HNOI2008]玩具装箱toy(斜率优化)
    Cogs 376. [IOI2002]任务安排(后效性DP)
    Bzoj 1911: [Apio2010]特别行动队(斜率优化)
    Poj 2018 Best Cow Fences(分数规划+DP&&斜率优化)
    Bzoj 1212: [HNOI2004]L语言(AC自动机+DP)
    ZOJ 3228 Searching the String(AC自动机)
    Bzoj 3172: [Tjoi2013]单词(fail树)
    Hdu 3065 病毒侵袭持续中(AC自动机)
    Hdu 2896 病毒侵袭(AC自动机)
    Bzoj 2599: [IOI2011]Race(点分治)
  • 原文地址:https://www.cnblogs.com/yuanyee/p/6288567.html
Copyright © 2011-2022 走看看