手把手教你优雅的编写第一个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的不归之路!一条从入门到入土的道路(话好像不太好听,但毕竟学习编程嘛,活到老,编程也就到老!
如果本文对你有一点点帮助,那么请点个赞呗,谢谢~
最后,若有不足或者不正之处,欢迎指正批评,感激不尽!如果有疑问欢迎留言,绝对第一时间回复!
欢迎各位关注我的公众号,一起探讨技术,向往技术,追求技术,说好了来了就是盆友喔...