【SpringMVC】零基础快速学习与搭建SpringMVC框架(全面剖析)

笔记大纲

  • SpringMVC简述
  • SpringMVC基本作用
  • HelloWorld案例(7大步骤)
  • HelloWorld案例深度解析
    • 运行流程图解
    • 运行原理图解
    • 运行过程详述(必须掌握)

1.SpringMVC简述

  Spring3.0后超越了Struts2,Spring为展现层提供了一种基于MVC设计、轻量级Web层应用框架,是Spring框架的一个后续产品(偏前端非基于业务逻辑层),是目前企业主流的MVC框架之一;

  SpringMVC通过注解,让POJO(简单的Java对象即普通的JavaBean)成为处理请求的控制器,无序实现任何接口

  SpringMVC支持Restful风格的URL请求(POST、DELETE、PUT、GET);

  SpringMVC采用松散耦合可插拔组件结果,比对其它MVC框架,更具有扩展性和灵活性。

2.SpringMVC基本作用

  ①与Spring框架无缝集成,如:(IOC,AOP);

  ② 支持Restful风格;

  ③ 进行更简洁的Web层开发;

  ④支持灵活的URL到页面控制器的映射;

  ⑤非常容易与其他视图技术集成,如:Velocity、FreeMarker等等;

  ⑥因为模型数据不存放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用);

  ⑦非常灵活的数据验证、格式化和数据绑定机制、能使用任何对象进行数据绑定,不必实现特定框架的API;

  ⑧更加简单、强大的异常处理;

  ⑨对静态资源的支持;

  ⑩支持灵活的本地化、主题等解析;

3.HelloWorld案例

3.1新建Web工程,导入JAR包

【SpringMVC】零基础快速学习与搭建SpringMVC框架(全面剖析)_第1张图片

8个JAR包:

【SpringMVC】零基础快速学习与搭建SpringMVC框架(全面剖析)_第2张图片

3.2.在web.xml中配置DispatchServlet

<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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>SpringmvcDemo01display-name>
    
	
	<servlet>
		<servlet-name>dispatcherServletservlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
		<init-param>
		
			<param-name>contextConfigLocationparam-name>
			<param-value>classpath:spring-mvc.xmlparam-value>
		init-param>
		
		<load-on-startup>1load-on-startup>
	servlet>
	
	<servlet-mapping>
		<servlet-name>dispatcherServletservlet-name>
		
		<url-pattern>/url-pattern>
	servlet-mapping>
	
web-app>

快捷配置快捷键:Alt+"/"!!!

【SpringMVC】零基础快速学习与搭建SpringMVC框架(全面剖析)_第3张图片

3.3.创建配置springmvc-xml文件
<?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 http://www.springframework.org/schema/context/spring-context-4.0.xsd">

	<!--1】组件扫描 -->
	<context:component-scan base-package="com.codinglin.springmvc.helloworld"></context:component-scan>
	<!--2】视图解析器 
	 作用:将prefix +处理器返回的逻辑名称+suffix 拼接成物理视图,就会做转发操作
	-->
	<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/views/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
</beans>

3.4.在WebContext下新建jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试入口页面title>
head>    
<body>
     
     
	<a href="https://coding0110lin.blog.csdn.net/">测试1--绝对路径a><br>
	
	<a href="blog.html">测试2--相对路径a><br>
	
	
	<a href="/blog.html">测试3--相对路径a><br>
	
	
	
	<a href="${pageContext.request.contextPath}/blog.html">测试4--相对路径a><br>
    
	
	
<a href="${pageContext.request.contextPath}/codinglin/hello">SpringMVC--helloWorld测试2a>
body>
html>

SpringmvcDemo01我们称之为为当前项目,官方说法是“上下文根”!如果我们下修改项目名,即重命名,选中项目–>Properties:
【SpringMVC】零基础快速学习与搭建SpringMVC框架(全面剖析)_第4张图片

3.5.新建处理请求的处理器(普通JavaBean)
package com.codinglin.springmvc.helloworld;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/*这个处理器,不依赖某一个类和某一个接口
 * 
 * 1.交给容器管理
 * 2.标识为Controller
 * 注意:在SpringMVC上,处理器必须加上Controller注解
 * */

@Controller
@RequestMapping("/codinglin")
public class HelloWorldController {
     
	//将客户端的请求交给该方法进行处理
	//   "/"表示相对的项目  http://localhost:8080/SpringmvcDemo01/hello
    //请求的映射路径名称和处理请求的方法名称最好一致!
	@RequestMapping("/hello")
	public String hello() {
     
		//返回的是要跳转的页面的【逻辑视图名称】
		//通过视图解析器
		return "success";

	}
}
3.6.编写视图,在/WEB-INF/下创建views目录下创建success.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title heretitle>
head>
<body>
	<h3>Success Page!h3>
body>
html>
3.7.部署测试,页面效果:

【SpringMVC】零基础快速学习与搭建SpringMVC框架(全面剖析)_第5张图片

总结:

开发HelloWorld案例的步骤如下:

(1)创建创建DynamicWebProject<动态工程>

(2)导包(8个)
   aop,bean,context,core,expression,common-logging,web,web-mvc

(3)配置web.xml文件
   ① 配置SpringMVC的中央调度器
   ② 指定SpringMVC配置文件(spring-mvc.xml)的路径
   ③ 在web服务器启动阶段实例化servlet

(4)配置spring-mvc.xml文件
   ①组件扫描
   ②视图解析器(prifixsuffix

(5)编写处理器HelloWordController处理器客户端请求
   ①@Controller
   ②@RequestMapping
   ③返回跳转的页面的逻辑名称

(6) 编写success.jsp页面在WEB-INF/views目录下

4.HelloWorld案例深度解析

4.1.运行流程图解

【SpringMVC】零基础快速学习与搭建SpringMVC框架(全面剖析)_第6张图片

4.2.运行原理图解

【SpringMVC】零基础快速学习与搭建SpringMVC框架(全面剖析)_第7张图片

4.3.运行过程详述

(1)启动Tomcat服务器

  ①读取web.xml文件;

  ②在web.xml文件配置SpringMVC的中央调度器,配置了1

  ③在启动服务器时,DispatcherServlet就会被创建,init()就会执行;

  ④在init()中,中央调度器实例化Spring的容器对象,在实例化容器时,需要读取spring的配置文件,通过指定spring的配置文件路径(类路径);实例化容器对象时,会读取spring-mvc.xml文件。

  ⑤在spring-mvc.xml配置文件中,指定了扫描的组件,会将HelloWorldController扫描到,同时会对方法上的@RequestMapping注解进行解析,就可知道请求与处理器间的一个映射关系;

  控制台信息:

【SpringMVC】零基础快速学习与搭建SpringMVC框架(全面剖析)_第8张图片

(2)在浏览器中地址栏中发送http://localhost:8080/SpringmvcDemo01/index.jsp请求

  ①该请求交个中央处理器处理,在web.xml中,中央处理器匹配了所有的请求,/,中央处理器根据请求和处理器的映射关系,会决定选择将请求交给对应的处理器的方法进行处理;

  ②处理器的方法处理完请求之后,返回一个字符串类型值,这个字符串是跳转视图的逻辑名称;

  ③在spring-mvc.xml配置文件中视图解析器对返回值进行解析:

​      格式:前缀+逻辑名称+后缀=具体的物理视图

  ④解析完毕后,通过请求转发的方法跳转到具体的物理视图success.jsp


 ☝上述分享来源个人总结,如果分享对您有帮忙,希望您积极转载;如果您有不同的见解,希望您积极留言,让我们一起探讨,您的鼓励将是我前进道路上一份助力,非常感谢!我会不定时更新相关技术动态,同时我也会不断完善自己,提升技术,希望与君同成长同进步!

☞本人博客:https://coding0110lin.blog.csdn.net/  欢迎转载,一起技术交流吧!

你可能感兴趣的:(【SpringMVC】零基础快速学习与搭建SpringMVC框架(全面剖析))