开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第25天,点击查看活动详情
写在前面
当我们学习了spring框架之后,基本上来说,已经是打好了一个良好得基础了。
但是距离一个企业的基本开发需要掌握的框架,还是得经过不断得学习,才行。
这不,我们继续学习下一个框架SpringMVC。
SpringMVC这个框架,一般来说,用来作为我们项目得Controller层,用来接收用户得输入,然后选择相应得视图回显展示给用户。
MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,C(控制器)将V(视图、用户客户端)与M(javaBean:封装数据)分开构成了MVC。
对于以前得项目来说,还有出现Struts得,但现在基本都很少了。
Struts1(现在一般不用),Struts2(一般老项目使用)等等。
这不,接下来就是spring mvc框架的学习之旅了,希望可以帮助到大家。
一、搭建入门工程
1.1 添加依赖
就是mvc依赖、jstl 依赖还有servlet-api依赖
<!-- spring MVC依赖包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.7.RELEASE</version>
</dependency>
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
1.2 开发步骤
1.2.1 配置部分
- web.xml
在 web.xml 中添加 前端控制器DispatcherServlet 的配置。
<web-app >
<!-- 学习前置条件 -->
<!-- 问题1:web.xml中servelet、filter、listener、context-param加载顺序 -->
<!-- 问题2:load-on-startup标签的作用,影响了servlet对象创建的时机 -->
<!-- 问题3:url-pattern标签的配置方式有四种:/dispatcherServlet、 /servlet/* 、*
、/ ,以上四种配置,优先级是如何的-->
<!-- 问题4:url-pattern标签的配置为/*报错,原因是它拦截了JSP请求,但是又不能处理JSP请
求。为什么配置/就不拦截JSP请求,而配置/*,就会拦截JSP请求-->
<!-- 问题5:配置了springmvc去读取spring配置文件之后,就产生了spring父子容器的问题 -->
<!-- 配置前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 设置spring配置文件路径 -->
<!-- 如果不设置初始化参数,那么DispatcherServlet会读取默认路径下的配置文件 -->
<!-- 默认配置文件路径:/WEB-INF/springmvc-servlet.xml -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 指定初始化时机,设置为2,表示Tomcat启动时,DispatcherServlet会跟随着初始化-->
<!-- 如果不指定初始化时机,DispatcherServlet就会在第一次被请求的时候,才会初始化,而且只会被初始化一次-->
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- URL-PATTERN的设置 -->
<!-- 不要配置为/*,否则报错 -->
<!-- 通俗解释:/*,会拦截整个项目中的资源访问,包含JSP和静态资源的访问,对于静态资源的访问springMVC提供了默认的Handler处理器 -->
<!-- 但是对于JSP来讲,springmvc没有提供默认的处理器,我们也没有手动编写对于的处理器,此时按照springmvc的处理流程分析得知,它短路了 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
- springmvc.xml
DispatcherServlet 启动时会去加载 springmvc.xml 文件
<beans>
<!-- 配置处理器Bean的读取 -->
<!-- 扫描controller注解,多个包中间使用半角逗号分隔 -->
<context:component-scan base-package="com.llsydn.springmvc.controller"/>
<!-- 配置三大组件之处理器适配器和处理器映射器 -->
<!-- 内置了RequestMappingHandlerMapping和RequestMappingHandlerAdapter等组件注册-->
<mvc:annotation-driven />
<!-- 配置三大组件之视图解析器 -->
<!-- InternalResourceViewResolver:默认支持JSP视图解析-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
好了,以上就是SpringMVC学习之旅-项目搭建篇(1) 的全部内容了。
今天就先到这里了,后面的内容,留下次分享了,先溜了!!!^_^
如果觉得写得不错的,帮忙点赞、评论、收藏一下呗!!!