第一章:springMVC概述
※ spring所用的jar包地址:https://repo.spring.io/release/org/springframework/spring/
-
springMVC概述
-
- springmvc为展现层的基于mvc设计理念的优秀的web框架,是目前最流行的mvc框架之一
- spring3.0后全面超越struts2,成为最优秀的mvc框架
- springmvc通过一套mvc注解,让POJO(plain old java object)成为处理请求的控制器,而无须实现任何接口
- 支持rest风格的url请求。Restful
- 采用松耦合可插拔组件结构,比其他mvc框架更具扩展性和灵活性
-
springmvc是什么
- 一种轻量级的,基于mvc的web层应用框架,偏前端而不是基于业务逻辑层,spring框架的一个后续产品。
-
springmvc能干什么
- 天生与spring框架集成,如:(IoC,AOP)
- 支持Restful风格
- 进行简洁的web层开发(与serverlet相比)
- 支持灵活的URL到页面控制层的映射
- 非常容易与其他试图技术集成,如:velocity,FreeMarker等等
- 因为模型数据不存在特定的api里,而是放在一个Model里(MAP数据结构实现,因此很容易被其他框架使用)
- 非常灵活的数据验证,格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API
- 更加简单,强大的异常处理
- 对静态资源的支持
- 支持灵活的本地化,主题等解析
-
springMVC怎么玩
- 将web层进行职责解耦
- 主要常用插件
- DispatcherServlet:前端控制器
- Controller:处理器/页面控制器,做的是mvc中的c的事情,但控制逻辑转移到前端控制器了,用于对请求进行处理
- HandlerMapping:请求映射到处理器,找谁来处理,如果处理成功返回一个HandlerExcutionChain对象(包含一个Handler处理器(页面控制器)对象,多个HandlerInterceptor拦截器对象)
- View Resolver:视图解析器。,找谁来处理返回的页面,把逻辑视图解析为具体的View,进行这种策略模式,很容易更换其他视图技术
- Localresolver:本地化,国际化
- MultipartResolver:文件上传解析器
- 快速入门--helloworld
- 新建文本工程,导入jar包(从※路径下载的文件寻找)
- spring-aop
- spring-context
- spring-core
- spring-expression
- spring-beans
- commons-logging
- spring-web
- spring-webmvc
- 在web.xml中配置springMVC的核心控制器DispatcherServlet
- 作用:加载springMVC的配置文件,在下方的配置方式下,DispatcherServlet自动加载配置文件,此时的配置文件有默认的位置和名称
- 默认位置为WEB-INF,默认名称为<servlet-name>-servlet.xml,例如如下配置方式的文件名:dispatcher-servlet.xml
-
1 <servlet> 2 <servlet-name>dispatcher</servlet-name> 3 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 4 <load-on-startup>1</load-on-startup> 5 </servlet> 6 <servlet-mapping> 7 <servlet-name>dispatcher</servlet-name> 8 <url-pattern>/</url-pattern> 9 </servlet-mapping>
- 当加载了配置文件,springMVC就会根据提供扫描组件找到控制层
- 创建一个POJO,在此类上加上@Controller注解,springMVC就会将此类作为控制层加载,让其处理请求响应
- 在控制层中,需要在方法上设置@RequestMapping(value="xxx"),springMVC就是通过此注解将请求路径与控制层中的方法进行匹配,此时请求路径为 localhost:8080/xxx
- 如果请求的方法返回一个字符串,即视图名称,最终会通过配置文件中配置的视图解析器实现页面跳转。方式:prefix+视图名称+suffix,此为最终跳转的页面路径
- 新建文本工程,导入jar包(从※路径下载的文件寻找)
-
用IDEA搭建最简单的SpringMVC环境--永远的helloworld
1.打开Idea,选择create new project,勾选如下选项, 之后点击next,进入下一步

2.填写项目名称和项目存放的位置,之后点击finish。下载好之后,就得到了初始的一个springMVC项目结构,如下:


3.在src下添加一个controller文件夹,用来存放我们的控制器相关文件

4.对配置文件进行修改
applicationContext.xml
这个文件我们暂不做任何配置
web.xml(我们只将<url-pattern>*form</url-pattern>改为<url-pattern>/</url-pattern>)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" 5 version="4.0"> 6 <context-param> 7 <param-name>contextConfigLocation</param-name> 8 <param-value>/WEB-INF/applicationContext.xml</param-value> 9 </context-param> 10 <listener> 11 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 12 </listener> 13 <servlet> 14 <servlet-name>dispatcher</servlet-name> 15 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 16 <load-on-startup>1</load-on-startup> 17 </servlet> 18 <servlet-mapping> 19 <servlet-name>dispatcher</servlet-name> 20 <url-pattern>/</url-pattern> 21 </servlet-mapping> 22 </web-app>
dispatcher-servlet.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xsi:schemaLocation=" 6 http://www.springframework.org/schema/beans 7 http://www.springframework.org/schema/beans/spring-beans.xsd 8 http://www.springframework.org/schema/context 9 http://www.springframework.org/schema/context/spring-context.xsd"> 10 <!--扫描组件 ,将加上@Controller注解的类作为springMVC的控制层--> 11 <context:component-scan base-package="controller"/> 12 <!--配置视图解析器,作用:将prefix+视图名称+suffix 确定最终要跳转的页面--> 13 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 14 <!-- 将jsp页面放置在web-info中可以保护这些页面不被浏览器直接访问 --> 15 <property name="prefix" value="/WEB-INF/view/"/> 16 <property name="suffix" value=".jsp"/> 17 </bean> 18 </beans>
5.在WEB-INF目录下创建view文件夹,并新建一个success.jsp文件

6.配置Tomcat


下面两个错误同样的解决办法
①控制台:启动项目时部署报错 Artifact xxx:war exploded: Error during artifact deployment.(翻译过来就是部署的时候报错了)
②页面:启动项目报错,原因是项目没有部署好(本人的是这样的)

解决方法:

1.先把原来的Artifact删掉

2.重新添加




再次启动项目,就成功了

报下面的错误及解决办法:

这个错误是因为少了Jstl.jar 和 standard.jar 两个Jar包,我们下载这两个Jar包,并且将他们放到WEB-INF下的lib文件夹中,并且添加进项目依赖。

浙公网安备 33010602011771号