SSM框架 --- SpringMVC --- exercise1

1.创建Maven项目

2.导入依赖(导入SpringMvc与Servlet的坐标):

    <dependencies>
<!--servlet依赖的坐标--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency>
<!--springmvc依赖的坐标--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.33</version></dependency></dependencies>
<!--Tomcat的插件--><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><path>/</path></configuration></plugin></plugins></build>

servlet的作用:

Servlet主要用于处理客户端传来的Http请求,并返回一个响应。

Servlet是一种独立于平台和协议的服务器端Java技术,用于生成动态的Web页面。它通过创建一个框架来扩展服务器的能力,以提供在Web上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让Servlet建立起服务器返回给客户机的响应。Servlet的主要作用包括:

  1. 接收客户端的请求数据:专门用来接收客户端的请求数据,然后调用底层service处理数据并生成结果。
  2. 生成响应内容:根据客户端的请求,生成响应内容并将其传给服务器。
  3. 与其它服务器资源进行通信:包括数据库和基于Java的应用程序,进行必要的通信和处理。
  4. 处理多个客户机的连接:接收多个客户机的输入,并将结果广播到多个客户机上,例如,可以作为多参与者的游戏服务器。
  5. 特殊处理:采用MIME类型过滤数据,例如图像转换和服务器端包括(SSI)。
  6. 提供定制处理:将定制的处理提供给所有服务器的标准例行程序,例如,修改如何认证用户。

Servlet的运行环境称为Servlet容器或Servlet引擎,它给发送的请求和响应之上提供网络服务。Servlet不能独立运行,必须被部署到Servlet容器中,由容器来实例化和调用Servlet的方法。Servlet容器在Servlet的生命周期内管理Servlet,如Servlet的创建、使用与销毁等。

3.创建SpringMvc的控制器类

在Controller包下创建UserController控制器类:

//使用Controller来定义bean
@Controller
public class UserController {//设置当前操作的访问路径@RequestMapping("/save")//设置当前操作的返回值类型@ResponseBodypublic String save(){System.out.println("user save ...");return "'module' : 'springmvc'";}
}

4.初始化SpringMvc环境,设置SpringMvc加载对应的Bean

在Config包下创建SpringMvcConfig加载配置类

//创建SpringMvc的配置文件,加载Controller对应的bean
@Configuration
@ComponentScan("com.itheima.Controller")
public class SpringMvcConfig {
}

5.初始化Servlet容器,加载SpringMvc环境,并设置SpringMvc技术处理的请求

在Config包下创建ServletContainersInitConfig类

//定义一个servlet容器启动的配置类,在里面加载Spring的配置
public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {//加载SpringMvc容器配置@Overrideprotected WebApplicationContext createServletApplicationContext() {AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();ctx.register(SpringMvcConfig.class);return ctx;}//设置哪些请求归属SpringMvc处理@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}//加载Spring容器配置@Overrideprotected WebApplicationContext createRootApplicationContext() {AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();ctx.register(SpringConfig.class);return ctx;}
}

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

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

相关文章

git stash Pop 后丢失,要如何找回?

文章目录 须知背景描述解决过程 须知 写在前面&#xff1a;我们都知道 stash list 中如果 pop 出来一条&#xff0c;那 list 里就会少一条&#xff0c;但其实使用 git stash pop 并没有真正地将该条 stash 删掉的&#xff0c;而是删除引用而已&#xff0c;因此当我们误 pop 时…

AI在软件开发中的应用

AI在软件开发中的应用可以帮助开发人员更高效地编写和测试代码&#xff0c;并提高软件的质量和性能。它能够帮助加快软件的部署和维护过程&#xff0c;提供更好的开发体验。 编码辅助 帮助开发人员更快地编写代码。例如&#xff0c;AI可以识别代码中的语法错误&#xff0c;并提…

WSL+Anconda(pytorch深度学习)环境配置

动机 最近在读point cloud相关论文&#xff0c;准备拉github上相应的code跑一下&#xff0c;但是之前没有深度学习的经验&#xff0c;在配置环境方面踩了超级多的坑&#xff0c;依次来记录一下。 一开始我直接将code拉到了windows本地来运行&#xff0c;遇到了数不清的问题&a…

LoRaWAN网关源代码分析(基础概念篇)

目录 一、简介 1、lora_gateway 2、packet_forwarder 二、目录结构 1、lora_gateway 2、packet_forwarder 一、简介 LoRaWAN网关的实现主要依赖两个源代码&#xff1a;lora_gateway和packet_forwarder。接下来&#xff0c;我们将从分析源代码入手&#xff0c;移植LoRaWAN源…

ThinkPHP:查询数据库数据之后,更改查询数据的字段名称

一、原始查询数据 含有字段item_no&#xff0c;lot_num&#xff0c;position $data[brushed] db::table(wip_station_transaction) ->where([wip_entity_name>$wip_entity_name,line_code>$line_code,]) ->field([item_no, lot_num, position]) ->select(); …

DAC测试实验——FPGA学习笔记7

一、DAC简介 DAC全称Digital to Analog Converter&#xff0c;即数模转换器。它用于将主控芯片产生的数字值(0和1)转换为模拟值(电压值)。 1、DAC参数指标 2、DAC类型 常用的DAC可大致分为权电阻网络DAC、T型电阻网络DAC、倒T型电阻网络DAC以及权电流型DAC。 3、AD9708/3PD9…

ChatGPT 简介

ChatGPT 是一种基于大型语言模型的对话系统&#xff0c;由 OpenAI 开发。它的核心是一个深度学习模型&#xff0c;使用了 GPT&#xff08;Generative Pre-trained Transformer&#xff09;架构。以下是 ChatGPT 的原理和工作机制的详细介绍&#xff1a; ### GPT 架构 1. **Tr…

Linux - 记一次某Java程序启动报错(申请内存失败)

文章目录 问题可能原因分析可能原因分析尝试各种解决方案尝试解决过程 解决办法&#xff1a; 调整 overcommit_meory参数overcommit_memory详解什么是 overcommit_memory&#xff1f;overcommit_memory 的选项及其含义配置 overcommit_memory查看当前设置设置 overcommit_memor…

github-chinese,跟英文GitHub说拜拜

背景 对于我们程序员来说,Github是一个常逛的web网站,里面学习资源众多,不管是查问题还是查资料都离不开他。 但是Github作为一个国际化的网站,语言主要是英语,所以对于一些英语似懂非懂的同学来说还是有一些难处。 想过找一个国内中文的Github作为一个平替网站,但是资…

访问网站时IP被屏蔽是什么原因?

在互联网使用中&#xff0c;有时我们可能会遇到访问某个网站时IP地址被屏蔽的情况。IP地址被网站屏蔽是一个相对常见的现象&#xff0c;而导致这种情况的原因多种多样&#xff0c;包括恶意行为、违规访问等。本文将解释IP地址被网站屏蔽的常见原因&#xff0c;同时&#xff0c;…

【AI原理解析】— 小模型(总述)

目录 1. 线性模型 2. 决策树 3. 朴素贝叶斯 4. 小型神经网络 5. 多模态小模型&#xff08;特定类型的小型神经网络&#xff09; 1. 线性模型 原理&#xff1a; 线性模型是试图通过属性的线性组合来进行预测的函数。其表达式可以表示为 y w^T * x b&#xff0c;其中w和b…

Day 30:100346. 使二进制数组全部等于1的最小操作次数Ⅱ

Leetcode 100346. 使二进制数组全部等于1的最小操作次数Ⅱ 给你一个二进制数组 nums 。 你可以对数组执行以下操作 任意 次&#xff08;也可以 0 次&#xff09;&#xff1a; 选择数组中 任意 一个下标 i &#xff0c;并将从下标 i 开始一直到数组末尾 所有 元素 反转 。 反转 …

Kafka 集群元数据之Zookeeper存储介绍

Kafka 集群元数据之Zookeeper存储介绍? 在 Kafka 集群中,ZooKeeper 存储了大量的元数据,管理和协调 Kafka 的各个组件。以下是 ZooKeeper 中创建 的主要信息及其作用: 1. Broker 信息 路径: /brokers/ids/[broker_id]/brokers/topics/[topic_name]/brokers/seqid作用:…

平面设计软件PS/AI/ID/CDR怎么选怎么下载(附教程)

随着设计行业的普遍化&#xff0c;平面设计软件也越来越多且功能越来越强大。平面设计软件需要在电脑上运行使用&#xff0c;来进行平面画面、平面文字的设计工作。如大家所了解的&#xff0c;Adobe Photoshop、Adobe Illustrator、CorelDRAW、Adobe InDesign是平面设计中最常用…

Kubernetes相关生态

1、Prometheus、Metrics Server与Kubernetes监控体系 简介&#xff1a; Prometheus 项目与 Kubernetes 项目一样&#xff0c;也来自于 Google 的 Borg 体系&#xff0c;它的原型系统&#xff0c;叫作 BorgMon&#xff0c;是一个几乎与 Borg 同时诞生的内部监控系统 Pro…

数学概念之集合

简介 集合(Set)是一种数学概念,在编程中也被广泛使用。它可以被定义为一个无序、不重复的元素的集合。下面我们更详细地来介绍集合: 什么是集合? 集合是由一些确定的、互不相同的元素组成的整体。集合中的元素是无序的,即元素之间没有先后关系。集合中的元素是唯一的,即不能…

MQTT服务器/MQTT_C#客户端/Websoket连MQTT

1 . 搭建MQTT服务器 找到上传中的 emqx-5.3.2-windows-amd64 打开bin如下: 链接: emqx-5.3.2-windows-amd64 如果安装失败 在上传中找到链接: VC_redist.x64.exe 安装。 正确后在浏览器输入 http://127.0.0.1:18083 会有如下mqtt服务端管理页面: 进入客户端认证,创建一个…

IDEA Plugins中搜索不到插件解决办法

IDEA中搜不到插件有三种解决方案&#xff1a; 设置HTTP选项&#xff0c;可以通过File->Settings->Plugins->⚙->HTTP Proxy Settings进行设置 具体可参考这篇博文&#xff1a;IDEA Plugins中搜索不到插件解决办法本地安装&#xff0c;ile->Settings->Plugin…

机器学习数学原理专题——线性分类模型:损失函数推导新视角——交叉熵

目录 二、从回归到线性分类模型&#xff1a;分类 3.分类模型损失函数推导——极大似然估计法 &#xff08;1&#xff09;二分类损失函数——极大似然估计 &#xff08;2&#xff09;多分类损失函数——极大似然估计 4.模型损失函数推导新视角——交叉熵 &#xff08;1&#x…

安徽理工大学2计算机考研情况,招收计算机专业的学院和联培都不少!

安徽理工大学&#xff08;Anhui University of Science and Technology&#xff09;&#xff0c;位于淮南市&#xff0c;是安徽省和应急管理部共建高校&#xff0c;安徽省高等教育振兴计划“地方特色高水平大学”建设高校&#xff0c;安徽省高峰学科建设计划特别支持高校&#…