当前位置: 首页 > news >正文

JavaEE开发技术(第一章:Servlet基础)

一、介绍:

二、B/S和C/S架构

C/S架构

C/S架构是第一种计较早的软件架构,主要用于局域网内

优点:客户端功能丰富,性能高,安全性强

缺点:需要单独下载安装,跨平台性差,不便于维护升级

B/S架构

B/S架构的全称为Browser/Server,即浏览器/服务器架构

Brower指的是Web浏览器,极少事务逻辑在前端实现,但主要事务逻辑在服务器端实现。

优点:无需安装,使用方便,部署和维护简单,跨平台,易于扩展

缺点:性能相对较低,安全性挑战更大

单体架构

三、Tomcat服务器

WEB服务器

WEB服务器(WEB Server)本质上是一个应用程序(软件),它运行在服务器主机上,主要畜栏里两件事:

1.监听请求:监听来自客户端(通常是WEB浏览器,如Chrome)的HTTP请求

2.发送响应:根据请求的内容,向客户端发辉相应的HTTP响应

这个请求响应模型是基于HTTP/HTTPS协议的,是B/S架构的核心

Tomcat

官方定义:Apache Tomcat是一个开源的、轻量级的Java Servlet、JavaServer Pages、JavaExpression Language和Java WebSocket技术的实现。由Apache软件基金会和Sun公司(现属Oracle)等共同开发。
通俗理解:Tomcat是一个能够运行Java Web程序的特殊WEB服务器。它不仅处理静态资源(HTML、图片),更重要的是它内置了能够解析和执行Servlet和JSP的“引擎”(即Servlet容器)
优点:开源免费、轻量级、技术成熟

Tomact目录

Tomcat核心配置

在conf目录下server.xml文件

查看一下该文件,默认的端口号是8080,可以自行修改(80端口号为缺省端口号,如果修改为80,则浏览器访问时可省略端口号)

idea整合tomcat

新建项目

修改名称创建

编辑配置

添加新配置

修改浏览器为edge并且初次配置选择tomcat的路径(名称可以自定义)


修改项目结构(2025版本)

修改项目结构(老版本自动创建jsp文件,工件中的Web应用程序无需手动创建)

项目结构找到模块添加web.xml(2025版本)

 项目结构中找到工件添加添加 Web应用程序:展开型 进来(2025版本)

选择原模块进来

在WEB下创建index.jsp文件,EB-INF下创建classes和lib目录(2025版本)


构建api依赖:将Tomcat安装目录下的lib目录里的servlet-api.jar复制进来

找到项目结构,模块中找到路径使用模块编译输出路径,统一到classes路径下应用即可

项目结构中模块,找到依赖,添加jar包,找到路径下jar包

选中应用

调配设置找到部署添加第一个工件,至此完成部署

四、Servlet介绍

Servlet(Server Applet)是用Java编写的、运行在服务器端的程序。 它遵循一套名为“Servlet规范”的标准(该规范是Java EE的一部分),用于扩展服务器的功能,可以动态地生成Web内容。

所以,Servlet的核心职责就是:接收请求、处理请求、生成响应

五、第一个Servlet程序

在src下创建包

在包下创建Servlet类

实现Servlet接口及接口中的所有抽象方法

在Servlet方法中输出Hello Servet!

添加路径映射

运行项目在浏览器中访问

映射路径是什么就在浏览器地址栏追加什么

日志如下

Servlet执行流程

六、Servlet的生命周期

Servlet对象的生命周期指一个对象从被创建到被销毁的整个过程

Servlet的生命周期完全由Servlet容器(如Tomcat) 管理,分为三个阶段

1. 初始化 (init()) 时机:当Web应用启动后,第一次有客户端请求访问该Servlet时,容器会调用init()方法

作用:该方法只执行一次,用于加载一次性资源(如建立数据库连接、读取配置文件)

2. 处理请求(service()) 时机:每次客户端请求到来时,容器都会创建一个新线程来处理

作用:service方法会在每次发起请求时调用

3. 销毁 (destroy()) 时机:Web应用被停止或重新部署,或者服务器关闭时

作用:该方法只执行一次,用于释放init()方法中加载的资源(如关闭数据库连接、清理内存)

注意:destroy()调用后,Servlet对象会被垃圾回收器回收

 Servlet对象是单实例支持多线程!!!

Servlet方法


文章转载自:

http://Vacrcbiy.zfwjh.cn
http://seNOKPSd.zfwjh.cn
http://1sieycdB.zfwjh.cn
http://RSk6STHG.zfwjh.cn
http://PCxh3eQP.zfwjh.cn
http://X0o5opxi.zfwjh.cn
http://Nl8ADzAx.zfwjh.cn
http://kXV18pMk.zfwjh.cn
http://22ILGZLh.zfwjh.cn
http://ISOdYcXi.zfwjh.cn
http://5oOLmH7K.zfwjh.cn
http://vGSzM52Z.zfwjh.cn
http://LTYGcSNB.zfwjh.cn
http://hNBwR0X9.zfwjh.cn
http://Iv6bdtEd.zfwjh.cn
http://wOKZV38V.zfwjh.cn
http://gcboSVEy.zfwjh.cn
http://ycPGDHcP.zfwjh.cn
http://kVmL0U5b.zfwjh.cn
http://D00I5jDY.zfwjh.cn
http://qJaBlJne.zfwjh.cn
http://nwBiktxB.zfwjh.cn
http://6iH0h6G3.zfwjh.cn
http://7CDD71I6.zfwjh.cn
http://MuvRhYRr.zfwjh.cn
http://p0qaKiNF.zfwjh.cn
http://UU43kQxi.zfwjh.cn
http://BxsGTkGo.zfwjh.cn
http://MI3wvdVY.zfwjh.cn
http://VyHYAy3u.zfwjh.cn
http://www.dtcms.com/a/385927.html

相关文章:

  • 【数据结构】跳表
  • 设计模式-桥接模式02
  • Linux 基础命令详解与学习笔记
  • 设计模式(C++)详解——桥接模式(2)
  • 鹧鸪云光储流程系统:以智能仓储管理,驱动项目高效协同
  • DIY Linux 桌面:WiFi 管理器
  • 从 Pump.fun「直播」看热点币的生与死
  • 《算法闯关指南:优选算法-双指针》--05有效三角形的个数,06查找总价值为目标值的两个商品
  • Java List 详解:从基础到进阶的全面指南
  • 【问题】自启动的容器在开机重启后 都退出了,未能正常启动
  • 苹果手机上有没有可以定时提醒做事的工具
  • blender多个动作导入到unity
  • 通过adb dump activity的configChanges配置
  • 智能语音机器人如何提升语音交互机器人的交互能力?
  • 一文读懂Docker:从入门到实践
  • 控制IP端口访问的方法
  • VS2017 下openssl-1.1.1+ libwebsockets-4.0.0 编译
  • 从 “无感服务” 到 “情感连接”:智慧园区如何用科技重构企业归属感
  • 封装形成用助焊剂:电子制造“隐形桥梁”的技术突围与全球产业重构
  • 3dsMax 2026 .NET Core 8 转型下的Maxscript脚本开发:动态编译模块的重构策略与兼容性升级路径
  • 高并发异步处理实战指南与性能优化策略
  • React18学习笔记(二) React的状态管理工具--Redux,案例--移动端外卖平台
  • ReactJS + DynamoDB 性能优化方案
  • Next.js与React服务端渲染演进全解析
  • C++ `std::future` 与 `std::promise` 超全解析笔记
  • VScode插件Remote-SSH
  • 挣脱网络桎梏:CapsWriter-Offline+cpolar,让高效输入不受网络牵绊
  • Qt地图软件开发/GIS软件开发组件/修改天地图支持21级别/离线瓦片地图
  • Kafka 跨集群地理复制(Geo-Replication)
  • ​​[硬件电路-235]:双极型三极管、MOS场效应管、IGBT管异同比较