springWeb介绍、以及SpringWeb的搭建

news2024/9/22 13:45:36

ssm框架

早期 ssm == spring+strtuts2+mybatis

现在 ssm == spring+springweb+mybatis

springweb运行流程

1、SpringWeb概述

SpringWeb是spring框架中的一个模块,基于Servlet API构建的web框架,springweb是Spring为web层开发提供的一套完备的解决方案。在web层框架经历Strust1、webwork、Strust2等诸多产品历代更选之后的,目前业界普遍选择了springweb作为Java EE 项目web层开发的首选方案。

2、SpringWeb特点

1、SpringWeb是spring家族原生产品,于IOC容器等基础设施无缝对接。

2基于原生的Servlet,提供了一个前端控制器DispatcherServlet,开发者无需额外开发控制器对象。

3、可以自动绑定用户输入,并正确的转换数据类型。

4、代码清新简洁,大幅度提升开发效率。

5、内部组件或程度高,可拔插式组件即插即用。

5、性能卓著,尤其适合现代大型、超大型互联网项目要求。

3、SpringWeb运行流程

1、用户发请求到前端控制器DispatcherServlet,

2、前端控制器DispatcherServlet收到请求调用处理器映射器HandlerMapping

3、HandlerMapping找到具体的处理器(可查找 xml 配置或注解配置),生成处理器对象及处理器拦截器(如果有),再一起返回给 DispatcherServlet。

4、前端控制器DispatcherServlet调用处理器适配器HandlerAdapter,

5、HandlerAdapter经过适配调用具体的处理器Handler/Controller,

6、Controller执行向前端相应

4、SpringWeb组件 

前端控制器:DispatcherServlet,不需要程序员开发,由框架提供,在web.xml进行配置

作用:统一处理请求和相应,是整个流程的控制中心,由它调用执行其他组件处理用户其他请求。

处理器映射器:HandlerMapping,不需要程序员开发,由框架提供

作用:根据请求的url查找处理器Controller

处理器适配器:HandlerAdapter不需要程序员开发,由框架提供

作用:按照特定规则((HandlerAdapter 要求的规则)执行Controller

处理器:Handler也称为Controller,需要程序员开发。

注意:编写 Handler 时按照 HandlerAdapter 的要求去做,这样适配器才可
以去正确执行 Handler

作用:接受用户请求信息,调用业务方法处理请求,也称之为后端控制器。

5、搭建SpringWeb

1、导入依赖 ,在之前的基础上导入SpringWeb的jar包

<!--springWeb-->
 <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-webmvc</artifactId>
     <version>5.2.2.RELEASE</version>
 </dependency>

 2、配置DispatcherServlet,在web.xml文件中,以及配置spring核心请求分发器

  <!--配置前端控制器DispatcherServlet-->
<servlet>
    <servlet-name>application</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring.xml</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
</servlet>

<!-- 请求映射 -->
<servlet-mapping>
    <servlet-name>application</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

3、开启springWeb注解,在spring.xml文件中

<!--开启 springWeb 注解-->
<mvc:annotation-driven></mvc:annotation-driven>

4、处理器搭建在web层

@RestController:让spring扫描,并创建扫描对象,简单来说就是交给Spring管理IOC容器

@RequestMapping(path = "/loginCtl")处理请求地址映射的注解,可以添加到类或者是方法上@RequestMapping 是一个用来为处理器地址映射的注解,可用于类或方法上. 作用在类上,在整个项目中不能重复,作用在方法上,整个类中不能重复. 常用属性 path,value,method. path 和 value 用来定义地址 method 用来定义请求方式

@RequestMapping(value = "/hello",method = RequestMethod.GET)
@RequestMapping(path= "/hello",method = RequestMethod.POST)

一个简单的web层示例,

package com.ffyc.ssm.web;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


/*
* @RestController  让spring扫描,并创建扫描对象
* @RequestMapping(path = "/loginCtl")  定义类和方法的地址
*
* */


@RestController
@RequestMapping(path = "/loginCtl")//定义类的地址
public class LoginController {

    @RequestMapping(path = "login")//定义方法的地址
    public String login(){

        System.out.println("登录");
        return "success";
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2086214.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java毕业设计 基于SSM校园心理咨询服务平台

Java毕业设计 基于SSM校园心理咨询服务平台 SSM 校园心理咨询服务平台 功能介绍 学生: 注册 登录 首页 心理测试 心理文章 心理导师 在线交流 关于我们 搜索 学生中心 我的咨询问题 我的测试结果 我的预约 我的发言 我的收藏 账户信息 教师&#xff1a;登录 发布文…

Linux——nginx 负载均衡

常规的web服务器一般提供对于静态资源的访问&#xff0c;比如说&#xff1a;图片、web样式 网站提供的大部分交互功能都需要web编程语言的支持&#xff0c;而web服务对于程序的调用&#xff0c;不管编译型语言还是解释型语言&#xff0c;web服务同将对于应用程序的调用递交给通…

音频变声怎么弄?(实测好用)快来试试这6个AI变声工具

音频变声怎么弄&#xff1f;随着短视频平台和社交平台的发展&#xff0c;很多小伙伴们会自己拍摄视频分享到平台上&#xff0c;还有一些视频创作者会制作有趣的视频吸引观众。而视频配音就是锦上添花&#xff0c;很多人觉得自己的声音不好听&#xff0c;想要实现录音音频变声&a…

结合ollama gemma2:2b大模型来实现数据分析系统的智能交互

在最近的人员风险行为分析系统开发过程中&#xff0c;需要解决一个问题&#xff1a;在缺乏GPU资源的情况下&#xff0c;如何提升智能交互能力。​我们探索并研究了集成gemma2:2b模型的可行性&#xff0c;这一举措旨在在有限的硬件条件下&#xff0c;为我们的系统注入更高级别的…

如何理解进程

一、进程的概念 进程&#xff1a;顾名思义&#xff0c;就是一个完整执行程序的过程。没错&#xff0c;就是这么简单&#xff0c;但是在程序执行的过程之中&#xff0c;系统会为这个执行的程序分配内存资源&#xff0c;这些过程也包含在进程当中。 进程是动态的&#xff0c;是程…

css-50 Projects in 50 Days(2)

html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>步骤条</title><link rel"style…

基于混沌麻雀搜索算法的光伏MPPT控制MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介 此模型主要研究光伏系统MPPT控制&#xff0c;通过将麻雀搜索算法引入至MPPT控制策略中&#xff0c;在模型中通过改变光照强度&#xff0c;来验证算法引入的有效性。模型中包含麻雀搜索算法MPPT与混…

单链表——随机链表的复制

深拷贝&#xff0c;就是将原链表彻底的拷贝&#xff0c;当我们观察这个链表时我们会发现&#xff0c;val与next都比较好拷贝&#xff0c;难点就是在random的拷贝&#xff0c;因为我们需要知被拷贝的节点的random指向的是哪个&#xff0c;所以我们很容易想到的方法就是从头遍历链…

从开题到答辩:ChatGPT超全提示词分享!(上)【建议收藏】

在浩瀚的知识领域中&#xff0c;提问的艺术是探索真理的钥匙。在这个信息爆炸的时代&#xff0c;深入探索知识的海洋&#xff0c;不仅需要热情和毅力&#xff0c;更需要正确的方法和工具。学术研究是一个复杂而严谨的过程&#xff0c;涉及从选题、文献综述到研究设计、数据收集…

网络层,数据链路层和应用层

1.网络层 网络层最主要的协议就是IP协议。 下图是IP协议的格式&#xff1a; 1.1 IP协议解析 &#xff08;1&#xff09;4位版本&#xff1a; 有两种&#xff1a;IPV4&#xff08;IP地址4个字节大小&#xff09;和IPV6&#xff08;IP地址16个字节大小&#xff09; &#xf…

推荐系统实战(八)-冷启动(上)

一、冷启动基本描述 &#xff08;一&#xff09;冷启动与新用户新物料 冷启动针对的是对缺少消费记录的新用户、新物料的推荐。 新用户不仅包含初次使用应用的用户&#xff0c;还包含安装很久但是处于低活跃状态的用户。 &#xff08;二&#xff09;部分经典算法无法支持新…

2024年【安全员-C证】新版试题及安全员-C证复审模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【安全员-C证】新版试题及安全员-C证复审模拟考试&#xff0c;包含安全员-C证新版试题答案和解析及安全员-C证复审模拟考试练习。安全生产模拟考试一点通结合国家安全员-C证考试最新大纲及安全员-C证考试真题汇…

二叉搜索树进阶之红黑树

前言&#xff1a; 在上文我们已经学习了AVL树的相关知识以及涉及的四种旋转的内容&#xff0c;但是AVL树追求平衡导致旋转操作过多&#xff0c;一些情况下影响性能&#xff0c;由此我们就来了解一下二叉搜索树的另外一个分支&#xff0c;红黑树。 &#xff08;倘若对旋转知识…

詹娜奥尔特加看到自己青少年时期露骨AI照片后删除了推特:“这太恶心了”

詹娜奥尔特加看到自己青少年时期露骨AI照片后删除了推特&#xff1a;“这太恶心了” 2024-08-25 23:07 发布于&#xff1a;河北省 21 岁的奥尔特加承认她仍在学习如何保护自己&#xff0c;一种有帮助的方法是“尽可能避免使用手机”。 这位女演员表示&#xff0c;看到“剪…

算法: 双指针

题目&#xff1a;环形链表 题目讲解&#xff1a; 判断环 要判断链表是否有环&#xff0c;可以使用快慢指针的方法。快指针每次走两步&#xff0c;慢指针每次走一步。如果链表有环&#xff0c;快慢指针最终会相遇&#xff1b;如果没有环&#xff0c;快指针会先到达链表末尾。 …

该部署公钥无权限拉代码

从阿里云云效的代码库中执行git pull时报错如下&#xff1a; git pull该部署公钥无权限拉代码 fatal: Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.原因是该代码库在云效上未启用密钥&#xff0c;…

【Material-UI】Select 组件中的 `Auto width`、`Small Size` 和 `Other Props` 详解

文章目录 一、Select 组件概述1. 组件介绍2. Select 组件的基本结构 二、Auto width 属性详解1. Auto width 的作用2. Auto width 属性的基本用法3. Auto width 的实际应用场景 三、Small Size 属性详解1. Small Size 的作用2. Small Size 属性的基本用法3. Small Size 的实际应…

三分钟总结开源流程表单的优势特点

实现流程化办公&#xff0c;可以借助低代码技术平台、开源流程表单的优势特点。作为当前较为理想的平台产品&#xff0c;低代码技术平台凭借够灵活、好操作、可视化界面的优势特点&#xff0c;得到了通信业、医疗、高校等很多行业客户朋友的喜爱与支持。今天一起来看看开源流程…

vue2.0纯前端预览附件方法汇总

vue2.0纯前端预览附件方法汇总 一、使用iframe预览1.使用 Office 在线查看器2.XDOC文档预览服务XDOC官网地址:[https://view.xdocin.com/](https://view.xdocin.com/) 二、vue-office具体效果可以参考: [https://501351981.github.io/vue-office/examples/dist/#/docx](https:/…

linux下使用xargs批量操作

1、创建测试文件&#xff1a; for i in {1..4}; do touch $i.gz; done;2、将所有gz文件重命名为.gz.log2文件 ls | xargs -I {} sh -c mv {} {}.log2 3、将所有.log2文件改回为.gz文件 ls | xargs -I {} sh -c mv {} $(echo {} | sed "s/\.log2//g" ) 4、将所有的…