【SSM面向CRUD编程专栏 4】 Spring集成web环境 SpringMVC初识

🛫更多ssm知识见SSM_面向CRUD编程专栏

🚕本博客总结自黑马程序员的ssm框架视频

🚒博主对于该知识尚在学习阶段

🚄如果发现存在问题请毫不吝啬的指出

🚀🚀扎哇太枣糕的博客主页🚀🚀

目录

1 Spring集成web环境

2 SpringMVC简介


1 Spring集成web环境

ServletContextListener监听器

        使用原始的new ClassPathXmlApplicationContext获取应用上下文对象的方式,每一次都会去加载这个xml配置文件创建应用上下文对象来获取Bean。于是为了降低这种频繁加载配置文件创建对象的损失,可以在web项目中使用ContextLoaderListener类实现ServletContextListener接口监听器来监听web应用的启动,web应用启动的时候就加载配置文件创建应用上下文对象并将其存储在servletContext域中,这样就可以在web应用的任意位置从域中获取应用上下文对象。

第一步:创建一个类充当ContextLoaderListener监听器,重写初始化方法将应用上下文对象存储在域中

第二步:通过域获取应用上下文对象

第三步:运行

对上述代码的两处优化

        主要是servlet类中有两处耦合死了,可以借助全局化初始参数和工具类实现解耦合。

全局初始化参数(web.xml)

 工具类

创建一个工具类WebApplicationContextUtils类传参servletcontext域对象返回app对象

Spring对ServletContextListener监听器的优化

        通过前面对ServletContextListener监听器的讲解,过渡到Spring对ServletContextListener监听器的优化,Spring提供了一个ContextLoaderListener监听器其底层就是对上面写的代码的一系列封装,该监听器内部加载xml配置文件创建应用上下文对象并存储在ServletContext域中,提供一个客户端工具WebApplicationContextUtils供使用者获取应用上下文对象。

第一步:导入spring-web依赖坐标

第二步: 配置web.xml文件第三步:servlet类使用

2 SpringMVC简介

        SpringMVC是一种基于Java语言实现的MVC设计模型(Model View Controller)的请求驱动型的轻量级web框架,属于是SpringFrameWork的后续产品,已经融合在Spring Web Flow中。它是一套注解,让一个简单的Java类成为处理请求的控制器,无需使用任何接口,同时支持RESTful编程风格的请求。大致而言SpringMVC的模型就是下面的这张图

 参照是上面的图总结出SpringMVC模式的开发步骤,以SpringMVC的快速入门案例为例

第一步:导入SpringMVC的spring-webmvc依赖,用于使用SpringMVC内部的前端控制器

第二步:web.xml文件中配置SpringMVC的前端控制器DispatcherServlet

第三步:创建Controller层、对应的Controller类和视图页面

第四步:使用注解配置Controller类中的方法的映射地址

第五步:创建并配置SpringMVC的核心文件spring-mvc.xml配置文件并在web.xml里将它的位置告知SpringMVC

第六步:客户端发起请求测试

点绿色小三脚运行web项目,如果控制台报错或者无反应的话可以考虑关了进行如下操作

​ 

像上述案例的SpringMVC执行过程如下

1、用户发送请求至前端控制器DispatcherServlet(前端控制器包含在spring-webmvc依赖中,导入之后才能正常使用)

2、 前端控制器DispatcherServlet收到请求之后调用处理映射器HandlerMapping解析请求资源

3、处理映射器HandlerMapping找到具体的处理器(根据xml配置、注解查找)、生成处理器对象以及处理器拦截器对象(如果有的话就生成)一并返回给前端控制器DispatcherServlet

4、前端控制器DispatcherServlet调用处理器适配器HandlerAdapter

5、处理器适配器HandlerAdapter经过适配调用具体的处理器Handler(也就是自己写的controller,也叫后端控制器)

6、处理器Handler(Controller)执行返回ModelAndView

7、处理器适配器HandlerAdapter将处理器Handler(Controller)返回的ModelAndView返回给前端控制器DispatcherServlet

8、前端控制器DispatcherServlet将ModelAndView传给视图解析器ViewReslover

9、视图解析器ViewReslover解析后返回具体的View

10、前端控制器DispatcherServlet根据View渲染视图

11、前端控制器DispatcherServlet返回响应给用户

知识点查漏补缺:

        @RequestMapping:用于建立请求URL和请求方法之间的对应关系,众所周知URL的访问是分级的,如果@RequestMapping注解加在类上的话表示的是一级访问目录,如果@RequestMapping注解加在方法上的话就表示是二级目录与方法所在类的一级目录一起形成虚拟路径。注解的属性有:

  • value:用于指定请求路径的url,默认直接给一个以/开头的字符串,而不用键值对的方式给value赋值
  • method:用于指定请求的方式,都是枚举类型的值RequestMethod.常量名一般是GET或者POST
  • params:限定请求参数的条件,支持简单的表达式,要求参数key和value必须和配置的一模一样

        组件扫描:组件扫描在xml文件中配置,在配置组件扫描之前先引入命名空间

然后通过<context:component-scan>标签进行配置组件扫描,之前一直用的都是直接指定包名扫描包下面的注解

现在直接按照注解的类型进行扫描​ 配置视图解析器,使之拥有默认的前缀和后缀,也就是当将所有的.jsp文件都放在jap文件夹下的时候,可以指定重定向的网页路径的前缀和后缀使之可以直接跳转,不必在return的时候写过多的多级路径。

 因为有上图两个set方法,所以在xml文件的配置时,很容易就联想到使用<property>标签的形式直接注入数据,于是有了下一步

设置了前缀字符串和后缀字符串之后,就可以下面的return字符串拼接成一个url路径对jsp文件夹下的.jsp文件进行映射了

好了,其他的知识明天再学,下课! 

                                                                                                                                                           

上一篇:【SSM面向CRUD编程专栏 3】关于黑马程序员最全SSM框架教程视频,P37集老师跳过的模块创建以及tomcat下载安装配置和运行等诸多问题

下一篇:【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IntelliJ IDEA里的项目搞崩了怎么办,本地历史版本回退拯救你崩溃的心灵

&#x1f4a5;写在前面&#xff1a; 如果你还没有读过雨果的悲惨世界也没有读过余华的活着&#xff0c;那你可以看看我今天早上的经历&#xff0c;如果不想听我胡侃的话&#xff0c;直接进入正题&#xff1a; 目录 本地历史的强大 今天早上打开IntelliJ IDEA继续ssm模块的代码练…

【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 6】springMVC拦截器、异常处理 jdbcTemplate

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 7】springAop 事务控制

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 8】一篇博客快速上手使用MyBatis进行CRUD

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 9】SSM框架整合

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

三万字速通SSM框架入门知识点,快速上手CRUD

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

问题简介 本人是在进行一个ssm框架项目的编写的时候&#xff0c;在数据库中查询到所有的商品信息并返回到页面使用EL表达式进行展现&#xff0c;但是使用tomcat 9.0.58运行的时候报错会出现以下报错情况。 页面报错&#xff1a; 控制台报错&#xff1a; 解决方法 首先看看是不…

check the manual that corresponds to your MySQL server version for the right syntax to use near

首先判断自己是在什么情况下报的错&#xff0c;如果是MyBatis的SQL报错的话&#xff0c;建议直接点击目录跳转到MyBatis时SQL报错&#xff0c;避免浪费时间。如果本文能够对你有所帮助的话&#xff0c;还请在评论区多多支持 目录 &#x1f37b;运行SQL语句、SQL文件等报错 &…

MyBatis的逆向工程工具,自动生成数据库对应的POJO实体类、mapper接口、增删改查mapper.xml文件

下载MyBatis的逆向工程工具&#xff0c;并解压缩到一个不包含中文字符的文件夹下&#xff0c;我直接放到了D盘下&#xff0c;下载地址&#xff1a;MyBatis逆向工程工具下载 如何使用MyBatis的逆向工程工具 下载之后使用idea在一个新窗口中打开&#xff0c;选中工具文件之后&am…

『收藏向 期末SSM课设救急』 教你从搭建到测试运行手撸一个SSM项目实战,附带源码,前端页面、解析和一般遇到的问题(排雷)

&#x1f6eb;ssm知识学习见SSM_面向CRUD编程专栏 &#x1f695;本项目来自动力节点的【米米商城】 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 项目…

【SpringBoot 2】(一)基础知识了解学习

&#x1f6eb;更多知识总结见SpringBoot 2专栏 &#x1f695;本篇知识点总结自尚硅谷雷神的视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; ​ 目录…

【SpringBoot 2】(二)快速入门案例HelloWorld

&#x1f6eb;更多知识总结见SpringBoot 2专栏 ( &#x1f695;本篇知识点总结自尚硅谷雷神的视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; ​ 目…

【SpringBoot 2】(三)SpringBoot相较于Spring的特点

&#x1f6eb;更多知识总结见SpringBoot 2专栏 &#x1f695;本篇知识点总结自尚硅谷雷神的视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; ​ 目录…

井通swtc能不能涨到2元_买一支2块到3块之间的股票,买几十万股吗?这样操作效果怎么样?...

有很多新股民有一种看法&#xff0c;认为高价股风险很大&#xff0c;那么可不可以买2到3元的低价股&#xff0c;是不是风险就很小&#xff0c;以后上涨的力度就会很大&#xff1f;这是很多股民都存在的一个误区&#xff0c;也是很多股市的所谓高手的误导&#xff0c;他们说&…

cad应用程序的组件中发生了未经处理的异常_什么是CAD/CAM?

与许多其他行业一样&#xff0c;牙科技术的生产阶段也越来越自动化。由于牙科实验室工作的价格已成为治疗计划和治疗的主要因素&#xff0c;因此自动化可以在西欧和美国等高薪地区实现更具竞争力的生产。现在&#xff0c;计算机技术的进步使高性价比的单件生产成为可能。近年来…

【SpringBoot 2】(四)详析SpringBoot的常用注解

&#x1f6eb;更多知识总结见SpringBoot 2专栏 &#x1f695;本篇知识点总结自尚硅谷雷神的视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客首页&#x1f680;&#x1f680; 目录 向…

苹果7手机严重卡顿_苹果手机仅配备4GB运存都不会卡顿,安卓系统为何要更多内存?...

原标题&#xff1a;苹果手机仅配备4GB运存都不会卡顿&#xff0c;安卓系统为何要更多内存&#xff1f;众所周知&#xff0c;安卓系统历经十余年的发展&#xff0c;目前最低的运行需求是8GB内存&#xff0c;如果是旗舰机的话还要标配12GB或更高。但是前几天刚发布的iPhone12&…

IntelliJ IDEA自动生成自定义的类注释和方法注释

目录 自定义的类注释 自定义方法注释 实现效果&#xff1a;不用手写即可自动生成如下图的类上注释和方法上的注释&#xff0c;我们只需要填写方法注释的参数和返回值文字描述即可&#xff0c;大大节省了代码开发的时间提高代码开发效率。 &#x1f315; 自定义的类注释 Fil…

violinplot如何看懂_一张图告诉你如何看懂个股大趋势

昨日在T0交易利好消息的影响下&#xff0c;券商股全线大幅高开&#xff0c;带动三大指数高开走高&#xff0c;科技题材股全线活跃&#xff0c;两市量能明显放大&#xff0c;形成量价齐升的良性态势&#xff0c;上证冲上2917&#xff0c;收在2915&#xff0c;创业板大涨3%以上&a…