第十八天servlet、HTTP、Request

HTTP协议及Servlet详解 HTTP(HyperText Transfer Protocol),超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个基于请求与响应模式的、无状态的、应用层的协议,运行于TCP协议基础之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。在Servlet体系结构中,除了第三节中讲的实现Servlet接口,还可以通过继承GenericServlet或HttpServlet类,完成自定义Servlet的编写。 阅读详情

1.生命周期

  1. 默认的servlet
    当第一次访问时初始化init()
  2. 自定义初始化
    在配置文件中<servlet>标签中
    <load-on-startup>值</load-on-startup>
    值为正数,服务器启动执行init()(自定义)
    值为正数,服务器启动,且servlet被调用时执行init()(默认)

2.注解@WebServlet

用注解去配置servlet

public @interface WebServlet {
    String name() default "";

    String[] value() default {};

    String[] urlPatterns() default {};//请求路径,可配置多个

    int loadOnStartup() default -1;//初始化时间

    WebInitParam[] initParams() default {};

    boolean asyncSupported() default false;

    String smallIcon() default "";

    String largeIcon() default "";

    String description() default "";

    String displayName() default "";
}

3.idea与tomcat的相关配置

  1. 每个项目都有一个配置文件
    Using CATALINA_BASE: “C:\Users\曾大爷.IntelliJIdea2019.3\system\tomcat_day01”

4.servlet的实现类

  1. Gender Servlet
    对Servlet进行简化,继承该类只需要实现service方法
  2. HTTPServlet
    主要对请求方式进行分析,继承该类复写doGet、doPost方法

5.HTTP协议

  1. 请求行
    两种请求方式get、set
    (GET /login.html 请求协议/版本)
  2. 请求头
    请求头名称: 请求头值
    常见的请求头
    User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息
    Referer:http://localhost/login.html
    告诉服务器,我(当前请求)从哪里来?
  3. 请求空行
    空行,就是用于分割POST请求的请求头,和请求体的。
  4. 请求体(正文):
    封装POST请求消息的请求参数的

字符串格式:
POST /login.html HTTP/1.1 ////////////请求行////////////////
Host: localhost /////////////请求头信息,地址信息//////////////
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://localhost/login.html ////////////请求来源////////
Connection: keep-alive
Upgrade-Insecure-Requests: 1
空行
username=zhangsan

6.Request

6.1 request功能

  1. 获取请求行数据
    getMethod()获取请求方式
    getContextPath()获取虚拟目录
    getServletPath()获取Servlet路径
    getQueryString()获取get方式请求参数
    getRequestURI()获取请求URI
    getProtocol()获取协议及版本
    getRemoteAddr()获取客户机的IP地址
  2. 获取请求头数据
    getHeader(String name):通过请求头的名称获取请求头的值
    getHeaderNames():获取所有的请求头名称
  3. 获取请求体数据
    只有POST请求方式,才有请求体
    getReader()获取字符输入流,只能操作字符数据
    getInputStream():获取字节输入流,可以操作所有类型数据

6.2 request其他功能

  1. 获取请求参数通用方式
    getParameter(String name):根据参数名称获取参数值
    getParameterValues(String name):根据参数名称获取参数值的数组
    getParameterNames():获取所有请求的参数名称
    getParameterMap():获取所有参数的map集合
    request.setCharacterEncoding(“utf-8”);编码问题
  2. 请求转发:一种在服务器内部的资源跳转方式
    第一步,通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)
    第二步,使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response)
  3. 共享数据
    域对象:一个有作用范围的对象,可以在范围内共享数据
    request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
    方法:
    void setAttribute(String name,Object obj):存储数据
    Object getAttitude(String name):通过键获取值
    void removeAttribute(String name):通过键移除键值对
  4. 获取ServletContext:
    ServletContext getServletContext()

servlet特点

1.单例

【Servlet篇】一文带你读懂Request对象 最近一直在更新 Servlet 的文章,在前面一篇中说到 sevice() 方法由 Servlet 容器调用执行,而该方法中有两个重要的参数,分别是 Request 对象和 Response 对象,下面我们就来探讨这两个参数究竟有何作用。 阅读详情

相关推荐

UE5.3与Colosseum配置实战:从编译到问题解决的全流程指南

本文提供了在Windows系统下配置UE5.3与Colosseum仿真环境的全流程实战指南。详细介绍了从软件版本选择、源代码获取、编译脚本执行到解决常见编译错误和引擎崩溃问题的具体步骤,旨在帮助开发者高效搭建无人机、机器人等仿真平台,并顺利运行外部API控制。

weixin_29002595的博客 557

Servlet HTTP协议 Request 学习

Servlet: 1. 概念 2. 步骤 3. 执行原理 4. 生命周期 5. Servlet3.0 注解配置 6. Servlet的体系结构 Servlet -- 接口 | GenericServlet -- 抽象类 | HttpServlet -- 抽象类 * GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象...

qq_43512502的博客 129

STM32学习笔记 二、基于STM32F103C8T6和STM32CubeMX实现UART串口通信数据收发

系列文章目录 一、基于STM32F103C8T6最小系统板和STM32CubeMX实现LED灯循环闪烁 文章目录系列文章目录前言一、配置CubeMX二、逻辑代码部分 前言 这次我用的板子是一个用STM32F103C8T6作为主控芯片的一个数据采集卡,两个LED灯连接的引脚是PB3与PB4,TX与RX引脚分别是PA9和PA10。 一、配置CubeMX 1、新建工程; 2、配置时钟源,在RCC里面的HSE配置的是晶振时钟; 3、配置程序烧录引脚SYS为SWD模式; 4、配置GPIO口,配置一个LE

遗忘丶的博客 1万+

Servlet、HTTP、Request相关知识详解

文章目录请求响应理解图ServletHTTP概念特点:请求消息数据格式1. 请求行2. 请求头3. 请求空行4. 请求体(正文):Request1. request对象和response对象的原理2. request对象继承体系结构3. request功能1. 获取请求消息数据2. 获取请求头数据3. 获取请求体数据中文乱码问题请求转发概念步骤特点共享数据 请求响应理解图 Servlet 概念(前面已经讲解) 步骤(前面已经讲解) 执行原理(前面已经讲解) 生命周期(前面已经讲解) .

一天不看代码浑身难受 1058

YOLO11实战 第056期-基于yolo11的无人机航拍铁路障碍物检测实战-数据集&源码&系统

召回率曲线帮助评估模型在目标检测任务中,检测到真正目标的能力。通过这条曲线,可以评估模型在目标检测任务中的整体性能,并找到合适的置信度阈值,以在精确率和召回率之间做出最佳平衡。PR曲线越接近右上角,模型性能越好,曲线下方的面积越大,说明模型在不同置信度下的。这条曲线显示了随着置信度的增加,每个类别的召回率先变化较小,然后在某个点之后迅速下降。通过这条曲线,可以选择合适的置信度阈值,以优化模型的检测结果,平衡精确率和召回率。曲线都显示了随着召回率的增加,精确度略有下降的趋势,但整体上精确度保持在很高的水平。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 159

3D Slicer肺部CT病灶体积测量:阈值法实操全流程

在医学影像分析中,病灶体积的精准测量是肿瘤评估、疗效随访和科研统计的重要基础。传统逐层手动勾画不仅耗时,且主观差异大,而基于CT值的阈值分割技术,通过设定灰度区间自动提取目标体素,能够快速生成三维分割结果,具有高效、可重复、边界标准统一的优势,尤其适用于肺部实性结节这类与周围肺实质对比度高的病灶。理解体素与CT值的关系,掌握阈值范围的设定逻辑,并配合连通域分析、边缘修正等工程化操作,即可在3D Slicer中稳定获得可靠的体积数据。本文从技术原理出发,系统梳理了DICOM导入、窗宽窗位调节、阈值选择、三维重

weixin_29050271的博客 252

Servlet、HTTP协议、Request

Servlet、HTTP协议、Request一、Servlet1、概念2、步骤3、执行原理4、生命周期5、Servlet3.0 注解配置6、Servlet的体系结构1.GenericServlet2.HttpServlet3.Servlet相关配置2、HTTP1、概念2、特点3、历史版本4、请求消息数据格式1、请求行2、请求头3、请求空行3、请求体(正文)5、响应消息数据格式1、响应行2、响应头3、响应空行4、响应体3、Request:1、request对象和response对象的原理2、request对象

Louie_min的博客 287

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月4日试卷一)【文末附答案和解析】

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月4日试卷一)【文末附答案和解析】

王老师青少年编程 1739

Servlet HTTP Request学习

Servlet Servlet 体系结构 Servlet – 接口 | GenericServlet – 抽象类 | HttpServlet – 抽象类 当我们实现了Servlet接口的时候,我们要实现他里面的方法。但是,如果我们只是想实现他里面的service()方法的时候,我们可以继承GenericServlet这个抽象类。 当我们点击查看GenericServlet时,会发现里面类的构成。除了service()其他的抽象方法,系该类都给你实现了。 经过测试发现可以达到要求。 故,以后可以尽量使用

weixin_46008168的博客 325

【UML】第12篇 序列图(1/2)——基本概念和构成

序列图(Sequence Diagram)是一种用于显示对象之间交互的图形化表示。它描述了在特定场景下,对象之间按照时间顺序进行的消息传递和协作过程。在序列图中,对象被表示为带有垂直虚线的矩形,虚线表示对象的生命周期。对象之间的交互通过箭头表示的消息来表示,箭头从一个对象的生命线指向另一个对象的生命线,表示消息的发送和接收。

AI人人懂 3051

Python OpenCV教程从入门到精通的全面指南【文末送书】

全书共分为16章,包括Python与OpenCV、搭建开发环境、图像处理的基本操作、像素的操作、色彩空间与通道、绘制图形和文字、图像的几何变换、图像的阈值处理、图像的运算、模板匹配、滤波器、腐蚀与膨胀、图形检测、视频处理、人脸检测和人脸识别以及MR智能视频打卡系统。主流技术,全面覆盖:本书内容丰富,涵盖了Open CV图像处理技术的方方面面,如图像的几何变换、阈值处理、图像运算、模板匹配、滤波器、腐蚀与膨胀、图形检测、视频处理、人脸检测和人脸识别等。此外,通过对比原图,可更直观地看到图像经过处理后的效果。

一键难忘的博客 9075

Servlet系列(二) Servlet和HTTP request

Servlet 和 HTTP request一、Servlet回顾1. Servlet继承关系GenericServletHttpServlet2. Servlet访问路径配置二、HTTP协议1. HTTP简介a. 定义b. HTTP版本2. HTTP报文格式a. HTTP请求报文b. HTTP响应报文3. HTTP请求a. 请求行GETPOSTb. 请求头c. 请求空行d. 请求体(正文)4. HTTP响应三、Request对象和Response1. Request和Response对象的原理2. Req

u013009552的博客 354

【Unity】【WebRTC】如何用Unity而不是浏览器接收远程画面

之前几篇我们讨论了如何设置信令服务器,如何发送画面给远端以及如何用浏览器查看同步画面,今天来讨论如何实现Unity内部接收画面。看本篇之前请先看过之前将web服务器设置和基本远程画面功能的几篇博文。在Unity编辑器中打开一个示例项目,点击BroadCast按钮。4. 再点击Receiver按钮,Start。Build一个示例项目,并运行这个项目。启动Web.app。

每日出拳老爷子的博客 1722

Servlet—HTTP—Request

request对象和response对象的原理 request和response对象是由服务器创建的,用来给我们使用。 request对象是来获取请求消息,response对象是来设置响应消息。 执行原理 Tomcat服务器会根据请求url中的资源路径,创建对应的ServletDemo1的对象。 Tomcat服务器会创建request和response对象,request对象中封装请求消息的数据。 Tomcat服务器将request和response两个对象传递给service方法,并且调用serv

249

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

用Python实现DoIP客户端:从零搭建ISO 13400诊断工具

车载以太网正逐步取代传统CAN总线,成为新一代汽车诊断的核心通道,而DoIP(Diagnostic over IP)作为基于TCP/IP的诊断协议,遵循ISO 13400标准,使得工程师可以用普通PC和网线直接与ECU通信。其底层承载的UDS(ISO 14229)诊断服务,让读取DID、安全访问、DTC采集等操作变得标准化。理解DoIP报文结构、路由激活流程以及UDS请求响应机制,是开发自动化诊断脚本的基础。本文从协议原理入手,结合Python socket编程实践,展示如何用标准库构建一个轻量级DoIP客

weixin_34167819的博客 444

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

JavaWeb中servlet、http、request详解【史上最全】

内容: 1. Servlet 2. HTTP协议 3. Request Servlet: 1. 概念 2. 步骤 3. 执行原理 4. 生命周期 5. Servlet3.0 注解配置 *以上查看[https://blog.youkuaiyun.com/qq_43531919/article/details/107955080] 7. Servlet的体系结构 Servlet -- 接口 | GenericServlet -- 抽象类 | HttpServlet -- 抽象类 * Generic

qq_43531919的博客 644

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Servlet HTTP协议 Request

Servlet: 1. 概念 2. 步骤 3. 执行原理 4. 生命周期 5. Servlet3.0 注解配置 6. Servlet的体系结构 Servlet -- 接口 | GenericServlet -- 抽象类 | HttpServlet -- 抽象类 * GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象...

攻城狮 298

关于Servlet、HTTP协议、Request

## Servlet: 1. 概念 2. 步骤 3. 执行原理 4. 生命周期 5. Servlet3.0 注解配置 6. Servlet的体系结构 Servlet -- 接口 | GenericServlet -- 抽象类 | HttpServlet -- 抽象类 * GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象 * 将来定义Servlet类时,可以继承GenericServlet,实现service()..

m0_56442091的博客 299

Servlet技术——request、respone详解

Servlet之request、respone详解 Request (一) 概述 request是Servlet.service()方法的一个参数,在客户端发出每个请求时,服务器都会创建一个request对象,并把请求数据封装到request中,然后在调用Servlet.service()方法时传递给service()方法 HttpServletRequest对象代表客户端的请求,当客户端通过H...

理想二旬不止 - 专注JAVA技术 3384

HTTP协议和Servlet编程

HTTP协议 本文是基于Windows 10系统环境,学习和使用HTTP协议: Windows 10 MyEclipse 10 一、 HTTP协议的基本概念 (1) HTTP协议的定义 对浏览器客户端和服务器端之间数据传输的格式规范 (2) request的内容 request请求(浏览器->服务器) GET /day09/hello HTTP/1.1 # 请求行(请求方式:U...

哈工大许政的博客 1万+

Servlet、HTTP协议、Request总结

Servlet: 1. 概念 2. 步骤 3. 执行原理 4. 生命周期 5. Servlet3.0 注解配置 6. Servlet的体系结构 Servlet -- 接口 | GenericServlet -- 抽象类 | HttpServlet -- 抽象类 * GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象...

Biubiubiu! 168

1. Servlet 2. HTTP协议 3. Request

内容: 1. Servlet 2. HTTP协议 3. Request Servlet: 1. 概念 2. 步骤 3. 执行原理 4. 生命周期 5. Servlet3.0 注解配置 6. Servlet的体系结构 Servlet -- 接口 | GenericServlet -- 抽象类 | HttpServlet -- 抽象类 * GenericServlet:将Ser...

weixin_45022071的博客 375

Servlet.http.request

servlet 概念:servlet就是一个接口,定义了java类被浏览器访问到的规则.自定义一个类,实现servlet接口 执行原理: 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径 查找web.xml文件,是否有对应的标签体内容。 如果有,则在找到对应的全类名 tomcat会将字节码文件加载进内存,并且创建其对象 调用其方法 Servlet的生命周期方法: 被创建:执行init方法,只执行一次 Servlet什么时候被创建? 默认情况下

java_juxiang的博客 233

Servlet学习(2)-HTTP和Request

Servlet学习HTTP部分内容和Request的相关内容,但是还有部分还没深入

半束海棠的博客 873

Servlet和HTTP以及Request技能

JavaWeb相关知识 Servlet Http协议 Request Servlet 概念 步骤 执行原理 生命周期 Servlet3.0 注解配置 Servlet的体系结构 Servlet – 接口 | GenericServlet – 抽象类 GenericServlet : 将Servlet接口中其他的方法做了默认空实现,直将service()方法作为抽象 将来定义Servlet类...

笑三年-Dylen 209
上一篇: 第十七天XML(可扩展标记语言)基础
下一篇: 第十八天JSP
RestartJava
博客等级 码龄7年 1粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值