文章目录:
1.SpringMVC框架的基本说明
2.第一个注解的SpringMVC程序
2.1 IDEA中使用maven创建一个web项目
2.2 在pom.xml中加入相关依赖
2.3 在web.xml中声明DispatcherServlet对象
2.4 创建一个发起请求的jsp页面(index.jsp)
2.5 创建一个普通的类,作为控制器使用,代替之前的servlet
2.6 创建显示处理结果的jsp页面(show.jsp)
2.7 创建springmvc的配置文件
2.8 给web项目配置并启动tomcat,测试!!!
3.项目的整体结构和步骤总结
3.1 整体结构
3.2 步骤总结
4.使用SpringMVC框架处理web请求的顺序
1.SpringMVC框架的基本说明
SpringMVC是基于Spring的,是Spring中的一个模块,专门用来做web开发使用的。
SpringMVC 也叫 Spring web mvc。是 Spring 框架的一部分,是在Spring3.0 后发布的。基于 MVC 架构,功能分工明确、解耦合。
SpringMVC也是一个容器,使用IoC核心技术,管理界面层中的控制器对象。SpringMVC的底层就是servlet,以servlet为核心,接收请求、处理请求,显示处理结果给用户。在此之前这个功能是由Servlet来实现的,现在使用SpringMVC来代替Servlet行驶控制器的角色和功能。
其核心Servlet是:DispatcherServlet
三层架构:用户发起请求--------SpringMVC--------Spring--------MyBatis--------MySQL
2.第一个注解的SpringMVC程序
2.1 IDEA中使用maven创建一个web项目
2.2 在pom.xml中加入相关依赖
<!-- springmvc依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!-- servlet依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- jsp依赖 -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
</dependency>
2.3 在web.xml中声明DispatcherServlet对象
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 声明springmvc的核心对象 -->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 自定义配置文件的位置 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- tomcat服务器创建对象的顺序,数值(大于等于0)越小,创建对象的时间就越早 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<!--
把一些请求交给指定的servlet处理
1.使用扩展名方式,格式:*.xxx, xxx是自定义的扩展名
例如:*.do *.action *.mvc , 不能使用 *.jsp!!!
2.使用斜杠 "/"
-->
<!-- 意思是将 *.do 的请求交给 DispatcherServlet 处理 -->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
2.4 创建一个发起请求的jsp页面(index.jsp)
<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head>
<title>第一个springmvc</title>
</head>
<body>
<a href="some.do">发起some.do的请求</a>
</body>
</html>
2.5 创建一个普通的类,作为控制器使用,代替之前的servlet
package com.songzihao.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/**
* @Controller: 创建控制器对象
* 控制器: 叫作后端控制器,自定义的类处理请求的
* 位置: 在类的上面,表示创建此类的对象,对象放在springmvc容器中
*/
@Controller
public class MyController {
/**
* 定义方法,处理请求.相当于之前servlet中的doGet()
* springmvc框架,使用控制器类中的方法,处理请求
* 1.方法的形参: 表示请求中的参数
* 2.方法的返回值: 表示本次请求的处理结果
*
* @RequestMapping: 请求映射
* 属性: value,请求中的uri地址,唯一值,以"/"开头
* 位置: 1) 在方法的上面(必须) 2) 在类定义的上面(可选)
* 作用: 把指定的请求交给指定的方法处理
*/
@RequestMapping(value = "/some.do")
public ModelAndView doSome() {
//使用这个方法处理请求,能处理请求的方法叫作控制器方法
ModelAndView mv=new ModelAndView();
//添加数据
mv.addObject("msg","处理了some.do的请求");
mv.addObject("fun","执行了doSome方法");
//指定视图
mv.setViewName("/WEB-INF/view/show.jsp");
//返回结果
return mv;
}
/**
* 当框架调用完doSome()方法后,得到返回值ModelAndView对象mv,处理mv对象里的数据model和视图view
* mv.addObject("msg","处理了some.do的请求"); 相当于 对数据执行 request.setAttribute("msg","处理了some.do的请求");
* mv.setViewName("/show.jsp"); 相当于 对视图执行 request.getRequestDispatcher("/show.jsp").forward(request,response);
*/
}
2.6 创建显示处理结果的jsp页面(show.jsp)
<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head>
<title>show</title>
</head>
<body>
/WEB-INF/view/show.jsp,显示request作用域中的数据<br/>
<h3>msg数据:<%=request.getAttribute("msg")%></h3>
<h3>fun数据:${fun}</h3>
</body>
</html>
2.7 创建springmvc的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!-- springmvc的配置文件 -->
<!-- 声明组件扫描器 -->
<context:component-scan base-package="com.songzihao.controller" />
</beans>
2.8 给web项目配置并启动tomcat,测试!!!
3.项目的整体结构和步骤总结
3.1 整体结构
3.2 步骤总结
springmvc接收请求,显示请求的处理结果 servlet的实现方式:jsp发起请求-----servlet接收请求------jsp显示处理结果 步骤: 1. 新建web项目 2. 加入web相关的依赖(spring-webmvc依赖、servlet依赖、jsp依赖) 3. 声明springmvc核心对象DispatcherServlet 1) DispatcherServlet是一个Servlet对象 2) DispatcherServlet叫作前端控制器(front controller) 3) DispatcherServlet的作用:在servlet的init()方法中,创建springmvc容器对象;作为servlet接收请求 4.创建一个jsp(index.jsp),发起请求 5.创建一个普通的类,作为控制器使用,代替之前的servlet 1) 在类的上面加入注解 @Controller 2) 在类中定义方法,方法的上面加入注解 @RequestMapping。表示此方法是处理请求的,相当于servlet中的doGet、doPost 6.创建显示处理结果的jsp(show.jsp) 7.创建springmvc的配置文件 1) 声明组件扫描器(面对注解) 2) 声明视图解析器(可选) 8.使用逻辑视图名称(对应步骤中的7.2)
4.使用SpringMVC框架处理web请求的顺序