关于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,前几天看完视频教程后開始搞开发环境,到今天才好.这里把安装配置流程梳理一下分享出来. 一.概述 要搭建一个开发环境无 ...
随机推荐
- 微信小程序的MVVM思想
本文参照:[微信小程序开发]秒懂,架构及框架 同时多看:https://blog.csdn.net/qq_26585943/article/details/54378684 微信小程序开发,主要分清楚 ...
- 【转载】Jmeter 性能测试入门
[转载]Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmete ...
- LNMP的搭建
一.下载安装MySQL 1.1:下载地址:https://dev.mysql.com/downloads/mysql/ 1.2:安装后 1.2.1:解压:tar -xf mysql-8.0.15-li ...
- 【ybt1252】走迷宫
(还是蛮经典的一道bfs) 显然算法bfs [传送门] 算法基本上算是bfs的模板了,(模板详见[新知识]队列&bfs[洛谷p1996约瑟夫问题&洛谷p1451求细胞数量]) #inc ...
- Headless Service 和Service
定于spec:clusterIP: None 还记得Service的Cluster IP是做什么的吗?对,一个Service可能对应多个EndPoint(Pod),client访问的是Cluster ...
- 【IDEA填坑】springboot整合ssm框架
遇到俩问题:一个是mybatis生疏 在EmpMapper.xml中定义resultMap <resultMap id="EmpWithDept" type="c ...
- 关于leal和mov
最近在学习leal的时候遇到了一点非常迷惑的地方,就是leal是用来取有效地址的,但是为什么它也可以实现赋值呢?偶然发现一个博客讲的不错,遂自己记录一下 一个这样的例子 leal 7(%edx,%ed ...
- 找几张图片制作GIF
1.打开Python,输入代码 import PIL.Image as Image #套用PIL函数 def get_gif(pics_dir,n,t): imgs = [] for i in ran ...
- python中pyperclip库的功能
python3中pyperclip库的功能 作用就是复制.粘贴 例子 import pyperclip pyperclip.copy('Hello world!') pyperclip.paste() ...
- ThinkPHP5.0 开发手册
ThinkPHP5.0开发手册地址 https://www.kancloud.cn/manual/thinkphp5/118003 此博文仅仅作为个人笔记存储,没有广告,宣传的意图