1.Spring mvc概述
spring mvc是spring提供给web应用框架设计,实际上MVC框架是一个设计理念。它不仅存在java世界中而且广泛在于各类语言和开发中,包括web的前端应用。对于spring mvc而言,他的流程和各个组件的应用和改造是springmvc的根本。
1.2 springmvc都做了什么
- Controller为中心完成对系统流程的控制管理
- 从请求中搜集数据
- 对传入的参数进行验证
- 将结果返回给视图
- 针对不同的视图提供不同的解决方案
- 针对jsp视图技术提供标签库
- 拦截器
- 上传文件
1.3 spring-mvc结构
1 DispatcherServlet:中央控制器,把请求给转发到具体的控制类
2 Controller:具体处理请求的控制器(配置文件方式需要配置,注解方式不用配置)
3 handlerMapping:映射处理器,负责映射中央处理器转发给controller时的映射策略
4 ModelAndView:服务层返回的数据和视图层的封装类(无论是配置文件还是注解都不需要配置)
5 ViewResolver & View:视图解析器,解析具体的视图
6 Interceptors :拦截器,负责拦截我们定义的请求然后做处理工作(无论是配置文件方式还是注解都需要先创建再配置)
红色的是需要自己创建,黑色的需要配置。
1.4 mvc模式
1.5spring-mvc流程
2.spring-mvc的第一个例子
1. 创建一个web工程
2. 导入依赖包
3.创建springmvc的配置文件 (web.xml)
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>springMvcDome</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!-- 配置springmvc中央控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
4.配置spring mvc核心配置文件
文件的命名规则:中央控制器(servlet的名称)的名称+“-servlet.xml”
默认位置:WEB-INF下
配置:controller和视图解析器
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" xmlns:mvc="http://www.springframework.org/schema/mvc" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans 7 http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 8 http://www.springframework.org/schema/mvc 9 http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd 10 http://www.springframework.org/schema/context 11 http://www.springframework.org/schema/context/spring-context-4.3.xsd 12 http://www.springframework.org/schema/aop 13 http://www.springframework.org/schema/aop/spring-aop-4.3.xsd 14 http://www.springframework.org/schema/tx 15 http://www.springframework.org/schema/tx/spring-tx-4.3.xsd "> 16 17 <!-- 配置controller 默认使用BeanNameurlHandelMapping 根据hello.do来找到controller--> 18 <bean id="myController" name="/hello.do" class="com.springmvc.mycontroller.MyController"></bean> 19 <!-- 配置视图解析器 --> 20 <bean 21 class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 22 <!-- 配置前缀 --> 23 <property name="prefix" value="/WEB-INF/jsp/"></property> 24 <!-- 配置后缀 --> 25 <property name="suffix" value=".jsp"></property> 26 </bean> 27 </beans>
5.创建controller
package com.springmvc.mycontroller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; /** * spring mvc第一个例子 * @author Administrator * */ public class MyController extends AbstractController{ @Override protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { System.out.println("hello springmvc"); return new ModelAndView("index"); } }
6.测试成功