关于SpringMVC的配置流程以及一些细节
首先说道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的配置流程以及一些细节的更多相关文章
- SpringMVC初写(一)SpringMVC的配置方式
1.Spring概述a)SpringMVC是什么?SpringMVC是Spring框架内置的MVC实现.SpringMVC就是一个Spring内置的MVC子框架MVC:Model-View-Contr ...
- 《SpringMVC从入门到放肆》二、SpringMVC的执行流程及默认配置
上一篇博文我们做了一个hello world的程序,并且已经成功的跑起来了.这一篇我们来深入的了解一下SpringMVC的执行流程以及一些其它的配置. 一.执行流程 来解释一下上图中的各个名词1.Di ...
- SpringMVC处理请求流程
SpringMVC核心处理流程: 1.DispatcherServlet前端控制器接收发过来的请求,交给HandlerMapping处理器映射器 2.HandlerMapping处理器映射器,根据请求 ...
- SpringMvc的数据绑定流程
在SpringMvc中会将来自web页面的请求和响应数据与controller中对应的处理方法的入参进行绑定,即数据绑定.流程如下: -1.SpringMvc主框架将ServletRequest对象及 ...
- SpringMVC之处理流程
之前在学servlet时写过JavaWeb与Asp.net工作原理比较分析,那篇主要是大致描述了下servlet的工作流程,今天在家了解了下springmvc的工作原理,与asp.net中的mvc进行 ...
- Idea简单SpringMVC框架配置
前边已经介绍过了Struts在Idea上的配置,相对于Struts来说,我觉得SpringMVC有更多的优势,首先Struts是需要对action进行配置,页面发送不同的请求,就需要配置不同的acti ...
- SpringMVC基础配置(通过注解配置,非xml配置)
SpringMVC是什么,有多火,我这里就不再啰嗦了,SpringMVC比Struts2好用太多,我在学校的时候私下里两种都接触过,对比之后果断选择了SpringMVC,后来在做Android应用开发 ...
- SpringMVC基础配置及使用
SpringMVC基础配置及使用 SpringMVC:1.SpringMVC和Spring的关系: 软件开发的三层架构: web层[表示层.表现层]---->Service层----> ...
- PHP开发环境&MySQL下载安装及配置流程
PHP开发环境&MySQL下载安装及配置流程 因工作须要,从0開始学PHP,前几天看完视频教程后開始搞开发环境,到今天才好.这里把安装配置流程梳理一下分享出来. 一.概述 要搭建一个开发环境无 ...
随机推荐
- Cmake时 如何在windows命令行 选择vs版本
本人电脑装了VS2017 和 VS2013版本.可能时VS2017安装的时间早,每次cmake文件时优先选择编译成VS2017的文件 可通过查看VS2013的版本,使用 cmake ../pcl-su ...
- 微信小程序-列表渲染多层嵌套循环
微信小程序-列表渲染多层嵌套循环 入门教程之列表渲染多层嵌套循环,目前官方的文档里,主要是一维数组列表渲染的案例,还是比较简单单一,给刚入门的童鞋还是无从入手的感觉. <view wx:for= ...
- Java使用RSA加密解密签名及校验
RSA加密解密类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ...
- JAVA写接口傻瓜(#)教程(四)
接上篇 7.sevlert 啊啊啊终于写到最重要的实现部分了.Servlet = Service + Applet,表示小服务程序.Servlet 是在服务器上运行的小程序.这个词是在 Java ap ...
- 关于leal和mov
最近在学习leal的时候遇到了一点非常迷惑的地方,就是leal是用来取有效地址的,但是为什么它也可以实现赋值呢?偶然发现一个博客讲的不错,遂自己记录一下 一个这样的例子 leal 7(%edx,%ed ...
- 李航《统计学习方法》CH02
CH02 感知机 前言 章节目录 感知机模型 感知机学习策略 数据集的线性可分性 感知机学习策略 感知机学习算法 感知机学习算法 感知机学习算法的原始形式 算法的收敛性 感知机学习算法的对偶形式 导读 ...
- 1-TwoSum(简单)
Description: Given an array of integers, return indices of the two numbers such that they add up to ...
- javascript 模板
今天想记录下对arttemplate模板的使用,哎,其实这玩意的兴起主要还是得从浏览器操作dom说起.如果修改浏览器的某一个dom节点就会引起文档流的重绘,然后这个重绘的耗时相当的大,是昂贵的开销.所 ...
- rabbitmq的问题Failed to start bean 'listenerContainer'
第一次使用mq发送消息,启动报错了,网上看了好多也没找到几个相关论坛,好几个置顶的都是发帖后不说明解决方案的.因此在这里记录一下. 原因: 因为消息监听的地址在mq服务中没有对应的q, 解决: 需要手 ...
- baidu-map
1 var map = new BMap.Map("wcp"); // 创建Map实例 2 map.centerAndZoom(new BMap.Point(9.123469591 ...