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

SpringMVC的一个Hello world程序

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

SpringMVC的一个Hello world程序

文章目录
  •  SpringMVC简介
    •  1、什么是MVC
    •  2、什么是SpringMVC
    •  3、SpringMVC的特点
    •  4、MVC的工作流程
      •  servlet
      •  springmvc 是基于servlet的:
  • SpringMVC 的第一个程序 Hello World
    • 概括
    • 创建Maven工程
      •  创建Maven工程
      •  配置pom.xml
        •  依赖范围:在什么地方可以使用到当前的jar包
      •  变成web工程
    • web.xml
      •  默认方式
      •  拓展方式(推荐)
    • 创建请求控制器 注解
    • 配置SpringMVC的配置文件(扫描组件、视图解析器) 扫描组件
      •  SpringMVC的核心配置文件(可以直接复制剪贴使用)
      •  SpringMVC.xml 配置 处理静态资源
      •  SpringMVC.xml 配置 开启注解驱动
    • 测试访问Hello word
      •  ①实现对首页访问
        •  controller
        •  index.html
      •  ②通过超链接跳转到指定的页面
        •  在主页 index.html 中设置超链接
        •  在 templates 下创建第二个 html 页面名为 target
        •  在请求控制器中创建处理请求的方法
    • 总结

作者: gh-xiaohe
gh-xiaohe的博客
觉得博主文章写的不错的话,希望大家三连(✌关注,✌点赞,✌评论),多多支持一下!!!

 SpringMVC简介  1、什么是MVC

MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分

M:Model,模型层,指工程中的JavaBean,作用是处理数据

JavaBean分为两类:

  • 一类称为实体类Bean:专门存储业务数据的,如 Student、User 等
  • 一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。

V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据

C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器

MVC的工作流程:
用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器

 2、什么是SpringMVC

SpringMVC是Spring的一个后续产品,是Spring的一个子项目

SpringMVC 是 Spring 为表述层开发提供的一整套完备的解决方案。在表述层框架历经 Strust、WebWork、Strust2 等诸多产品的历代更迭之后,目前业界普遍选择了 SpringMVC 作为 Java EE 项目表述层开发的首选方案。

注:三层架构分为表述层(或表示层)、业务逻辑层、数据访问层,表述层表示前台页面和后台servlet

 3、SpringMVC的特点
  • Spring 家族原生产品,与 IOC 容器等基础设施无缝对接
  • 基于原生的Servlet,通过了功能强大的**前端控制器DispatcherServlet**,对请求和响应进行统一处理
  • 表述层各细分领域需要解决的问题全方位覆盖,提供全面解决方案
  • 代码清新简洁,大幅度提升开发效率
  • 内部组件化程度高,可插拔式组件即插即用,想要什么功能配置相应组件即可
  • 性能卓著,尤其适合现代大型、超大型互联网项目要求
 4、MVC的工作流程

①用户用过视图层将请求发送到服务器,在服务器中请求被Controller接收

②Controller(调用相对应servlet处理业务逻辑,service在调用dao层来进行数据的操作 —> 将数据库访问的结果在 返回给 service 在返回到控制层 )调用响应的Model层处理请求,处理完毕将结果返回给Controller,Controller在根据请求处理的结果找到相应的Veiw视图,渲染数据后最终响应给浏览器

 servlet

浏览器中以不同的方式来发送一个请求 ,超链接,form表单,发送一个请求,需要根据请求的地址,来找到相对应的servlet,在servlet中(servlet的声明周期 三个方法) 获取请求参数来调用 service 来处理 业务逻辑 service处理完业务逻辑后,返回一个结果。 比如查询操作 把数据放到指定的域对象中、或者说登录功能,需要把用户信息放到session中 处理数据后,根据结果,根据service处理业务逻辑之后的结果,来选择不同的方式,响应浏览器

 springmvc 是基于servlet的:

在spring mvc,所以封装的,所封装的功能的servlet中,把我们处理请求的过程都进行了封装。

SpringMVC 的第一个程序 Hello World 概括

1.创建Maven工程 --> web工程 —> war包 依赖

2.web.xml
​  ① 默认方式:

​  ② 拓展方式:

​    a.前端控制器

 b.  路径
       
           contextConfigLocation
           classpath:springMVC.xml
       

​    c.将初始化时间提前,不在第一次请求时生效

1

注解 + 扫描的方式
3.创建请求控制器(注解)

4.配置SpringMVC的配置文件(扫描)

5.测试访问 Hello World

​   ①实现对首页的访问
​   ②通过超链接跳转到制定页面

创建Maven工程  创建Maven工程

 配置pom.xml

打包方式 war 包、依赖



    4.0.0

    org.example
    SpringMVC-demo1
    1.0-SNAPSHOT
    war

    
        
        
            org.springframework
            spring-webmvc
            5.3.1
        

        
        
            ch.qos.logback
            logback-classic
            1.2.3
        

        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        

        
        
            org.thymeleaf
            thymeleaf-spring5
            3.0.12.RELEASE
        
    


 依赖范围:在什么地方可以使用到当前的jar包

provided已被提供:当前的服务器中已经提供了servlet jar包

在此时把工程打成war包之后  这个 servlet的 jar包就不会 存在于当前打的 war 之后的 web-info 下的 lib中  这个jar包由服务器提供

 变成web工程


如果:没有小蓝点,后面解决(应该存在小蓝点)

完成

web.xml  默认方式

    此配置作用下,SpringMVC 的配置文件默认位于 WEB-INF 下,默认名称为 《servlet-name>-servlet.xml,例如,以下配置所对应 SpringMVC 的配置文件位于 WEB-INF 下,文件名为 springMVC-servlet.xml



    springMVC
    org.springframework.web.servlet.DispatcherServlet


    springMVC
    
    /

 拓展方式(推荐)

    可通过 init-param 标签设置 SpringMVC 配置文件的位置和名称,通过 load-on-startup 标签设置 SpringMVC 前端控制器 DispatcherServlet 的初始化时间



    springMVC
    org.springframework.web.servlet.DispatcherServlet
    
    
        
        contextConfigLocation
        
        classpath:springMVC.xml
    
    
    1


    springMVC
    
    /

注解 + 扫描组件的方式

创建请求控制器 注解

创建一个控制类 (HelloController) 并声明控制层注解 @Controller

一个类标识为IOC容器的注解有四个

@Compoment --> 普通组件

@Controller --> 控制层组件

@Server --> 业务层组件

@Repository --> 持久层组件

@Controller
public class HelloController {

    

}

由于前端控制器对浏览器发送的请求进行了统一的处理,但是具体的请求有不同的处理过程,因此需要创建处理具体请求的类,即请求控制器

请求控制器中每一个处理请求的方法成为控制器方法

因为 SpringMVC 的控制器由一个 POJO(普通的 Java 类)担任,因此需要通过 @Controller 注解将其标识为一个控制层组件,交给 Spring 的 IoC 容器管理,此时 SpringMVC 才能够识别控制器的存在

配置SpringMVC的配置文件(扫描组件、视图解析器) 扫描组件

xml (可以直接复制剪贴使用)

 SpringMVC的核心配置文件(可以直接复制剪贴使用)
    
    

    
    
        
        
        
        
        
        
            
            
                
                    
                    
                        
                        
                        
                        
                        
                        
                        
                        
                    
                
            
        
    

想要跳转到index.html 是不可以的

why? WEB-INF 下面的内容 通过浏览器是不是直接访问的、通过重定向也是不可以直接访问的 只能通过转发来进行访问

通过视图解析器,来解析我们当前的视图

 SpringMVC.xml 配置 处理静态资源


 SpringMVC.xml 配置 开启注解驱动


    
        
        
            
            
                
                    text/html
                    application/json
                
            
        
    

测试访问Hello word  ①实现对首页访问  controller
@Controller
public class HelloController {

    //  通过@RequestMapping注解,可以通过请求路径匹配要处理的具体的请求
    //  /表示的当前工程的上下文路径
    @RequestMapping("/")
    public String index(){
        return "index";
        //  ->  WEB-INFtemplatesindex.html
        //  ->  去掉前缀WEB-INFtemplates
        //  ->  去掉后缀.html
    }

}
 index.html



    
    首页


首页

 ②通过超链接跳转到指定的页面  在主页 index.html 中设置超链接


  
    
    首页
  
  
    

首页

HelloWorld

 在 templates 下创建第二个 html 页面名为 target

​ 在里面写入:



  
    
    Title
  
  
    HelloWorld
  

 在请求控制器中创建处理请求的方法
@RequestMapping("/hello")
public String HelloWorld() {
    return "target";
}

总结

①浏览器发送请求,若请求地址符合前端控制器url-pattern

②该请求就会被前端控制器 DispatcherServlet 处理。

③前端控制器会读取 SpringMVC 的核心配置文件通过扫描组件找到控制器

④将请求地址控制器中 @RequestMapping 注解的 value 属性值进行匹配,

⑤若匹配成功,该注解所标识的控制器方法就是处理请求的方法。

⑥处理请求的方法需要返回一个字符串类型的视图名称,该视图名称会被视图解析器解析,加上前缀和后缀组成视图的路径

⑦通过 Thymeleaf 对视图进行渲染

⑧最终转发到视图所对应页面

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/974266.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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