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

java---servlet

在网络中,客户端发来请求,带有特定的格式,包含请求的公网地址和要访问的服务器,然后tomcat作为服务器就接收请求,把请求转换成request对象,交给servlet,然后servlet就处理请求,处理完成后返回为rrsponse,交给tomcat,tomcat在转换成http的标准格式,半酣公网地址和端口号,这样就完成了一次请求

创建的web项目在tomcat的webapps文件夹下,当接收请求(连接这个服务器),tomcat就会去webapps文件夹下寻找项目,如果8080端口号后面没有url路径,就会默认访问ROOT文件夹,

可以看到ROOT文件夹也是一个标准的web项目格式,包含WEB-INF目录,目录底下有web.xml文件,目录外面有index.jsp的文件

会默认访问index.jsp这个首页文件,这个是为啥呢,在tomcat的路径有一个conf文件,是tomcat的所有的配置文件,默认设置的index.jsp就在web.xml里面配置(注意如果自己的项目想要修改默认界面,可以直接在自己项目的web,xml的配置文件进行修改,不要修改这个tomcat的配置文件哦)

补充:tomcat的文件结构及其含义
目录 / 文件核心含义 & 核心作用
bin/可执行脚本目录✅ 启动 / 关闭 Tomcat 的核心脚本:- Windows:startup.bat(启动)、shutdown.bat(关闭)- Linux/Mac:startup.shshutdown.sh⚠️ 注意:catalina.sh/bat是真正的启动核心,startup只是调用它
conf/配置文件目录(Tomcat 最核心的配置区)✅ 关键文件:-server.xml:全局核心配置(端口、连接器、引擎、主机),比如改 8080 端口就在这-web.xml:Web 应用的默认配置(MIME 类型、默认首页 index.html)-tomcat-users.xml:Tomcat 管理后台的用户 / 权限配置(用户名、密码、角色)-context.xml:所有 Web 应用的通用上下文配置
webapps/Web 应用部署目录(新手最常用)✅ 把你的 war 包 / 文件夹丢到这里,Tomcat 启动后会自动部署✅ 默认自带示例:-ROOT/:Tomcat 根应用(访问http://localhost:8080就走这个目录)-docs/:Tomcat 官方文档-manager/:Tomcat 管理后台(部署 / 卸载应用)
logs/日志目录(排错必备)✅ 关键日志:-catalina.out:Tomcat 主日志(启动报错、应用输出都在这)-localhost_access_log.*.txt:访问日志(记录谁访问了哪个接口)-localhost.log:本地主机相关日志
temp/临时文件目录✅ Tomcat 运行时生成的临时文件(比如上传文件的临时存储),重启 / 关闭会自动清理,不用管
work/工作目录✅ Tomcat 把 JSP 编译成 Java 类、生成字节码的地方(如果 JSP 改了没生效,可删除这个目录重启)
lib/Tomcat 核心依赖库✅ 存放 Tomcat 运行所需的 jar 包(比如 servlet-api.jar、jsp-api.jar),不要随便改
LICENSE/NOTICE许可证 / 说明文件(纯文档,不用关注)

既然tomcat有默认的配置文件,那我们的项目的web.xml写什么

1. Servlet/Filter/Listener 的核心映射(传统方式)

这是最基础的功能,虽然现在可以用注解(@WebServlet)替代,但复杂项目仍会用web.xml统一管理(便于集中维护):

  • Servlet 映射:URL 路径和 Servlet 类的绑定(核心);
  • 过滤器(Filter):处理请求的前置 / 后置逻辑(如中文乱码、登录校验);
  • 监听器(Listener):监听项目启动 / 销毁、Session 创建 / 销毁等事件。
tomcat处理请求,核心用的是servlet以及实现类似功能的类
2. 自定义默认首页(覆盖 Tomcat 全局规则)

指定项目访问根路径(如/myweb)时默认打开的页面(比如自己的login.html/index.jsp)。

3. 错误页面配置(提升用户体验)

自定义 404(页面找不到)、500(服务器错误)等异常的跳转页面,避免显示 Tomcat 默认的错误页。

4. 全局参数配置

配置项目级别的常量(如数据库连接地址、接口前缀),Servlet 可通过getServletContext().getInitParameter()获取。

5. 会话(Session)配置

设置 Session 的超时时间(比如 30 分钟未操作自动失效)。

那么sevlet是怎末处理这些请求的呢

这个就简单一些了,就像我们定义的java类一样,定义不同的servlet类实现不同的功能

举例

Servlet 名称核心职责对应 URL 示例作用说明
LoginServlet处理用户登录 / 退出/user/login/user/logout验证账号密码、创建 / 销毁 Session、跳转到首页 / 登录失败页
UserServlet处理用户信息相关操作/user/info/user/update查询用户资料、修改昵称 / 密码、绑定手机号等
GoodsServlet处理商品相关操作/goods/list/goods/detail查询商品列表、查看商品详情、搜索商品等
CartServlet处理购物车操作/cart/add/cart/delete添加商品到购物车、删除购物车商品、修改购物车商品数量
OrderServlet处理订单相关操作/order/create/order/list创建订单、查询我的订单、取消订单、支付回调处理
PayServlet处理支付相关操作(如对接支付宝 / 微信支付)/pay/ali/pay/wechat生成支付链接、接收支付结果通知、更新订单支付状态
http://www.jsqmd.com/news/637401/

相关文章:

  • Re:思考·重建·记录 现代C++ C++11篇 (三) 深度解构:可变参数模板、类功能演进与 STL 的新版图
  • 技术人的孤独:深夜Debug时的思考
  • 创FreePDF Pro,免费批量转Word/合并/压缩,新手图文教程
  • 46、foreach和map的区别
  • Linux操作系统基本操作
  • 全球主流AI编程模型深度对比:从GPT-4到Claude-3优劣势分析
  • MATLAB科研绘图终极指南:用export_fig一键生成期刊级高质量图像
  • Simulink控制算法库 _Matlab仿真 Simulink控制算法库 _Matlab仿真 Pid控制 滑膜控制 模糊控制 鲁棒控制 遗传算法 神经网络 模型预测控制 自抗扰控制
  • 告别论文格式内卷!Paperxie 4000 + 高校模板一键校准,躺平式搞定排版难题
  • Policy Engine:比 Guardrails 更高一层的 AI 治理系统
  • 微信小程序的校友录同学录班级网站
  • CNN架构演进史:6个经典模型的创新点解析
  • 2026年热门的西安内外墙涂料/外墙涂料公司对比推荐 - 品牌宣传支持者
  • <项目代码>yolo 扑克牌识别<目标检测>
  • 全球12.5米无缺失DEM数据:多源融合修复技术与应用解析
  • 鸿蒙游戏的数据流是怎么跑的?
  • 深入浅出Linux线程:从概念到实战,新手也能看懂的核心指南
  • 如何利用国内LLM对Obsidian的笔记进行分析
  • 互联网大厂Java面试:核心技术栈与微服务场景问答解析
  • 因文化差异导致的JSON数值解析问题
  • 云计算学习Day 4
  • 不用公网 IP 也能远程访问!cpolar 内网穿透工具使用教程
  • 硬件仿真必看:如何用VCS的xprop选项精准控制X态传播范围
  • KosxPDF批量PDF盖章工具|支持骑缝章+电子章+多文件合并,高效智能文档签章解决方案
  • 从Prompt到MCP Server:斯坦福AI开发课程内容
  • 网络工程师-网工核心:网闸 / 防火墙 / IDS/IPS 全解析,构建纵深防御体系
  • 从零到一:基于Stable-DINO的自定义数据集训练实战
  • 2026年目前隔油池供应商,隔油池/水泥检查井/水泥预制件/水泥生态框/钢承口顶管,隔油池工厂电话 - 品牌推荐师
  • 2026年不锈钢锻件法兰优选指南,这些公司别错过,不锈钢法兰/不锈钢锻件法兰/不锈钢美标法兰,不锈钢锻件法兰企业哪家好 - 品牌推荐师
  • 海南大学交友平台开发实战 day10(后端向前端输出_前端读取数据全流程联调+日志调试落地)