栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Day06-SpringMVC入门

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Day06-SpringMVC入门

Day06-SpringMVC入门

文章目录

Day06-SpringMVC入门

1.Spring集成web环境

1.1 ApplicationContext应用上下文获取方式1.2 Spring提供获取应用上下文的工具1.3 导入Spring集成web的坐标1.4 配置ContextLoaderListener监听器1.5 通过工具获得应用上下文对象1.6 知识要点 2.SpringMVC简介

2.1 SpringMVC概述2.2 SpringMVC快速入门2.3 SpringMVC流程图示2.4 知识要点 3.SpringMVC组件分析

3.1 SpringMVC的执行流程3.2 SpringMVC组件解析3.3 SpringMVC注解解析

1.MVC命名空间引入2.组件扫描 3.4 SpringMVC的xml配置解析

视图解析器 3.5 知识要点

SpringMVC的相关组件SpringMVC的注解和配置

1.Spring集成web环境 1.1 ApplicationContext应用上下文获取方式

应用上下文对象是通过new ClassPathXmlApplicationContext(”Spring配置文件“)方式获取,但是每次从容器中获得Bean时都要编写new ClassPathXmlApplicationContext(”Spring配置文件“),这样的弊端是配置文件加载多次,应用上下文对象创建多次。

在Web项目中,可以使用ServletContextListener监听Web应用的启动,我们可以在Web应用启动时,就加载Spring的配置文件,创建应用上下文对象ApplicationContext,在将其存储到最大的域servletContext域中,这样就可以在任意位置从域中获得应用上下文ApplicationContext对象了。

1.2 Spring提供获取应用上下文的工具

上面的分析不用手动实现,Spring提供了一个监听器contextLoaderListener就是对上述功能的封装,该监听器内部加载Spring配置文件,创建应用上下文对象,并存储到ServletContext域中,提供了一个客户端工具WebApplicationContextUtils供使用者获得应用上下文对象。

所以我们需要做的只有两件事:

    在web.xml中配置ContexLoaderListener监听器(导入spring-web坐标)使用WebApplicationContextUtils获得应用上下文对象ApplicationContext
1.3 导入Spring集成web的坐标

    org.springframework
    spring-web
    5.0.5.release

1.4 配置ContextLoaderListener监听器
  
    contextConfigLocation
    classpath:applicationContext.xml
  

  
  
    org.springframework.web.context.ContextLoaderListener
  
1.5 通过工具获得应用上下文对象
ApplicationContext app = new WebApplicationContextUtils.getWebApplicationContext(ServletContext);
Object obj = applicationContext.getBean("id");
1.6 知识要点

Spring集成web环境步骤

    配置ContextLoaderListener监听器使用WebApplicationContextUtils获得应用上下文

2.SpringMVC简介 2.1 SpringMVC概述

SpringMVC是一种基于Java实现的MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringframeWork的后续产品,已经融合在Spring Web Flow中。

SpringMVC已经成为目前最主流的MVC框架之一,并且随着Spring3.0的发布,全面超越Struts2,成为最优的MVC框架。它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无需实现任何接口。同时它还支持Restful编程风格的请求。

2.2 SpringMVC快速入门

需求:客户端发起请求,服务器端接收请求,执行逻辑并进行视图跳转。

开发步骤:

    导入SpringMVC相关坐标配置SpringMVC核心控制器DispathcerServlet创建Controller类和视图页面使用注解配置Controller类中业务方法的映射地址配置SpringMVC核心文件spring-mvc.xml客户端发起请求测试

1.导入Spring和SpringMVC的坐标以及Servlet和JSP的坐标(因为接收请求和响应视图)

        
        
            org.springframework
            spring-context
            5.0.5.RELEASE
        
        
        
            org.springframework
            spring-webmvc
            5.0.5.RELEASE
        
  
    
        
            javax.servlet
            javax.servlet-api
            3.0.1
            provided
        
        
            
            javax.servlet.jsp
            javax.servlet.jsp-api
            2.2.1
            provided
        

2.在web.xml配置SpringMVC的核心控制器

 
  
    DispatcherServlet
    org.springframework.web.servlet.DispatcherServlet
    
      contextConfigLocation
      classpath:spring-mvc.xml
    
    1
  
  
    DispatcherServlet
    /
  

3.创建Controller和业务方法

public class QuickController{
	public String quickMethod(){
		System.out.println("quickMethos running......");
        retrun null;
	}
}

创建视图页面index.jsp


    
        

Hello SpringMVC!

4.配置注解

@Controller
public class QuickController{
	@RequestMapping("/quick")
	public String quickMethod(){
		System.out.println("quickMethos running......");
		return "index"
	}
}

5.创建spring-mvc.xml


    
    
    

6.访问测试地址

http://localhost:8080/itheima_springmvc/quick

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BhIfX3yp-1648009602942)(G:Java学习笔记imageSnipaste_2022-03-23_11-02-34.png)]

2.3 SpringMVC流程图示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2LGa2okx-1648009602944)(G:Java学习笔记imageSnipaste_2022-03-23_11-06-11.png)]

2.4 知识要点
    导入SpringMVC相关坐标配置SpringMVC核心控制器DispathcerServlet创建Controller类和视图页面使用注解配置Controller类中业务方法的映射地址配置SpringMVC核心文件spring-mvc.xml客户端发起请求测试

3.SpringMVC组件分析 3.1 SpringMVC的执行流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OQ6GVfiV-1648009602945)(G:Java学习笔记imagespringMVC流程分析.png)]

    用户发送请求至前端控制器DispatcherServlet。DispatcherServlet收到请求调用HandlerMapping处理器映射器。处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet.DispatcherServlet调用HandlerAdapter处理器适配器HandlerAdapter经过适配调用具体的处理器(controller,也叫后端控制器)。Controller执行完成返回ModelAndView。HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。DispatcherServlet将ModelAndView传给ViewReslover视图解析器。ViewResLover解析后返回具体View。DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。DispatcherServlet响应用户
3.2 SpringMVC组件解析

1.前端控制器:DispatcherServlet

​ 用户请求到达前端控制器,它就相当于MVC模式中的C,DispatcherServlet是整个流程控制的中心,由它调用其他组件处理用户的请求,Dispatcher的存在降低了组件之间的耦合性

2.处理器映射器:HandlerAdapter

​ HandlerAdapter负责根据用户请求找到Handler即处理器,SpringMVC提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方法,注解方式等。

3.处理器适配器:HandlerAdapter

​ 通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行。

4.处理器:Handler

​ 它就是我们开发中要编写的具体业务控制器。由DispatcherServlet把用户请求转发到Handler。由Handler对具体的用户请求进行处理。

5.视图解析器:View Resolver

​ View Resolver 负责将处理结果生成View图,View Resolver首先根据逻辑视图名解析成物理视图名,即具体的页面地址,在生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户

6.视图:View

​ Springmvc框架提供了很多的View视图类型的支持,包括:jstView、freemakerView 、pdfView等。最常用的视图就是Jsp,一般情况下需要通过页面标签或页面模板技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

3.3 SpringMVC注解解析

@RequestMapping

作用:用于建立请求URL和处理请求方法之间的对应关系

位置:

类上,请求URL的第一级访问目录。此处不写的话,就相当于应用的根目录方法上,请求URL的第二级访问目录,与类上的使用@ReqqestMapping标注的一级目录一起组成访问虚拟路径

属性:

value:用于指定请求的URL。它和path的属性一样method:用于指定请求的方式params:用于指定限制请求参数的条件,它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样

例如:

params={“accountName”},表示请求参数必须有accountNameparams={“moeny!100”},表示请求参数中的money不能是100 1.MVC命名空间引入

命名空间:

        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"

约束地址:

        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd	

2.组件扫描

SpringMVC基于Spring容器,所以在进行SpringMVC操作时,需要将controller存储到Spring容器中,如果使用@Controller注解标注的话,就需要使用****进行组件扫描

3.4 SpringMVC的xml配置解析 视图解析器

SpringMVC有默认组件配置,默认组件都是DispatcherServlet.properties配置文件中配置的,该配置文件地址org/springframework/web/servlet/DispatcherServlet.properties,该文件中配置默认的视图解析器,如下:

org.springframework.web.servlet.ViewResolver=org.springframework.web.servlet.view.InternalResourceViewResolver

翻看该解析器源码,可以看到该解析器的默认设置,如下:

REDIRECT_URL_PREFIX = "redirect:"	--重定向前缀
FORWARD_URL_PREFIX = "forward:"	--转发前缀(默认值)
prefix = "";	--视图名称前缀
suffix = "";	--视图名称后缀

我们可以通过属性注入的方式修改视图的前后缀


    
    

3.5 知识要点 SpringMVC的相关组件

前端控制器:DispatcherServlet处理器映射器:HandlerMapping处理器适配器:HandlerAdapter处理器:Handler视图解析器:View Resolver视图:View SpringMVC的注解和配置

请求映射注解:@RequestMapping

视图解析器配置:

REDIRECT_URL_PREFIX = "redirect:"	--重定向前缀
FORWARD_URL_PREFIX = "forward:"	--转发前缀(默认值)
prefix = "";	--视图名称前缀
suffix = "";	--视图名称后缀
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/778776.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号