springMVC学习总结(一)快速入门

一、初步认识

  • springMVC执行流程

    • <img src="http://images2017.cnblogs.com/blog/1135258/201712/1135258-20171222174147459-726790122.png" width="100%">
  • 主要组件
    • DispatcherServlet(中央控制器)

      • 配置在web.xml中的前端控制器,客户端请求的入口,调用HandlerMapping获取处理器
    • HandlerMapping(处理器映射器)
      • 负责调用 HandlerAdapter获取处理器
    • HandlerAdapter(处理器适配器)
      • 调用处理器
    • Controller(处理器)
      • *执行代码逻辑,结束之后返回到 DispatcherServlet 然后由由DispatcherServlet调用调用ViewResolver
    • ViewResolver(视图解析器)
      • 配置在springmvc.xml中的视图解析器,返回视图

二、开始使用

  • 准备工作

    • 导包

      • 普通web项目

      • maven项目

        要导入的依赖包括:springmvc相关、jsp相关

          <properties>
        <spring.version>4.1.3.RELEASE</spring.version>
        </properties>
        <!-- springmvc相关 -->
        <dependencies>
        <!-- Spring -->
        <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
        </dependency>
        <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
        </dependency>
        <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>${spring.version}</version>
        </dependency>
        <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring.version}</version>
        </dependency>
        <!-- jsp相关 -->
        <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>${jstl.version}</version>
        </dependency>
        <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>${servlet-api.version}</version>
        <scope>provided</scope>
        </dependency>
        <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>${jsp-api.version}</version>
        <scope>provided</scope>
        </dependency>
        </dependencies>
    • xml文件的配置
      • 前端控制器(web.xml

          <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup> <!--表示servlet随服务启动-->
        </servlet>
        <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>*.action</url-pattern>
        </servlet-mapping>
        • load-on-startup:表示servlet随服务启动;
        • *.action这里是客户端访问请求的入口
        • contextConfigLocation:加载springmvc配置文件
      • 核心配置文件(springmvc.xml

        下面以注解开发为例进行示例:

        • 开启注解扫描

            <!--开启组件扫描,扫描位置根据实际项目进行配置-->
          <context:component-scan base-package="com.springMVC.controller" />
        • 配置注解映射器

            <!-- 注解适配器 -->
          <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
        • 配置注解适配器

             <!-- 注解适配器 -->
          <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
        • 配置视图解析器

            <!-- ViewResolver -->
          <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
          <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
          <property name="prefix" value="/WEB-INF/jsp/"/>
          <property name="suffix" value=".jsp"/>
          </bean>
          • 该视图解析器最终返回的视图地址是 “WEB-INF/jsp/hello.jsp”
          • viewClass:该视图解析器需要jstl的相关jar包 来解析jsp页面的jstl标签
  • 代码编写(即Controller

    • 后台代码表现层写法:

      @Controller

      public class Demo01Controller {

        @RequestMapping(value = "/test.action")
      public String test(){
      System.out.println("访问成功!!!!");
      return "hello";
      }
    • 视图层代码:

        <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
      <%@page isELIgnored="false"%>
      <!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=UTF-8">
      <title>Hello World</title>
      </head>
      <body>
      controller 传递过来的值:${message}
      </body>
      </html>

      ${message}:表示显示由HelloWorldController处理器传过来的模型数据。

      页面的访问:http://localhost:8080/hello.action 访问路径服务器设置不同有所区别

springMVC学习总结(一)快速入门的更多相关文章

  1. MyBatis学习总结-MyBatis快速入门的系列教程

    MyBatis学习总结-MyBatis快速入门的系列教程 [MyBatis]MyBatis 使用教程 [MyBatis]MyBatis XML配置 [MyBatis]MyBatis XML映射文件 [ ...

  2. php随笔3-thinkphp 学习-ThinkPHP3.1快速入门(1)基础

    ThinkPHP3.1快速入门(1)基础 简介 ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发 框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在 ...

  3. SpringMVC总结一:快速入门

    MVC: MVC是一种架构模型,本身没有什么功能,只是让我们的项目结构更加合理,流程控制更加清晰,一般包含三个组件: ​ **Model(模型)**:数据模型,用于提供要展示的数据.一般包含数据和行为 ...

  4. MyBatis入门学习教程-MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  5. MyBatis学习总结_01_MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  6. php随笔4-thinkphp 学习-ThinkPHP3.1快速入门(2)数据CURD

    ThinkPHP3.1快速入门(2)数据CURD   浏览:194739 发布日期:2012/09/05 分类:文档教程 关键字: 快速入门 CURD 上一篇中,我们了解了ThinkPHP的基础部分, ...

  7. MyBatis 学习总结 01 快速入门

    本文测试源码下载地址: http://onl5wa4sd.bkt.clouddn.com/MyBatis0918.rar 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级 ...

  8. Java学习---Quartz定时任务快速入门

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...

  9. C++ Primer学习笔记_1_快速入门

    C++快速入门 一 编写简单程序 // main是操作系统唯一显示调用的函数int main() {/**return返回的值是一个状态指示器 0:成功 非0:返回错误给OS*以echo $?命令可以 ...

  10. Java学习:JDBC快速入门

    本节类容 JDBC基本概念 快速入门 JDBC基本概念 概念: Java DataBase Connectivity Java 数据库连接,Java语言操作数据库 JDBC本质: 其实是官方(sun公 ...

随机推荐

  1. Python - SIP参考指南 - 介绍

    介绍 本文是SIP4.18的参考指南.SIP是一种Python工具,用于自动生成Python与C.C++库的绑定.SIP最初是在1998年用PyQt开发的,用于Python与Qt GUI toolki ...

  2. c# 条形码(求指教)

    因公司需要完成一条形码打印问题,所以在找到一些资料做了一个Demo 特请教! 不知道此条形码是否正确: 图: 源码: 代码 ));            }            g.Save();  ...

  3. [转载] ZooKeeper原理及使用

    转载自http://www.wuzesheng.com/?p=2609 ZooKeeper是Hadoop Ecosystem中非常重要的组件,它的主要功能是为分布式系统提供一致性协调(Coordina ...

  4. python打包exe pyinstaller 简单使用

    源由 最近公司让做了一个小工具,使用python写的,写完之后要求能放在其它电脑上运行,于是就开始寻找方案; 按网上的说法 py2exe已经很久没更新了,资料也不多: 于是就采用pyinstaller ...

  5. LKD: Chapter 6 Kernel Data Structures

    这一章我们研究四种主要的数据结构: linked lists, queues, maps, binary trees. Linked Lists:(<linux/list.h>) 在lin ...

  6. SoapUI实践:自动化测试、压力测试、持续集成

    因为项目的原因,前段时间研究并使用了 SoapUI 测试工具进行自测开发的 api.下面将研究的成果展示给大家,希望对需要的人有所帮助. SoapUI 是什么? SoapUI 是一个开源测试工具,通过 ...

  7. es6环境搭建

    安装node环境 地址:https://nodejs.org/en/download/ 建立项目目录 建立一个项目目录es6-demo,并在目录下建立两个子文件夹src和dist: src:源代码es ...

  8. javaScript(JS)强制保留两位小数的输入数校验和小数保留

    参考来源于网络,如有侵权,请联系作者删除: 输入input 的格式校验: $(function(){ var data = $.trim($("#inputId").val()); ...

  9. Hive详解

    1.   Hive基本概念 1.1  Hive简介 1.1.1 什么是Hive Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. 1.1 ...

  10. python网络编程之单线程之间的并发

    单线程之间的并发就是利用一个线程实现并发的效果,也就是利用了cup遇到阻塞的那段时间去做别的事情,从而提高了cup的利用率,使之在单个线程中就实现了并发的效果. 下面就是一个简单的服务端单个线程实现并 ...