springMVC学习总结(一)快速入门
一、初步认识
- springMVC执行流程
-
<img src="http://images2017.cnblogs.com/blog/1135258/201712/1135258-20171222174147459-726790122.png" width="100%">
-
- 主要组件
- DispatcherServlet(中央控制器)
- 配置在web.xml中的前端控制器,客户端请求的入口,调用HandlerMapping获取处理器
- HandlerMapping(处理器映射器)
- 负责调用 HandlerAdapter获取处理器
- HandlerAdapter(处理器适配器)
- 调用处理器
- Controller(处理器)
- *执行代码逻辑,结束之后返回到 DispatcherServlet 然后由由DispatcherServlet调用调用ViewResolver
- ViewResolver(视图解析器)
- 配置在springmvc.xml中的视图解析器,返回视图
- DispatcherServlet(中央控制器)
二、开始使用
-
准备工作
- 导包
-
普通web项目
-
maven项目
要导入的依赖包括:springmvc相关、jsp相关<properties> <spring.version>4.1.3.RELEASE</spring.version> </properties> <!-- springmvc相关 --> <dependencies> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <!-- jsp相关 --> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>${servlet-api.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> <version>${jsp-api.version}</version> <scope>provided</scope> </dependency> </dependencies>
-
- xml文件的配置
-
前端控制器(web.xml)
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <!--表示servlet随服务启动--> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping>
- load-on-startup:表示servlet随服务启动;
*.action 这里是客户端访问请求的入口- contextConfigLocation:加载springmvc配置文件
-
核心配置文件(springmvc.xml)
下面以注解开发为例进行示例:-
开启注解扫描
<!--开启组件扫描,扫描位置根据实际项目进行配置--> <context:component-scan base-package="com.springMVC.controller" />
-
配置注解映射器
<!-- 注解适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
-
配置注解适配器
<!-- 注解适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
-
配置视图解析器
<!-- ViewResolver --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
- 该视图解析器最终返回的视图地址是 “WEB-INF/jsp/hello.jsp”
- viewClass:该视图解析器需要jstl的相关jar包 来解析jsp页面的jstl标签
-
-
- 导包
-
代码编写(即Controller)
-
后台代码表现层写法:
@Controller
public class Demo01Controller {@RequestMapping(value = "/test.action") public String test(){ System.out.println("访问成功!!!!"); return "hello"; }
-
视图层代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page isELIgnored="false"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Hello World</title> </head> <body> controller 传递过来的值:${message} </body> </html>
${message}:表示显示由HelloWorldController处理器传过来的模型数据。
页面的访问:http://localhost:8080/hello.action 访问路径服务器设置不同有所区别
-