Servlet注册迭代史

Servlet注册迭代史

1、第一代,xml注册

<web-app><display-name>Archetype Created Web Application</display-name><!-- 定义一个Servlet --><servlet><!-- Servlet的名称,用于在配置中引用 --><servlet-name>HelloServlet</servlet-name><!-- Servlet的完全限定类名,这是Servlet类的Java类名 --><servlet-class>HelloServlet</servlet-class></servlet><!-- 配置Servlet映射 --><servlet-mapping><!-- 引用之前定义的Servlet的名称 --><servlet-name>HelloServlet</servlet-name><!-- 定义URL模式,当客户端访问此URL时,将由HelloServlet处理 --><url-pattern>/hello</url-pattern></servlet-mapping></web-app>

2、第二代,注解注册

@WebServlet("/hello")
/*** @author Administrator*/
public class HelloServlet extends HttpServlet {@Overridepublic void init() throws ServletException {System.out.println("HelloServlet...init初始化。");}@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {System.out.println("HelloServlet...service。");//        防止乱码// 设置响应的字符编码为UTF-8res.setCharacterEncoding("UTF-8");// 设置响应的内容类型为text/html;charset=UTF-8res.setContentType("text/html;charset=UTF-8");res.getWriter().write("HelloServlet...,第二种注册servlet方式。(注解注册)");}@Overridepublic void destroy() {System.out.println("HelloServlet...destroy。");}}

3、第三代,注解注册

@Controller
@RequestMapping("/api")
public class HelloController {//    访问地址:http://localhost:8080/api/hello//    格式:http://ip:port/api/hello@ResponseBody@RequestMapping("/hello")private String show() {return "hello";}}

4、第四代,注解注册

@RestController
@RequestMapping("/api")
public class Hello2Controller {@RequestMapping("/test")public String test() {return "test";}
}

注:@Controller、和@RestController ,都是springmvc框架的注解。

只不过SSM阶段的时候、或者单独使用springmvc时,通常是用@Controller、或者@Controller和@RestController配合使用。

到了springboot阶段,通常来说…主要是以前后端分离形式开发,这个时候就不怎么需要@Controller了。

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

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

相关文章

Spring Boot与Kubernetes:现代云部署的完美组合

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

Python实操 PDF自动识别并提取Excel文件

最近几天&#xff0c;paddleOCR开发了新的功能&#xff0c;通过将图片中的表格提取出来&#xff0c;效果还不错&#xff0c;今天&#xff0c;作者按照步骤测试了一波。 首先&#xff0c;讲下这个工具是干什么用的&#xff1a;它的功能主要是针对一张完整的PDF图片&#xff0c;可…

49. 视频热度问题

文章目录 实现一题目来源 谨以此笔记献给浪费掉的两个小时。 此题存在多处疑点和表达错误的地方&#xff0c;如果你看到了这篇文章&#xff0c;劝你跳过该题。 该题对提升HSQL编写能力以及思维逻辑能力毫无帮助。 实现一 with info as (-- 将数据与 video_info 关联&#x…

【MySQL】CRUD (增删改查) 基础

CRUD&#xff08;增删改查&#xff09;基础 一. CRUD二. 新增 &#xff08;Create&#xff09;1. 单行数据 全列插入2. 多行数据 指定列插入 三. 查询&#xff08;Retrieve&#xff09;1. 全列查询2. 指定列查询3. 查询字段为表达式4. 别名5. 去重&#xff1a;DISTINCT6. 排序…

软考备考-程序员-备考笔记

软考备考-程序员-备考笔记 持续更新中》》》》》 更新日志&#xff1a; 刷题软件&#xff1a; 希赛网&#xff1a;每日一练和往年真题是免费的 软考通&#xff1a;完全免费 软考真题&#xff1a;完全免费 51CTO题库:微信小程序&#xff0c;不用下载&#xff0c;顺手 试卷题…

sqlx库使用指南

sqlx库使用指南 在项目中我们通常可能会使用database/sql连接MySQL数据库。本文借助使用sqlx实现批量插入数据的例子&#xff0c;介绍了sqlx中可能被你忽视了的sqlx.In和DB.NamedExec方法。 sqlx介绍 在项目中我们通常可能会使用database/sql连接MySQL数据库。sqlx可以认为是Go…

10吨地埋式农村生活废水处理设备厂家电话

10吨地埋式农村生活废水处理设备厂家电话 工艺流程&#xff1a; 厌氧生化处理-----好氧生物接触氧化-----二沉沉淀-----二氧化氯接触消毒----达标排放 工艺流程 采用生物膜法&#xff1a;缺氧----好氧(A/0)处理工艺。A/O即缺氧好氧生物接触氧化法是一种成熟的生物处理工艺&…

持安科技何艺:基于可信验证的应用访问安全模型 | CCS2023演讲分享

近日&#xff0c;2023CCS成都网络安全大会在成都举办&#xff0c;大会由四川省互联网信息办公室指导&#xff0c;成都市互联网信息办公室、成都高新技术产业开发区管理委员会联合主办&#xff0c;无糖信息技术有限公司承办。 持安科技创始人兼CEO何艺受邀参与2023CCS大会金融安…

python经典100题之判断今年的第几天

可以通过datetime模块来计算。具体实现如下&#xff1a; import datetimeyear int(input("请输入年份&#xff1a;")) month int(input("请输入月份&#xff1a;")) day int(input("请输入日期&#xff1a;"))date datetime.date(year, mon…

【继RNN之后的一项技术】Transfomer 学习笔记

谷歌团队在17年的神作&#xff0c;论文17年6月发布 https://arxiv.org/abs/1706.03762 被NIPS2017收录&#xff0c;目前引用量已经逼近3w。 以下内容参考李沐老师的课程《动⼿学深度学习(Pytorch版)》 简介 注意力 自主性&#xff1a;有目的的搜索某样东西&#xff08;键&…

Xilinx FPGA 超温关机保护

在UG480文档&#xff0c;有关于FPGA芯片热管理的介绍。 首先需要理解XADC中的 Over Temperature&#xff08;OT&#xff09;和User Temperature的关系。片上温度测量用于关键温度警告&#xff0c;也支持自动关机&#xff0c;以防止设备被永久损坏。片上温度测量在预配置和自动关…

C++:类和对象(三)

本文主要介绍初始化列表、static成员、友元、内部类、匿名对象、拷贝对象时编译器的优化。 目录 一、再谈构造函数 1.构造函数体赋值 2.初始化列表 3.explicit关键字 二、static成员 1.概念 2.特性 三、友元 1.友元函数 2.友元类 四、内部类 五、匿名对象 六、拷…

android上架备案公钥和md5获取工具

最近很多公司上架遇到了一个问题&#xff0c;就是要提供app的备案证明&#xff0c;现在android上架都需要备案了&#xff0c;但是我们的证书都是通过工具生成的&#xff0c;哪里知道公钥和md5那些东西呢&#xff1f;无论安卓备案还是ios备案都需要提供公钥和md5。 包括ios的备案…

上海控安携汽车网络安全新研产品出席AUTOSEMO“恒以致远,共创共赢”主题研讨会

8月31日&#xff0c;AUTOSEMO“恒以致远&#xff0c;共创共赢”主题研讨会在天津成功召开。本次大会由中国汽车工业协会软件分会中国汽车基础软件生态标委会&#xff08;简称&#xff1a;AUTOSEMO&#xff09;与天津市西青区人民政府联合主办。现场汇聚了100余位来自产学研政企…

nginx服务和uwsgi服务如何设置开机自启动

上次学到了在云服务器下如何部署Django项目&#xff0c;用到了nginx服务和uwsgi服务&#xff0c;需要手工启动这2个服务的命令。 现在考虑如何设置开机自启动&#xff0c;为什么要这样考虑&#xff1f;因为服务器万一出问题&#xff0c;意外重启了&#xff0c;那我们部署的Dja…

什么是栈顶缓存技术

假设有一个基于流水线架构的处理器&#xff0c;它需要执行一系列指令。这些指令包括加载数据、执行计算和存储结果。在流水线中&#xff0c;不同阶段的指令可以并行执行。 现在考虑一个简单的情况&#xff0c;其中需要执行以下两个指令&#xff1a; 加载数据指令&#xff1a;…

mysql物理备份步骤

原库10.153.88.5&#xff0c;新建数据库实例10.153.88.6&#xff0c;注意/etc/my.cnf配置和88.5一致&#xff0c;测试目的是通过copy数据文件到88.6来恢复数据库。 在数据库10.153.88.5打包数据文件&#xff1a; [mysqlt3-dtpoc-dtpoc-web04 mysql]$ cd /testdata/mysql [mys…

ElementPlus· banner轮播图实现

功能&#xff0c;①通用型&#xff0c;三方组件完成&#xff08;如&#xff0c;elementPlus&#xff09; ②自己写 轮播图 本文使用vue3中的UI框架——elementPlus——三方组件中的 <el-carousel> 实现轮播图 // 组件静态模板 <template><div class"hom…

游戏出现卡顿有哪些因素

一、服务器CPU内存占用过大会导致卡顿&#xff0c;升级CPU内存或者优化自身程序占用都可以解决。 二、带宽跑满导致卡&#xff0c;可以升级带宽解决。 二、平常不卡&#xff0c;有大型的活动的时候会卡&#xff0c;这方面主要是服务器性能方面不够导致的&#xff0c;性能常说…

前端如何将后台数组进行等分切割

前端如何切割数组 目标&#xff1a;前端需要做轮播&#xff0c;一屏展示12个&#xff0c;后端返回的数组需要进行切割&#xff0c;将数据以12为一组进行分割 环境&#xff1a;vue3tselement plus 代码如下&#xff1a; function divideArrayIntoEqualParts(array, chunkSiz…