【白嫖】学习Servlet入门就是这么简单

RouterOS网桥VLAN实战:从零构建安全隔离的二层虚拟网络 本文详细讲解了如何在RouterOS上利用网桥和VLAN功能,从零开始构建安全隔离的二层虚拟网络。通过分步实战演示,涵盖核心概念、网桥创建、PVID设置、VLAN规则配置及安全过滤,帮助网络管理员实现办公、访客与服务器网络的逻辑隔离与灵活管理,提升网络安全性。 阅读详情

1.什么是Servlet?

Servlet其实就是一个遵循Servlet开发的java类。Servlet是由服务器调用的,运行在服务器端。

2.为什么要用到Servlet?

我们编写java程序想要在网上实现 聊天、发帖、这样一些的交互功能,普通的java技术是非常难完成的。sun公司就提供了Servlet这种技术供我们使用。

3.HTTP协议

3.1什么是HTPP协议

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。它是TCP/IP协议的一个应用层协议

简单来说,HTTP协议就是客户端和服务器交互的一种通迅的格式。

例子:在浏览器点击一个链接,浏览器就为我打开这个链接的网页。

原理:当在浏览器中点击这个链接的时候,浏览器会向服务器发送一段文本,**告诉服务器请求打开的是哪一个网页。服务器收到请求后,就返回一段文本给浏览器,浏览器会将该文本解析,然后显示出来。**这段文本就是遵循HTTP协议规范的。

3.2HTTP1.0和HTTP1.1的区别

HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源【短连接,获取资源后就断开连接】

HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源【保持连接】

3.3HTTP请求

浏览器向服务器请求某个web资源时,称之为浏览器向服务器发送了一个http请求。

一个完整http请求应该包含三个部分:

  1. 请求行【描述客户端的请求方式、请求的资源名称,以及使用的HTTP协议版本号】
  2. 多个消息头【描述客户端请求哪台主机,以及客户端的一些环境信息等】
  3. 一个空行
3.3.1请求行

请求行:GET /java.html HTTP/1.1

请求行中的GET称之为请求方式,请求方式有:POST,GET,HEAD,OPTIONS,DELETE,TRACE,PUT。

常用的有:POST,GET

一般来说,当我们点击超链接,通过地址栏访问都是get请求方式。通过表单提交的数据一般是post方式。

可以简单理解GET方式用来查询数据,POST方式用来提交数据,get的提交速度比post快

GET方式:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。

POST方式:可以在请求的实体内容中向服务器发送数据,传送的数据量无限制。

3.3.2请求头
  • Accept: text/html,image/* 【浏览器告诉服务器,它支持的数据类型】
  • Accept-Charset: ISO-8859-1 【浏览器告诉服务器,它支持哪种字符集】
  • Accept-Encoding: gzip,compress 【浏览器告诉服务器,它支持的压缩格式】
  • Accept-Language: en-us,zh-cn 【浏览器告诉服务器,它的语言环境】
  • Host: www.it315.org:80【浏览器告诉服务器,它的想访问哪台主机】
  • If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT【浏览器告诉服务器,缓存数据的时间】
  • Referer: http://www.it315.org/index.jsp【浏览器告诉服务器,客户机是从那个页面来的—反盗链】
  • 8.User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)【浏览器告诉服务器,浏览器的内核是什么】
  • Cookie【浏览器告诉服务器,带来的Cookie是什么】
  • Connection: close/Keep-Alive 【浏览器告诉服务器,请求完后是断开链接还是保持链接】
  • Date: Tue, 11 Jul 2000 18:23:51 GMT【浏览器告诉服务器,请求的时间】

3.4HTTP响应

一个HTTP响应代表着服务器向浏览器回送数据

一个完整的HTTP响应应该包含四个部分:

  1. 一个状态行【用于描述服务器对请求的处理结果。】
  2. 多个消息头【用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据】
  3. 一个空行
  4. 实体内容【服务器向客户端回送的数据】
3.4.1状态行

格式: HTTP版本号 状态码 原因叙述

状态行:HTTP/1.1 200 OK

状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数。响应状态码分为5类

3.4.2响应头
  • Location: http://www.it315.org/index.jsp 【服务器告诉浏览器要跳转到哪个页面】
  • Server:apache tomcat【服务器告诉浏览器,服务器的型号是什么】
  • Content-Encoding: gzip 【服务器告诉浏览器数据压缩的格式】
  • Content-Length: 80 【服务器告诉浏览器回送数据的长度】
  • Content-Language: zh-cn 【服务器告诉浏览器,服务器的语言环境】
  • Content-Type: text/html; charset=GB2312 【服务器告诉浏览器,回送数据的类型】
  • Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT【服务器告诉浏览器该资源上次更新时间】
  • Refresh: 1;url=http://www.it315.org【服务器告诉浏览器要定时刷新】
  • Content-Disposition: attachment; filename=aaa.zip【服务器告诉浏览器以下载方式打开数据】
  • Transfer-Encoding: chunked 【服务器告诉浏览器数据以分块方式回送】
  • Set-Cookie:SS=Q0=5Lb_nQ; path=/search【服务器告诉浏览器要保存Cookie】
  • Expires: -1【服务器告诉浏览器不要设置缓存】
  • Cache-Control: no-cache 【服务器告诉浏览器不要设置缓存】
  • Pragma: no-cache 【服务器告诉浏览器不要设置缓存】
  • Connection: close/Keep-Alive 【服务器告诉浏览器连接方式】
  • Date: Tue, 11 Jul 2000 18:23:51 GMT【服务器告诉浏览器回送数据的时间】

4.JAVAWEB目录结构

以上图说明:

  • bbs目录代表一个web应用
  • bbs目录下的html,jsp文件可以直接被浏览器访问
  • WEB-INF目录下的资源是不能直接被浏览器访问的
  • web.xml文件是web程序的主要配置文件
  • 所有的classes文件都放在classes目录下
  • jar文件放在lib目录下

5.实现Servlet接口编写Servlet程序

程序我都是由idea下写,首先要在idea上配置Tomcat,在我别的博文中有教程!

5.1编写Servlet程序的步骤

创建一个自定义类,实现Servlet接口

我们发现有5个方法需要重写,有init【初始化】,destroy【销毁】,service【服务】,ServletConfig【Servlet配置】,getServletInfo【Servlet信息】。

在此一看,发现service()方法是最有可能是写逻辑代码的地方。

首先写一个hellword入门先,调用ServletResponse对象的方法向浏览器输出HelloWorld

配置xml文件,光写了Servlet是不行的,Tomcat还要知道浏览器怎么访问这个Servlet。

访问自己写的Servlet程序

6.Servlet生命周期

下面我们看看Servlet的生命周期

第一次访问Servlet,我们发现init()和service()都被调用了

第二次访问Servlet,service()被调用了

第三次访问Servlet,还是service()被调用了

当我们关闭Tomcat服务器的时候,destroy()被调用了!

6.1Servlet生命周期可分为5个步骤

  1. 加载Servlet。当Tomcat第一次访问Servlet的时候,Tomcat会负责创建Servlet的实例
  2. 初始化。当Servlet被实例化后,Tomcat会调用init()方法初始化这个对象
  3. 处理服务。当浏览器访问Servlet的时候,Servlet 会调用service()方法处理请求
  4. 销毁。当Tomcat关闭时或者检测到Servlet要从Tomcat删除的时候会自动调用destroy()方法,让该实例释放掉所占的资源。一个Servlet如果长时间不被使用的话,也会被Tomcat自动销毁
  5. 卸载。当Servlet调用完destroy()方法后,等待垃圾回收。如果有需要再次使用这个Servlet,会重新调用init()方法进行初始化操作。

简单总结:只要访问Servlet,service()就会被调用。init()只有第一次访问Servlet的时候才会被调用。
destroy()只有在Tomcat关闭的时候才会被调用。

7.继承HttpServlet编写Servlet程序

在上面我们实现Servlet接口,要实现5个方法。这样太麻烦了!而HttpServlet类已经实现了Servlet接口的所有方法,编写Servlet时,只需要继承HttpServlet,重写你需要的方法即可,并且它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大。

  • 一般我们开发的时候,都是重写doGet()和doPost()方法的。对于idea而言,创建Servlet的时候已经帮你重写好了


img

涵盖Java后端所有知识点的开源项目(已有6 K star):https://github.com/ZhongFuCheng3y/3y

如果大家想要实时关注我更新的文章以及分享的干货的话,微信搜索Java3y。

PDF文档的内容均为手打,有任何的不懂都可以直接来问我(公众号有我的联系方式)。

【四足机器人项目实战】MIT四足机器人力控电机优劣分析及解决办法 系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、mit力控电机方案二、弊端三、优点四、解决办法设计相关看专栏其他博客 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对XXX做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、mit力控电机方案 MITCheetahMini驱动器采用的电机是类似于公版电机T-MotorU8的型号 阅读详情

相关推荐

给宇树Go2机器人装‘眼睛’:在Jetson Orin Nano上从零部署YOLOv5的保姆级避坑实录

本文详细介绍了在Jetson Orin Nano上为宇树Go2机器人部署YOLOv5视觉系统的完整流程,涵盖硬件选型、环境配置、模型优化及系统集成等关键步骤。针对机器人应用场景特有的离线部署、版本冲突和实时推理等挑战,提供了实用的解决方案和性能优化技巧,帮助开发者快速实现机器人的视觉能力升级。

weixin_29169505的博客 378

单击超链接如何转入到servlet

现在我希望如果我在jsp页面中点击任何一个超链接,它应该转到servlet,并且能够得出我要进行的是什么操作(显示,增加数据等等),在这个servlet中再调用新的操作。

qq_63431573的博客 524

ArcGIS高效拆分shp文件:无需依赖属性表的实用技巧

本文针对ArcGIS中shp文件因属性表缺失而难以拆分的问题,详细介绍了无需依赖属性表的实用技巧。核心是使用“拆分多部件要素”工具,直接根据图形结构将多个独立但被合并的部件拆分为单个要素,并提供了ArcGIS Pro和ArcMap的操作流程、关键注意事项及拆分后的属性处理方案。

n2o3p4的博客 378

访问servlet的过程

假如客户机访问的是一个servlet。 1.当客户端第一次访问该servlet时,服务器创建这个servlet实例对象; 2.紧接着调用servlet的init方法完成这个servlet对象的初始化; 3.服务器创建代表请求的request对象,和代表响应的response对象,调用servlet的service方法,响应客户端请求; 4.service方法执行,向代表响应的response对象中写入将要回送给浏览器的数据。 5.服务器从response对象中取出相应的数据,构建一个http响应,回写给客户

纪念 1236

深入剖析一个卷积块(ConvBlock)

深入剖析一个卷积块(ConvBlock)

qq_45670407的博客 1926

SystemRDL:从寄存器描述到自动化生成的完整指南

本文详细介绍了SystemRDL如何通过“一份描述,多处生成”的理念,彻底解决芯片与FPGA设计中手动维护寄存器带来的不一致与低效问题。文章提供了从语言快速上手、核心组件讲解到使用PeakRDL工具链实现自动化代码与文档生成的完整实战指南,帮助硬件工程师构建高效、可靠的寄存器开发流程。

weixin_29243279的博客 659

Servlet基础

Servlet 一、概念:运行在服务器端的小程序 二、特点: Servlet就是一个接口,定义了Java类被浏览器访问(tomcat识别)到的规则 自定义一个类,实现Servlet接口,重写方法。这个类就可以被tomcat识别 三、快速入门 1.创建JavaEE项目 2.定义一个类,实现Servlet接口 3.实现接口中的抽象方法 import javax.servlet.*; import...

qq_41870790的博客 202

瑞芯微RK3588/RK3576平台采集BT1120(fpga)驱动调试记录

本文介绍了在RK3576/RK3588平台上采集FPGA传输的BT1120数据的方法。主要内容包括:1)硬件连接需确认管脚复用和图像格式(通常为uyvy_2x8);2)设备树配置要点,如I2C总线设置、BT1120模式指定等;3)驱动适配注意事项,包括时钟极性、分辨率格式等关键参数;4)测试方法,通过media-ctl和v4l2-ctl工具验证数据采集。文中特别指出RK3576和RK3588配置的通用性,并提供了常见问题的排查思路。

bingdund的博客 916

IDEA 要花钱?这几招让你“白嫖”也能用上 IDEA

而且是官方认可的方式。IDEA Ultimate 提供 30 天免费试用,很多人靠“换邮箱+清理缓存”曲线延长试用期(不推荐长期这么干,太麻烦)。JetBrains 不定期会搞活动,比如程序员节(10 月 24 日)、黑五、双 11,会送试用或折扣。:不支持企业级功能,比如 Spring 全家桶、数据库工具、代码分析等。正版旗舰版一年要好几百块,对于刚入行的同学来说,确实有点肉疼。也是免费使用的,不过是测试版,可能有 bug。审核通过后,官方会直接给你一个免费的许可证。:只想体验旗舰版功能,短期使用的人。

yellowCodeRabbit的博客 3454

极验验证码: 一点即过验证(鼠标轨迹分析)

2、第一个验证接口分析(第一个w值还原) 3、第二个验证接口(第二个w值还原)这里定位w生成跟上篇文章一样,就不展开了;主要分析tt值(鼠标轨迹)的生成逻辑

qq_49268524的博客 1009

SAP 针对不同行业(制造业、零售业、金融业)推出了专属的云解决方案,以下是各行业的核心方案与特点

SAP推出行业专属云解决方案:制造业(SAP Digital Manufacturing Cloud)提供AI排产与质量预警,降低缺陷率;零售业(S/4HANA Cloud零售版)实现AI预测补货与全渠道库存同步,减少浪费;金融业(Business ByDesign)支持合规自动化与实时风控,降低审计成本。各方案均采用云原生架构,典型案例显示实施效果显著。

金牌架构师 492

刚刚,IDEA 免费版发布!终于不用破解了

JetBrains发布IntelliJ IDEA 2025.3统一版本,将免费版和付费版合并为单一产品。核心功能永久免费,包括Java/Kotlin开发、Spring框架支持等,高级功能提供30天试用后降级为免费模式。此次升级旨在应对VS Code等免费工具的竞争,新增AI集成、数据库工具优化等功能。用户可通过Toolbox App一键升级,旧版用户可无缝迁移。社区反响热烈,认为此举使IDE更亲民,但部分用户仍期待更低付费门槛。JetBrains表示未来将进一步开源,持续优化产品体验。

likuoelie的博客 1万+

后仿真中的关于延时问题(物理特性角度)

大家都知道,后仿真讲究仿真时序。那么,在网表阶段,接触到后仿延时问题。今天总结一下。

那么菜的博客 1772

2024年最全你怎么设计一个线程安全的Servlet?(2),白嫖党最爱

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。这样的代价就是等待时间更长了,参考火车上的的卫生间,这就是同步锁。

2401_84520377的博客 477

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【白嫖】Tomcat入门就这一篇了

进来白嫖Servlet+Tomcat 原创PDF,必须干货

3y 3007

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Servlet实例数量到底多少,是否线程安全

对于非分布式(默认)的 servlet,servlet 容器对于每个 Servlet 声明必须且只能产生一个实例。但若 Servlet 实现了 SingleThreadModel 接口,servlet 容器可选择实例化多个实例以便:处理高负荷请求或串行化请求到一个特定实例若 servlet 部署分布式环境,容器可为每个JVM的每个 Servlet 声明产生一个实例。

2401_84281629的博客 638

Jsp+Servlet+tomcat实现简单的登录验证码案例

首先声明这个案例是我白嫖的,但是嫖到一半发现代码不全,所以就自己就完善了案例代码!希望后续的小狐伴们不要碰到这个坑!!! 话不多说先看效果图: 这是登录首页:(这个案例其实很简陋,但是为了和你们分享,首页我还是花了一段时间修改的!) 这是登录成功后的界面: 说实话真的很丑!!!但是别急,作为java后台人员我们不追求这个,我们追求的是技术,是可以买到面包和爱情的技术!来看下面的案例代码结构!! 上面是实现怎个案例的所有文件,本来应该按照MVC的框架放包的,但是怕和我一样的...

weixin_41098116的博客 1347

Servlet的几个常见错误

最近学了servlet的几个最基本的点 ,啊!!! 真的很容易犯错 ,下面就记录一些因为servlet导致的错误 一.web.xml标签没拷 众所周知 ,我们每定义一个servlet的时候 , 就会在web.xml中生成一个对应的标签 , 然而当你直接白嫖别人的servlet的时候…往往会忘记拷贝其中的web.xml ,这就会导致出现????(白嫖同学一个图) 二.服务器没开或者没清缓存 这就不多说的 三.为什么我的查询界面查不出我的数据 咳咳 ,建议在后台输出一些自己的SQL语句 ,观察观察你的where

qq_45596525的博客 359

手把手教你正确地创建一个Servlet项目

教你完美地创建Servlet项目, 想出错都难.

蔡欣致的个人博客 6492

网络安全最新你能证明Servlet线程不安全吗?,真正带你搞懂RecyclerView的缓存机制

在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

2401_84301352的博客 1025

解决IDEA+Tomcat+Servlet访问网站 实例化Servlet类异常的问题

今天在复习Servle的时候遇到了一个 实例化Servlet类异常 问题,在网上找了很久的博客,最终找到一个解决方式。 问题如下: 在项目中的 iml 下把这段代码删了,结果完美运行(感动中国!) 我也不知道为啥删了就行,总之能跑的代码就是好代码! 切勿白嫖! ...

qq_51978342的博客 1873

基于JSP和Servlet的学籍管理系统(源码+lw+部署文档+讲解),源码可白嫖!

当前,21新世纪,人们已经进入了信息时代,人们获取信息的方式大大增加,摆脱了传统的报纸、电视、广播等媒体,而是从各种网络、自媒体平台上获取信息,这就导致日常生活中产生的数据信息十分巨大,尤其是对于学籍档案的管理,更需要大量的信息。系统开发的意义主要在于两个方面,一方面,系统上线后,能够为学籍管理系统管理带来很大便利,学籍管理系统管理涉及的数据量较大,要求精度高,采用计算机系统能够很好满足此需求,并且随着目前电脑、手机的普及,方便用户的使用。取其精华,使得它的功能更加强大,且十分简洁。学籍管理员功能界面图。

weixin_47179923的博客 773

白嫖党最爱!java中break跳出多层循环

害怕干不过SpringBoot?莫慌,我送你套神级pdf文档 随着 Spring Boot 使用越来越广泛,Spring Boot 已经成为 Java 程序员面试的知识点,很多同学对 Spring Boot 理解不是那么深刻,经常就会被几个连环追问就给干趴下了! 今天小编就给大家整理了全套SpringBoot“神级PDF文档”: 面试篇:35常见知识点、21道必刷题、10个高频解析题 知识脑图篇:综合解析SpringBoot知识大全预览 进阶学习必备篇:《SpringBoot学习教程》、《深入

m0_57285455的博客 331

Servlet生命周期和线程安全

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。🍊个人信条:不迁怒,不贰过。小知识,大智慧。🥭本文内容:Servlet生命周期和线程安全更多内容点击👇。

2401_84253380的博客 1071

Spring MVC入门——day01

文章目录Spring MVC1、回顾MVC架构1.1 什么是MVC1.2 Model1时代1.3 Model2时代1.4 回顾ServletMVVM扫盲2、什么是SpringMVC2.1 概述2.2 中心控制器2.3 SpringMVC执行原理 Spring MVC 参考视频:B站狂神,写这个只是方便个人复习,怎么写是我自己的事,我能看懂就行,没要求非要让你看!白嫖还挑刺,是很没有风度的事情。希望做个有风度的“五好青年”! 1、回顾MVC架构 1.1 什么是MVC MVC 设计不仅限于 Java

杨丙寅 2353

自学Java如何正确入门?

我们必须先了解目前市场都是需要学习什么技术,你所学的知识要有用武之地才行,紧贴时代的前沿。

一名很普通的互联网打工人 333

2024年网络安全最全你能证明Servlet线程不安全吗?(2),2024年最新成功入职字节跳动

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察。

2401_84265972的博客 1032
上一篇: 【白嫖】Tomcat入门就这一篇了
下一篇: 阿里面试官不推荐我学JSP
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值