首先说道SpringMvc是什么,SpringMVC是Spring框架里面的一个子框架,它对网站前后端的代码分层做了一套实现,这套实现给我们带来了几个好处,首先第一,SpringMVC实现了一个请求对应一个方法。这个请求对方法的映射让我们在编程的时候不需要像在写Servlet编程的时候那样重写doGet和doPost方法然后对各种各样的请求进行手工分发,从而大大提高了程序的可维护性,而且在编程的时候程序员可以见文知意。第二,支持了对数据的自动封装,SpringMvc在向服务器发送表单参数的时候(包括Get请求)它会自动给我们封装成SpringMVC内置对象模型(request,response,session,Map,ModelMap),以及String+8大基本数据类型的数据,数组,以及JavaBean对象。对于List的数据还能用过手工封装成JavaBean让SpringMVC帮我们自动把数据封装到方法的参数里面。这样我们在取数据的时候就可以直接调用方法中的参数就能拿到请求传过来的参数了。

 说了这么多,那···SpringMVC应该如何去配置呢?首先使用框架必须要导入包。这里需要Spring的基础包beans,context,core,expression四个基础包,还有依赖的外部日志包logging。除此之外我们基于注解和配置文件配置需要加入aop包。这些就是基础Spring的配置。现在我们需要使用SpringMVC的功能,所以另外再加入web和webmvc这两个包。这样导包就完成了。

  接着就创建一个动态网站项目。在webXML中配置一个请求处理中心。在mvc包org.springframework.web.servlet.DispatcherServlet这个路径有个叫DispatcherServlet的类,就是它给我们做请求分发的。它的父类有个contextConfigLocation的参数。注释 Explicit context config location告诉我们需要把配置文件的路径配置在这里这样Spring才能识别配置文件的路径。一下就是配置信息

这里我设置了它要处理所有*.do的请求。这里的配置文件我直接放在了src或者同级的其他source文件夹下由于source文件夹在编译后不是实际产生的目录这个特性,所以这里其实就是把配置文件放在了项目的根目录但是Spring框架要求我们配置文件在根目录的时候

必须在路径上加上classpath:。当这里是纯注解配置的时候我们需要把它改成另外一个参数来改变DispatcherServlet的配置。

然后我们随便写两个页面,一个用来跳转页面,一个用来显示跳转后的页面

再接着去写Controller的代码

@Controller
public class UserController { @RequestMapping("/say.do")
public String say() {
System.out.println("Hello World!");
return "hello.jsp";
}
}

Controller加上RequestMapping注解,这个注解是用于请求映射到指定路径的方法上这里我指定了/say.do,所以以后发送到这个Controller的请求是标准项目路径后面加上/say.do的就一定会通过这个Controller去处理。

因为Spring默认的试图解释器支持String类型的返回数据所以我们这个say的方法只需要返回一个字符串就能做页面跳转了。

这样SpringMVC最基础的配置就已经全部完成了。最后回顾一下整个流程:

用任何框架之前都需要先导包

1.首先我们需要创建一个动态网站项目创建后新建一个网站项目的入口web.xml;

2.接着需要配置一个请求控制中心,它用来拦截浏览器发过来的请求通过设置规则servlet-mapping设置*.do拦截所有包含.do的请求

3.src下面新建Spring的配置文件配置文件勾上context命名空间。之后再配置文件里面配置组件扫描路径<context:component-scan basepackges=" 扫描的包名 "></context :component-scan>

4.创建Controller类加上@Controller注解 声明一个方法加上@RequestMapping(" 映射路径") 这样映射路径对应的请求就能够通过映射访问到Controller的这个方法了

5.编写操作和逻辑代码,页面跳转返回字符串。默认Spring内置了一个视图解释器,这个视图解释器默认兼容.jsp的页面。会接收我们方法返回的字符串将它解析成对应的url返回给浏览器。

这样最简单的SpringMVC模型就搭好了。

关于SpringMVC的配置流程以及一些细节的更多相关文章

  1. SpringMVC初写(一)SpringMVC的配置方式

    1.Spring概述a)SpringMVC是什么?SpringMVC是Spring框架内置的MVC实现.SpringMVC就是一个Spring内置的MVC子框架MVC:Model-View-Contr ...

  2. 《SpringMVC从入门到放肆》二、SpringMVC的执行流程及默认配置

    上一篇博文我们做了一个hello world的程序,并且已经成功的跑起来了.这一篇我们来深入的了解一下SpringMVC的执行流程以及一些其它的配置. 一.执行流程 来解释一下上图中的各个名词1.Di ...

  3. SpringMVC处理请求流程

    SpringMVC核心处理流程: 1.DispatcherServlet前端控制器接收发过来的请求,交给HandlerMapping处理器映射器 2.HandlerMapping处理器映射器,根据请求 ...

  4. SpringMvc的数据绑定流程

    在SpringMvc中会将来自web页面的请求和响应数据与controller中对应的处理方法的入参进行绑定,即数据绑定.流程如下: -1.SpringMvc主框架将ServletRequest对象及 ...

  5. SpringMVC之处理流程

    之前在学servlet时写过JavaWeb与Asp.net工作原理比较分析,那篇主要是大致描述了下servlet的工作流程,今天在家了解了下springmvc的工作原理,与asp.net中的mvc进行 ...

  6. Idea简单SpringMVC框架配置

    前边已经介绍过了Struts在Idea上的配置,相对于Struts来说,我觉得SpringMVC有更多的优势,首先Struts是需要对action进行配置,页面发送不同的请求,就需要配置不同的acti ...

  7. SpringMVC基础配置(通过注解配置,非xml配置)

    SpringMVC是什么,有多火,我这里就不再啰嗦了,SpringMVC比Struts2好用太多,我在学校的时候私下里两种都接触过,对比之后果断选择了SpringMVC,后来在做Android应用开发 ...

  8. SpringMVC基础配置及使用

    SpringMVC基础配置及使用 SpringMVC:1.SpringMVC和Spring的关系:    软件开发的三层架构: web层[表示层.表现层]---->Service层----> ...

  9. PHP开发环境&amp;MySQL下载安装及配置流程

    PHP开发环境&MySQL下载安装及配置流程 因工作须要,从0開始学PHP,前几天看完视频教程后開始搞开发环境,到今天才好.这里把安装配置流程梳理一下分享出来. 一.概述 要搭建一个开发环境无 ...

随机推荐

  1. docker 中安装 redis

    使用以下命令在Docker Hub搜索Redis镜像docker search redis 使用以下命令拉取镜像,Redis的镜像docker pull redis:latest 使用以下命令查看,本 ...

  2. Robin Hood CodeForces - 672D (二分)

    大意: 给定数组$a$, 每次操作使最大元素减小1最小元素增大1, 求k次操作后最大值与最小值的差. 二分出k次操作后最大值的最小值以及最小值的最大值, 若和能平分答案即为$max(0,R-L)$, ...

  3. 推荐一个好用的E2E前端测试框架cypress

    Cypress 是一个E2E的前端自动化测试框架,同样是基于BDD的思想设计的,话不多说,上demo https://github.com/Spillage/cypress-demo PS, 还有一个 ...

  4. centos 7安装python 3

    linux-Centos7安装python3并与python2共存   1.查看是否已经安装Python CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的 ...

  5. 转载:Shell 脚本加密 - 略有修改

    shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件. shc 安装 yum -y install shc 如果yum不能安装,请移步官方下载rpm包 http ...

  6. WMI设置有线网卡IP地址

    一.通过WMI获取物理适配器序号 NetEnabled: 是否启用了适配器,True为启用,False为禁用;PhysicalAdapter: 适配器是否物理或逻辑适配器,True为物理,False为 ...

  7. 意想不到的javascript

    最近总遇到些叫人想不明白的javascript,先列出来玩玩: 1. var name=1; switch(name){ case 1:console.log(name); break; defaul ...

  8. MySQL—概念,用户的创建,主键,外键,数据类型,表格创建

    MySQL DBMS,MySQL的概念,数据库分类,以前MySQL的部署中的一些概念 #DBMS:数据库管理系统,用于管理数据库的大型软件.mysql就是dbms的一种 #Mysql:是用于管理文件的 ...

  9. this应用详解-js原生

    学习记录,以防遗忘,适合新手解惑.老鸟避让! 在微信H5的开发中,很多页面都是简单的一个模型item在加上很多很多数据组成起来的.例如微信朋友圈,仔细观察,他的一个基本模型就是 “头像图片 + 用户昵 ...

  10. JS内置对象有哪些?

    JS内置对象分为数据封装类对象和其他对象 数据封装类对象:String,Boolean,Number,Array,和Object; 其他对象:Function,Arguments,Math,Date, ...