手把手教你优雅的编写第一个SpringMVC程序

可能之前写的文章走进SpringMVC世界,从SpringMVC入门到SpringMVC架构中的第一个springMVC入门程序讲解的不是那么优雅、细致、精巧,因此特地写这篇稍微优雅、细致、精巧一些的文章,至于优雅、细致、精巧到什么程度呢,我觉得只要有servlet的基础应该就能懂(哈哈,好像有点夸大其词了),反正应该大概可能会适合小白(我不是大牛,我也是小白QnQ)

首先,看一下传统至今的数据交互的常规套路,嗯,还是原来的味道,真香!
在这里插入图片描述
其次,要明确springMVC是充当MVC中的哪个角色,现在我要说的是第一个SpringMVC程序是以jsp ->Servlet (Springmvc)->Jsp流程写的,一眼看出,是collection层!于是从servlet入手。

普通的servlet流程: 请求-url-pattern -交给对应的servlet去处理

如果现在想用springmvc,而不是普通的servlet,如何告知程序?-如何让springmvc 介入程序:

Springmvc需要配置一个 Springmvc自带的servlet

通过以下配置,拦截所有请求,交给SpringMVC处理:

 <servlet>
  	<servlet-name>springDispatcherServlet</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  			<param-name>contextConfigLocation</param-name>
  			<param-value>classpath:springmvc.xml</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup>
  </servlet>
  
  <servlet-mapping>
  	<servlet-name>springDispatcherServlet</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping>

详解看下图:
在这里插入图片描述其中需要注意以下的拦截规则

< url-pattern > .action < /url-pattern >

/:一切请求 ,注意不是 /*
/user: 拦截以 /user开头的请求
/user/abc.do: 只拦截该请求
.action: 只拦截 .action结尾的请求

.action为例:
在这里插入图片描述

至于init-param的内容,通过源码发现...(不说废话了直接看图哈哈)
在这里插入图片描述
通过init-param属性配置指定springmvc配置文件的路径,如果要省略,必须放到 默认路径:
/WEB-INF/springDispatcherServlet-servlet.xml
在这里插入图片描述
在这里,考验一下自己,有没有什么办法能知道默认路径为/WEB-INF/springDispatcherServlet-servlet.xml的,先自己想想。其实很简单,我们只要把init-param配置一删,运行Tomcat,报错,看异常,这一流程下来你就会发现异常就很明显的告诉我们默认路径了,如下图:
在这里插入图片描述

当然,项目中同时兼容 springMVC版的servlet和普通版的Servlet

 <servlet-mapping>
  	<servlet-name>springDispatcherServlet</servlet-name>
  	<url-pattern>.action</url-pattern>
  </servlet-mapping>

  <servlet>
  	<servlet-name>springDispatcherServlet</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  			<param-name>contextConfigLocation</param-name>
  			<param-value>classpath:springmvc.xml</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup>
  </servlet>

接下来创建一个后缀名为handler的普通类,要想把一个普通类变的不普通有几种方法:接口/类 、 注解 、 配置 ,而springMVC用注解则显得时尚,所以采用了注解,特别注意@RequestMapping的用法,因为之后它会非常常见!!!
在这里插入图片描述
当然不要忘记给这个类组件扫描,不然springMVC是不认识它的哦,为了方便直接扫描了所在整个包
在这里插入图片描述
到这里,servlet就完成了,接下来是JSP了

在这里插入图片描述
再接下来回到springMVC.xml配置中,要再学习一个好东西那就是InternalResourceViewResolver视图解析器,首先观察源码,如下图:
在这里插入图片描述
在这里插入图片描述
这个时候,你再写请求时,直接写success的时候,默认就会给你解析为如下图;
在这里插入图片描述

到这里,基本上就大功告成了,于是到了胆战心惊的测试程序环节了,紧张又刺激!
在这里插入图片描述
好了,最后一起来分析分析一下我们的第一个springMVC的入门程序的整体流程吧!
在这里插入图片描述
什么?要源码。。。额,好的呢
源码已打包至网盘
什么?没用过百度网盘?
出门右拐————秋名山决斗在这里插入图片描述
链接:https://pan.baidu.com/s/1JRdk1RsPN-52ddlN-b_MTw
提取码:5d78

到这里,恭喜各位,贺喜大家,现在的everybody完美地走上了SpringMVC的不归之路!一条从入门到入土的道路(话好像不太好听,但毕竟学习编程嘛,活到老,编程也就到老!

如果本文对你有一点点帮助,那么请点个赞呗,谢谢~

最后,若有不足或者不正之处,欢迎指正批评,感激不尽!如果有疑问欢迎留言,绝对第一时间回复!

欢迎各位关注我的公众号,一起探讨技术,向往技术,追求技术,说好了来了就是盆友喔...

在这里插入图片描述

posted @ 2019-12-02 15:41  宜春  阅读(374)  评论(0编辑  收藏  举报