一、Springmvc是什么?

 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,

将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

          

    二、Spring MVC 架构图:

        

1、DispacherServlet前端控制器

负责用户请求和响应,是一个中央控制器(调度),调用HandlerMapping查找Handler,调用HandlerAdapter处理器适配器执行Handler,调用ViewResolver视图解析器去解析视图,有了DispacherServlet有利于框架扩展,减少了各各组件之间耦合性。

2、HandlerMapping处理器映射器

负责查找Handler(常用action),通过xml配置方式或注解方式将Handler类和request请求Handler链接地址进行对应配置。

3、HandlerAdapter处理器适配器

Springmvc提供了很多种适配器,注解适配器支持注解开发、原始servlet适配器(HanderRequestAdapter)支持原始servlet的执行。

负责执行Handler,适配器是按照一定的规则去执行Handler,调用Handler返回的结果是ModelAndView,ModelAndView将Model和view封装起来(模型数据和视图)

4、ViewResolver视图解析器

负责进行视图解析,返回View,框架执行很多类型的View(jstlView、pdfView。。。)

三、案列

我们来撰写第一个入门小案列:

我们首先要准备jar包,然而jar包的地址我已经给你们准备好了:http://pan.baidu.com/s/1eRAaG2A

接下来我们把项目搭建起来:

然后我们编写web.xml文件,在这个文件的<web-app>节点下添加如下代码:

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

这几行代码中,servlet节点的servlet-name是你springMVC配置文件的名字,而配置文件这样命名:servletName-servlet.xml

<url-pattern>/</url-pattern>代表分发所有请求!
然后我们在去配置SpringMVC的配置文件具体代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p"
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
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="org.springframework.samples.petclinic.web"/>
<!-- 这行代码代表的是用哪个URL地址,访问哪个类! name就是URL class就是你输入这个URL地址后要访问的类 -->
<bean name="/first" class="cn.happy.controller.Login" /> -->
<!-- 视图解析器:负责进行视图解析,返回View -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--
前缀(prefix)和后缀(suffix),和我们返回的View组合,进而找到一个屋里视图!
组合后的形式:http://localhost:8080/项目名/WEB-INF/jsp/View名.jsp
-->
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>

 我们写完SpringMVC的配置文件之后,就该去编写类了:

package cn.happy.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController; public class Login extends AbstractController { @Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
//我们来打印一句话,然后返回一个视图名
System.out.println("Hello,Spring MVC!");
return new ModelAndView("success");
}
}

然后我们返回去编写WEB-INF->jsp->success.jsp页面

        

成功页面:

 上面是我们的第一种方式,第二种方式是是用注解的方式来实现,我们接下来改一下我们的配置文件,在文件里
添加两行代码:
<context:component-scan base-package="cn.happy.controller" />
<mvc:annotation-driven/>
第一行代码的意思是类在哪个包下,第二行代码是扫描我这个包下的所有类,接下来我们编写我们Hellocontroller类:
package cn.happy.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; //这个注解是让我们的类可以实现调度请求
@Controller
public class HelloController { //这个注解是我们访问时候的URL地址
@RequestMapping(value="/hello")
public String hello(String name){
//方法中的name参数是可以被SpringMVC自动装配的,
System.out.println("通过非注解模式");
return "success";
}
}

 


到这里我们的SpringMVC入门小案例已经写完了,各位大大看完记得点赞哦!

Spring MVC入门讲解的更多相关文章

  1. Spring MVC 入门教程示例 (一)

    今天和大家分享下  Spring MVC  入门教程 首先还是从 HelloWorld  web 工程开始 -------------------------- 1.首先创建一个Maven Web工程 ...

  2. Java基础-SSM之Spring MVC入门篇

    Java基础-SSM之Spring MVC入门篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Spring MVC简介 1>.什么是Spring MVC 答:Sprin ...

  3. Spring框架学习(7)spring mvc入门

    内容源自:spring mvc入门 一.spring mvc和spring的关系 spring mvc是spring框架提供的七层体系架构中的一个层,是spring框架的一部分,是spring用于处理 ...

  4. 【转】spring MVC入门示例(hello world demo)

    部分内容来自网络:<第二章 Spring MVC入门 —— 跟开涛学SpringMVC > 1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web M ...

  5. SSM(spring mvc+spring+mybatis)学习路径——2-1、spring MVC入门

    目录 2-1 Spring MVC起步 一.回顾Servlet 二.SpringMVC简介 三.搭建SpringMVC第一个案例 四.简单流程及配置 五.使用注解开发Controller 六.参数绑定 ...

  6. Spring MVC入门的实例

      作为Spring MVC入门,以XML配置的方式为例.首先需要配置Web工程的web.xml文件. 代码清单14-1:web.xml配置Spring MVC <?xml version=&q ...

  7. Spring MVC详细讲解

    一:三层架构和MVC 1:三层架构 我们的开发架构一般都是基于两种形式:一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就是浏览器服务器.在 JavaEE 开发中,几乎全都是基于 ...

  8. Spring MVC 入门示例讲解

    在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...

  9. Spring MVC 入门示例讲解 - howtodoinjava

    在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...

随机推荐

  1. .NET 微服务和Docker容器

    .NET 微服务:适用于容器化 .NET 应用的体系结构 容器和 Docker 简介 什么是 Docker? Docker 术语 Docker 容器.映像和注册表 为 Docker 容器选择 .NET ...

  2. java中的各种数据类型在内存中存储的方式

    原文地址:http://blog.csdn.net/aaa1117a8w5s6d/article/details/8251456 1.Java是如何管理内存的 java的内存管理就是对象的分配和释放问 ...

  3. github 上传下载代码简单使用

    很长时间,一直认为github很难操作,其实认真学了发现也不是很困难. 主要就3个命令 git clone 建立空间 git push 提交代码,git pull拉取代码. git clone htt ...

  4. Java集合框架Collections【List/Set】

    1.基本介绍: 集合就是存放对象的,他比数组好的一点就是他一开始不清楚自己长度 容器一般是分为很多种的,很多的容器在一起然后进过断的抽象和抽取就成了一个体系,我们称之为集合框架 我们看体系首先是看顶层 ...

  5. hdu--1548--dfs--蜘蛛牌

    /* Name: hdu--1548--蜘蛛牌 Author: shen_渊 Date: 17/04/17 09:15 Description: dfs,不好想,看两个大神的代码好久http://ww ...

  6. null == undefined ?

    最近在看<JavaScript高级程序设计>一书,书中讲到相等操作符(==)时说,要比较相等性之前,不能将 null 和 undefined 转换成其他任何值,但要记住 null == u ...

  7. Eclipse中的Debug

    一.Debug的基本过程 设置断点(双击待设断点左边行号处) 进入Debug模式(在待调试类上右键>调试方式,根据需求选择) 开始调试 二.Debug中的常用操作 继续执行[F8]:继续运行程序 ...

  8. 怎么用snapman一个人在三天内开发出一个复杂的软件开发项目管理系统

    snapman是一个简单而强大的团队协作软件,在上面的信息可以是数据.可以是规则.也可以是自动化代码:最重要的它是一个可以开发的协作平台,所有信息都可以作用到所有人或机器上,大大减少了工作的复杂度.软 ...

  9. Heritrix工具实现网络爬虫

    上次用的java相关知识实现了一个简单的网络爬虫,现在存在许多开源免费的爬虫工具,相对来说,可以很简单的获取网页数据,并写入到本地. 下面我就阐述一下我用Heritrix爬虫工具实现网页数据爬取. - ...

  10. Mahout安装部署

    0x01 简介 Mahout 是一套具有可扩充能力的机器学习类库.它提供机器学习框架的同时,还实现了一些可扩展的机器学习领域经典算法的实现,可以帮助开发人员更加方便快捷地创建智能应用程序.通过和 Ap ...