JavaWeb开发基础Servlet简介

news/2024/11/15 16:01:15/文章来源:https://www.cnblogs.com/df888/p/18287454

Servlet是什么?

现在的Java Web开发,很少直接接触到Servlet。在Spring项目中,Spring Boot基于Spring Framework,简化了Spring应用程序开发,Spring Framework是一个全面的Java应用程序框架,其中包含Spring MVC模块,Spring MVC封装了Servlet,以实现Web功能。Servlet不属于Spirng项目,而是Java EE(后改名为Jakarta EE)的一部分。

Oracle将Java EE(Java SE还自己保留)交给开源组织,Eclipse基金会接手。但Oracle不允许开源组织使用Java名号,所以Jakarta EE名称于2018.02.26应运而生。

Servlet可以有很多种描述:

  • Servlet是一个技术,用来创建Web应用程序

  • Servlet是一个API,提供了很多接口、类和文档

  • Servlet是一个接口,必须实现该接口来创建Servlet

  • Servlet是一个类,位于服务端,接收请求,返回响应

  • Servlet是一个Web组件,用来创建动态Web页面

CGI与Servlet

在Servlet技术出现以前,Web应用程序是通过CGI(Common Gateway Interface),一种脚本语言,来实现的。

但是CGI存在很多缺点:

  • 如果客户端增多,服务端响应会变慢

  • 对于每个请求,CGI都会创建一个进程,进程数有限

  • 依赖C、C++、perl等编程语言

Servlet技术出现以后,解决了很多CGI问题:

  • 性能:每个请求创建一个线程,而不是进程

  • 可移植性:因为使用了Java语言

  • 健壮性:JVM管理Servlet,无需关心内存泄漏、垃圾回收等

  • 安全性:因为使用了Java语言

总的来说,Servlet是Server Applet,服务端小程序。它是单例多线程的,每个Servlet类在Web容器中只有一个实例,每次客户端请求,Web Server都会从线程池中分配一个线程去创建Servlet,每个请求由一个独立的线程处理,这些线程共享同一个Servlet实例,通过HTTP协议接收和响应来自Web Client的请求。

参考资料:

https://www.javatpoint.com/servlet-tutorial

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

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

相关文章

Pictures

本文来自博客园,作者:haozexu,转载请注明原文链接:https://www.cnblogs.com/haozexu/p/18301944

万字长文:Go 语言流行 ORM 框架 GORM 使用详解

万字长文:Go 语言流行 ORM 框架 GORM 使用详解 原创 江湖十年 Go编程世界 2024年05月18日 08:41 浙江 4人听过GORM 是 Go 语言中最受欢迎的 ORM 库之一,它提供了强大的功能和简洁的 API,让数据库操作变得更加简单和易维护。本文将详细介绍 GORM 的常见用法,包括数据库连接、…

搭建一个javaweb项目的准备流程

搭建一个javaweb项目的准备流程 以所学系统项目为例:1src\main\java\com\utils 1.1tools: DruidTools.java ​ 需要在lib中加入druid-xx-xx.jar包代码展示 package com.utils;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource; import j…

VulnHub-TR0LL: 1靶场实操

本文是对Vulnhub中的Tr0ll:1靶机实操TR0LL: 1靶场实操 靶场信息下载后使用vm打开即可TR0LL1靶场地址:https://www.vulnhub.com/entry/tr0ll-1,100/ 靶场创建时间:2014年8月14日 靶场描述:Tr0ll 的灵感来自于 OSCP 实验室内对机器的不断拖钓。目标很简单,获取 root 权限并从…

申请Lets Encrypt免费SSL证书

Lets Encrypt是一个免费的、开源的、自动化的证书颁发机构(CA),它的出现极大地推动了HTTPS的普及,为互联网的安全做出了巨大的贡献。 通过来此加密网站可以免费申请Lets Encrypt证书。 Lets Encrypt免费SSL证书申请步骤 1. 登录来此加密网站,输入域名,可以勾选泛域名和包…

暑假第一周周报

这周除了个人赛外,还进行了线段树、数状数组的练习。刚开始训练的时候,对线段数和数状数组是缺乏理解,感觉非常非常难,但随着做了越来越多的题。感觉现在是掌握了其中一部分。刚开始学线段树,其中的懒标记感觉不是太会,于是就网上找了一些资料,把那个懒标记的相关知识点…

电影《抓娃娃》迅雷高清版下载[AVI/3.89GB/HD]BT完整版百度云资源

引言电影《抓娃娃》于2024年7月16日在中国大陆上映,由闫非、彭大魔执导,沈腾、马丽领衔主演。这部影片不仅延续了开心麻花团队一贯的喜剧风格,更在幽默与诙谐之中深刻探讨了家庭教育与个人成长的主题。本文将从剧情简介、角色分析、导演手法、主题探讨等方面,对《抓娃娃》进…

进度报告6

(1)1.开始学习面向对象编程,知道基本规则并进行了一定练习 先定义某某类在之中定义变量和函数 之后新建类再调用对象对数据进行处理 (2)继续学习面向对象

2024/7/13 ABC362 比赛记录

7/14: 昨晚打的abc,外面下着大雨; 1650 pts rank 975T1: 简单签到题,愣是被我拖了7min 死因:开赛时老师开始收手机,一直叫我名,我一着急装了两个翻译插件,导致页面错版。时间宝贵,于是我艰难的对照样例勉强读懂题( T2: 计算几何? 给平面直角坐标系3点,判rt 三角形。…

android系统启动流程- ServiceManager进程启动流程

*注:基于Android11源码 ServiceManager进程是在init进程创建的,所以我们从init进程的main()开始分析: // 文件路径: system/core/init/main.cppint main(int argc, char** argv) {...if (!strcmp(argv[1], "second_stage")) { //TODO 根据条件会走到这个分支re…

jdk22

1、下载JDK22 2、安装JDK22选择路径后,一路默认安装。3、Windows 系统下配置环境变量点击我的电脑-属性-高级系统设置 新增配置 JAVA_HOME,为 jdk 的安装路径D:\Java22\jdk22 编辑配置 Path 变量,配置 jdk 的 bin 的目录%JAVA_HOME%\bin 验证安装结果 java -version