JAVAWEB学习(1) — Servlet

本文详细介绍了Servlet的概念,包括其作为拓展web服务器功能的组件规范的角色,以及如何编写和运行Servlet。同时,文章还解释了常见的错误状态码及其原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Servlet

一、什么是Servlet

sun公司指定的一种用来拓展web服务器功能的组件规范

1. 拓展web服务器功能
  • web服务器只能处理静态资源的请求 (需要事先将html文件写好),不能够处理动态资源的请求(需要计算,生成动态的html),所以需要拓展。
  • 可以使用Servlet来拓展web服务器功能,当web服务器收到请求之后,如果需要计算,则交给Servlet来处理。

常见的web服务器:apacheiisnginx

2. 组件规范
  1. 什么是组件:符合规范,实现部分功能,并且需要部署到相应的容器里面才能运行的软件模块。

    Servlet就是一个组件,需要部署到Servlet容器里面才能运行。

  2. 什么是容器:符合规范,提供组件运行环境的程序

    Tomcat就是一个Servlet容器,为Servlet提供运行环境(提供网络相关的服务)

在这里插入图片描述

二、如何写一个Servlet

  1. 写一个java类,实现Servlet接口或者继承HttpServlet类

    通常我们选择继承HttpServlet类

  2. 编译

  3. 打包,即创建一个具有如下结构的文件夹

    |---- appname(应用名)

    ​ |---- WEB-INF

    ​ |---- classes(放.class文件)

    ​ |---- lib(放.jar文件 该文件夹可选)

    ​ |---- web.xml(部署描述文件)

  4. 部署:将创建好的整个文件夹拷贝到容器相应的位置

    可以将整个文件夹使用jar命令先压缩成.war为后缀的文件,然后再拷贝

  5. 启动容器,访问Servlet

    http://ip:port/appname/url-pattern

    :url-pattern在web-xml当中设置

三、Servlet是如何运行的

比如,在浏览器地址栏输入 http://ip:port/day01/hello

  1. 浏览器依据ip和port建立连接
  2. 浏览器将相关数据放到请求数据包里面,然后发送给服务器
  3. 服务器解析请求数据包,将解析到的数据添加到request对象,同时创建一个response对象
  4. 服务器创建Servlet对象,然后调用该对象的service方法
    • 服务器会将request和response对象作为参数传递过来,开发人员只需要调用这两个方法的对象就可以了,不用考虑网络相关的问题。
    • 比如要读取请求数据包中的内容,只需要调用request对象的方法就可以了。类似的,要向浏览器发送处理结果,只需要调用response对象的方法就可以了
  5. 服务器从response对象中获的处理结果,然后创建响应数据包并发送给浏览器
  6. 浏览器解析响应数据包,生成相应的页面

在这里插入图片描述

四、常见的问题

  • 404

    1. 含义:服务器依据请求路径找不到对应的资源

      404是一个状态码,状态码是一个三位数字,表示服务器处理请求的一种状态

    2. 产生的原因:

      • 请求路径写错

        要按照 http://ip:port/appname/url-pattern 来写

      • 应用没有部署或者部署失败

  • 500

    1. 含义:系统出错

    2. 产生的原因

      • 没有严格的按照规范来写代码(包括部署描述文件写错)

      • 代码不严谨

        比如,对请求参数不做检查,直接做类型转换

  • 405

    1. 含义:找不到处理方法
    2. 产生的原因
      • 没有正确override HttpServlet的service()方法
电动汽车数据集:2025年3K+记录 真实电动汽车数据:特斯拉、宝马、日产车型,含2025年电池规格和销售数据 关于数据集 电动汽车数据集 这个合成数据集包含许多品牌和年份的电动汽车和插电式车型的记录,捕捉技术规格、性能、定价、制造来源、销售和安全相关属性。每一行代表由vehicle_ID标识的唯一车辆列表。 关键特性 覆盖范围:全球制造商和车型组合,包括纯电动汽车和插电式混合动力汽车。 范围:电池化成分、容量、续航里程、充电标准和速度、价格、产地、自主水平、排放、安全等级、销售和保修。 时间跨度:模型跨度多年(包括传统和即将推出的)。 数据质量说明: 某些行可能缺少某些字段(空白)。 几个分类字段包含不同的、特定于供应商的值(例如,Charging_Type、Battery_Type)。 各列中的单位混合在一起;注意kWh、km、hr、USD、g/km和额定值。 列 列类型描述示例 Vehicle_ID整数每个车辆记录的唯一标识符。1 制造商分类汽车品牌或OEM。特斯拉 型号类别特定型号名称/变体。型号Y 与记录关联的年份整数模型。2024 电池_类型分类使用的电池化/技术。磷酸铁锂 Battery_Capacity_kWh浮充电池标称容量,单位为千瓦时。75.0 Range_km整数表示充满电后的行驶里程(公里)。505 充电类型主要充电接口或功能。CCS、NACS、CHAdeMO、DCFC、V2G、V2H、V2L Charge_Time_hr浮动充电的大致时间(小时),上下文因充电方法而异。7.5 价格_USD浮动参考车辆价格(美元).85000.00 颜色类别主要外观颜色或饰面。午夜黑 制造国_制造类别车辆制造/组装的国家。美国 Autonomous_Level浮点自动化能力级别(例如0-5),可能包括子级别的小
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值