1.介绍
1. SpringMVC配置(掌握)
2. 全注解配置方式(掌握)
3. 获取参数、传递属性、上传、下载、操作json;(掌握)
2.SpringMVC
2.1.简介
SpringMVC是一个基于MVC模式的WEB框架,它解决WEB开发中常见的问题(参数接收、文件上传/下载、表单验证、国际化、等等),使用非常简单,SpringMVC作为Spring中的一个模块,可以与Spring无缝集成。
2.2.为什么要学习SpringMVC
Spring是一个轻量级的Java 开发框架,为了解决企业应用开发的复杂性而创建。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。SpringMvc以Spring框架为核心,为应用程序中的Web层(表现层)提出的一套优秀的解决方案。
目前很多公司都使用Spring MVC,90%的招聘单位要求熟悉使用Spring MVC。
3.Hello World入门
3.1.入门理论
SpringMVC以Spring为核心,而Spring最核心的模块是IOC(控制反转)/DI(依赖注入)容器
所以使用SpringMVC必须先保证Spring IOC容器初始化,简单的说就是让你的项目拥有Spring的运行环境.
使用框架的第一步需要框架的官方网站下载框架相关的文件,
而SpringMVC无需单独下载,因为SpringMVC是作为Spring中的一个模块存在,所以我们只需要下载Spring即可。
查看:spring/libs/目录
spring-webmvc-4.1.2.RELEASE.jar SpringMVC的jar文件。
spring-web-4.1.2.RELEASE.jar Spring对Web项目运行的支持。
3.2.核心控制器(前端控制器)
顾名思义核心控制器用于Web层核心功能的处理以及在所有控制器执行之前,所有的WebMvc框架都采用了这种方式,在Struts2中我们使用的是StrutsPrepareAndExecuteFilter作为核心控制器,在SpringMVC中使用的是DispatcherServlet为核心控制器. DispatcherServlet核心控制器会拦截匹配的请求,把拦截下来的请求,依据相应的规则分发到目标Controller来处理。
3.3.加入相关Spring的jar包
不要使用spring.3的jar和4.x的jar文件混用,危险的很
com.springsource.org.apache.commons.logging-1.1.1.jar
spring-beans-4.1.2.RELEASE.jar
spring-context-4.1.2.RELEASE.jar
spring-core-4.1.2.RELEASE.jar
spring-expression-4.1.2.RELEASE.jar
spring-aop-4.1.2.RELEASE.jar
spring orm、jdbc、tx相关jar根据项目使用自行添加;
加入相关SpringMVC相关jar包。
spring-web-4.1.2.RELEASE.jar spring 对web项目的支持。
spring-webmvc-4.1.2.RELEASE.jar SpringMVC核心包。
3.4.配置核心控制器
Webmvc框架的心脏就是核心控制器,负责所有请求的公共功能,然后在分发给具体的控制器(我们编写的控制器),完成业务逻辑,响应视图。
3.4.1.Jar文件找
3.4.2.web.xml
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!-- 请求的入口,以.do结尾的请求都会经过DispatcherServlet处理 -->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
3.5.新建Controller控制器
SpringMVC中的控制器与以前我们以前学习的action、servlet作用一样,处理用户请求,调用业务逻辑,返回结果视图。
SpringMVC中的控制器有一定规范,要么实现接口,要么使用POJO对象与注解配合使用。
规范要求 说明
实现Controller接口或子接口。
注意:子接口很多已经过时了。 核心方法为handleRequest(req,resp),处理用户请求
普通的类(常用的哦) 使用一个普通的类作为我们的控制器,每一个方法就是一个处理器,这种方式需要配合注解标签才能使用。
public class Controller1 implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
return null;
}
}
3.6.添加处理请求代码
handleRequest方法的两个参数与我们以前的servlet中service方法一样,request和response对象,我们可以使用这个两个对象完成一次请求的所有工作,比如你可以使用request接受参数,或者使用response重定向等等,注意方法除了返回值以外还有一个返回值ModelAndView。
ModelAndView是SpringMVC控制器中特有一个对象,描述一次请求响应的 数据(Model)和 视图(View)。
3.7.视图页面:
3.8.配置我们的控制器
SpringMVC是基于Spring,Spring中的核心就是Ioc容器,而Ioc容器中最重要的成员就是,SpringMVC中的控制器也是一个一个。
部署项目,启动Tomcat报错
错误信息如下:
没找到/WEB-INF/springmvc-servlet.xml文件,因为在启动Tomcat服务器的时候会初始化SpringMVC中的DispatcherServlet,而这个DispatcherServlet会根据配置文件初始化Spring容器,默认配置文件路径为:/WEB-INF/<servlet-name>-servlet.xml
解决问题方式:
1.可以把我们的配置文件更名为springmvc-servlet.xml,然后拷贝到WEB-INF中。
2.一般spring的配置文件都在放在src中或者resource文件中,我们可以通过以下配置告诉SpringMVC我们的配置文件路径。
访问
http://localhost/helloworld
注意:如果你的配置为*.do,并且,访问路径为: http://localhost/helloworld.do