1.SpringMVC的引言
为了使Spring可插入的MVC架构,SpringFrameWork在Spring基础上开发SpringMVC框架,从而在使用Spring进行WEB开发时可以选择使用Spring的SpringMVC框架作为web开发的控制器框架。
2.为什么是SpringMVC
可以和spring框架无缝整合
运行效率高于struts2框架
注解式开发更高效
3.SpringMVC的特点
SpringMVC 轻量级,典型MVC,控制器框架,在整个MVC架构中充当控制器框架,相对于之前学习的struts2框架,SpringMVC运行更快,其注解式开发更高效灵活。
4.SpringMVC与Struts2运行流程对比
5.第一个环境搭建
1.引入相关依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
<!--springmvc核心依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
2.编写springmvc配置文件
<!--开启注解扫描-->
<context:component-scan base-package="com"/>
<!--注册处理器映射器-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!--注册处理器适配器-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
<!--注册视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
3.配置springmvc的核心Servlet
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--指定springmvc配置文件位置-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--拦截客户端所有请求,将所有请求交给springMVC处理-->
<url-pattern>/</url-pattern>
</servlet-mapping>
注意: 这里还要加载spring配置,通过在servlet写initparam标签,和contextConfigLocation属性,value用来加载springmvc配置文件
注意:<url-pattern>/</url-pattern> 这里千万不能写成 /* 否则运行会报错
4.创建控制器
@Controller
@RequestMapping("/hello")
public class HelloController {
@RequestMapping("/hello")
public String hello(){
System.out.println("hello springmvc");
return "index";//解析结果:前缀+返回值+后缀
}
}
@Controller
: 该注解用来类上标识这是一个控制器组件类并创建这个类实例
@RequestMapping
:
修饰范围: 用在方法或者类上
注解作用: 用来指定类以及类中方法的请求路径
注解详解:
用在类上相当于struts2中namespace在访问类中方法必须先加入这个路径
用在方法上相当于action标签的name属性用来表示访问这个方法的路径
5.部署项目,启动项目测试
访问路径: http://localhost:8989/项目名/类上@requestMapping的路径/类中访问方法上@requestMapping的路径