web04Servlet请求详解

04-Servlet-体系结构 Servlet是JavaEE技术中的一种组件,它是运行在服务器端的Java类,用于处理来自客户端的请求并生成相应的响应。 阅读详情

*一个请求服务器创建一个servlet处理请求会很消耗资源:

想办法是多个请求到达同一个servlet让该servlet做请求转发.

<servlet-name>action</servlet-name>

<servlet-class>ActionServlet</servlet-class>



通过通配符的方式使多个请求到达同一个url-pattern减少配置量.

web.xml中url-pattern的统配符匹配方式:

1>精确匹配:

<url-pattern>/addEmp</url-pattern>


2>前缀匹配:(使用最多分模块)

<url-pattern>/user/*</url-pattern>

<url-pattern>/flight/*</url-pattern>

可以被拦截:

http://localhost:8080/web04/user/login

http://localhost:8080/web04/user/user/login

不可被拦截:

http://localhost:8080/web04/admin/user/login

3>后缀匹配:

前面不能有 / 

<url-pattern>*.do</url-pattern>

<url-pattern>*.php</url-pattern

<url-pattern>*.htm</url-pattern>


http://localhost:8080/web04/user/login不可匹配

http://localhost:8080/web04/user/user/login.do可以匹配


问题:

<url-pattern>*.html</url-pattern>和静态页面谁会被返回

浏览器发送一个请求首先tomcat拦截,然后去web.xml中匹配,看下有没有url-pattern的配置

若找不到就去部署目录中找静态文件,若找不到404异常.

http://localhost:8080/web04/day09.zip  浏览器若无法解析则弹出下载框下载.


4>完全模糊匹配:

<url-pattern>/*</url-pattern>(过滤器使用)



在servlet中想办法根据不同的url,手动做请求分发.

request.getRequestURI();String 

request.getRequestURL();StringBuffer 



servlet生命周期(一般不是自己创建的东西有生命周期)

生命周期指:对象的创建到消亡的过程

4个阶段:

1>对象创建:

谁创建了Servlet对象? 什么时候创建的.

tomcat(web容器)创建,

默认情况下载第一次请求到来的时候创建,若请求再次到达该servlet Tomcat不会创建servlet对象会直接使用创建过的,所以servlet对象在web容器中是单例的.(减少资源创建节省资源...)

非单:

main{

new Context()....

}

class Context

{

}

单例:

main{

new Context()....

}

class Context

{

private static Context context;

private Context(){}

public static Context getContext(){

if(context==null){

context=new Context();

}

return context;

}

}

}

若servlet对象是单例的,则在大数据并发访问对象的临界资源时,容易出现线程安全问题

1, synchronized  servlet/  system.out.println()加锁了不适合服务器端应用,适合客户端

2,尽量不要在servlet中编写需要修改的临界资源.(成员变量)...


我们可以修改web.xml来告诉tomcat当web容器启动的时候立即创建servlet对象.

<load-on-startup>1</load-on-startup>

num:代表servlet对象创建的优先级


2>初始化:

init(ServletConfig config){}

servlet生命周期相关的API:(类与接口)

Servlet(I)

Init(ServletConfig config)

Servic(ServletRequest,ServletResponse);

destory()

ServletConfig(I)

ServletRequest(I)

ServletResponse(I)


Servlet子类GenericServlet(AC)implements Servlet

init(){}

destroy(){}

service()(抽象)


HttpServlet(AC)extends GenericServlet

service(HttpServletRequest req,HttpServletResponse resp){}


ActionServlet extends HttpServlet(我们自己的)

HttpServletRequest(I)

HttpServletResponse(I)


初始化阶段问题:

谁调用初始化方法init()? 什么时候调用?

tomcat容器调用init方法.

在servlet创建后,执行init()立即执行init()进行对象初始化,仅仅执行1次.


init方法中一般编写什么代码?

对成员变量进行初始化.

在对象创建完毕后仅仅执行一次义务.

init(ServletConfig config)

{

super.init(config);//不能省父类有事要做.

}


ServletConfig接口作用:

config对象中包含了用户在web.xml中对当前servlet的一些初始化参数的配置信息.

如何在web.xml中配置初始化参数?

<init-param>

<param-name>words</param-name>

<param-value>dog</param-value>

</init-param>


如何使用config对象读取初始化参数?

config.getInitParameter("words");


模板设计模式:

GenericServlet()

{

init(ServletConfig config)

{

.........................

init();

init2...();(钩子方法子类不想执行带参的时可以执行不带参的...重写不带参的时候任然可以执行该方法.)

}

init(){};

}

ActionServlet{

init(ServletConfig config){

super.init(config)

}

}


3>业务调用:

谁调用的?什么时候调用?

web容器调用.

请求到达servlet对象时调用一次.service方法可以调用多次.

405异常

如果service方法写错,tomcat会调用httpServlet的service的方法.

HttpServlet{

service(req,resp)

{

if(get){

doget(req,resp)

}else if(post){

doPost(req,resp);

}


}

doGet(){

throw new 405异常.

}

doPost(){

throw new 405异常.

}




4>对象的销毁:destory(){}

谁调用?什么时候调用?

web容器调用.

看tomcat心情.(tomcat内部有一个动态监测不常用的servlet对象会把servlet销毁.)

应用被移除.或服务器被关闭.

servlet对象销毁之前执行一次该生命周期方法.(一生只死一次...)




动态网站开发讲课笔记04:Servlet基础 1. 掌握Servlet的基本概念; 2. 掌握Servlet的特点及其接口; 3. 熟悉使用IDEA工具开发Servlet; 4. 掌握Servlet的配置以及Servlet的生命周期; 5. 掌握ServletConfig和ServletContext接口的使用; 6. 掌握HttpServletRequest对象的使用; 7. 掌握HttpServletResponse对象的使用 阅读详情

相关推荐

六自由度机械臂运动学分析及其轨迹规划

六自由度机械臂轨迹规划 通过对比三次多项式插值法与五次多项式插值法的效果,选取后者对机械臂进行轨迹规划,将运动学解导入Matlab Robotics Toolbox仿真,得到各关节角度、速度和加速度与时间关系曲线。 三次多项式插值法 三次多项式有4个待定系数,可同时对起始点和目标点的角度和角速度给出约束条件。 数学公式 MATLAB代码 五次多项式插值法 五次多项式有6个待定系数,可同时对起始点和...

两条眉毛 6万+

JavaWebServlet请求和响应

1JavaWeb请求和响应 Servet最主要的作用就是处理客户端请求,并向客户端做出响应。 浏览器发送HTTP请求信息,Web服务器接收请求信息。Web服务器创建HttpServletRequest对象封装请求信息。Web服务器创建HttpServletResponse对象封装响应信息。Web服务器调用Serlet,通过service()方法从HttpServletRequest对象读取请求信息,将响应数据封装到HttpServletResponse对象。Web服务读取响应信息,发送HTTP响应信息给浏览

weixin_44020424的博客 701

目标检测中的困难样本挖掘:YOLOv5训练效果提升30%的秘诀

本文深入探讨了目标检测中困难样本挖掘的关键技术,特别是如何通过在线困难样本挖掘(OHEM)策略显著提升YOLOv5模型的性能。文章详细解析了困难样本的分类、识别机制及实战配置,并提供了数据标注策略与增强技巧,最终实现模型性能提升30%的突破。

weixin_30379531的博客 402

Servlet的学习04---请求方式

get: 请求服务器上指定的资源post: 向服务器上的资源提交数据head: 和get相似put: 上传资源delete: 删除资源1: 浏览器发送地址请求2: 根据ip和port号定位到tomcat容器3: tomcat容器根据appName确定项目4: 然后tomcat查找当前项目下的web.xml配置信息,用url-pattern与地址信息进行匹配5: 根据两个相同的name找到对应的servlet组件。

a1575949906的博客 1310

ubuntu 20.04系统离线安装nfs

ubuntu环境下,离线安装nfs

m0_62464865的博客 2244

14、OpenClaw(龙虾助手)Skill 开发完整规范(2026最新版)

OpenClaw Skill 开发指南摘要: Skill 是 OpenClaw AI 助手的核心扩展机制,支持声明式(SKILL.md)和原生代码(JS/TS/Python)两种开发模式。声明式 Skill 通过 Markdown 定义触发条件和执行流程,适合简单业务;原生代码 Skill 提供完整编程能力,适合复杂场景。开发需遵循标准化项目结构,包含 SKILL.md(元数据)、manifest.json(权限声明)等文件,并严格处理错误和多系统适配。新版要求原生 Skill 必须声明文件、网络等权限,确

欢迎光临~知1而N的博客 1243

Servlet的请求和响应

1、Servlet最主要的作用就是处理客户端请求,并向客户端做出响应。 针对Servlet的每次请求,Web服务器在调用service()方法之前,都会创建两个对象: HttpServletRequest用于封装HTTP请求消息,简称request对象。 HttpServletResponse用于封装HTTP响应消息,简称response对象。 request对象和response对象在请求Servlet过程中至关重要。 2、HttpServletResponse接口 (1)HttpServletRe

qq_43575044的博客 3155

windows10 + wsl2安装docker

一、安装wsl https://docs.microsoft.com/zh-cn/windows/wsl/install-win10 1.1以管理员身份运行powershell 1.2执行如下命令 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 1.3重启电脑 1.4 重启电脑后,如果需要安装wsl2, 则安装官方文档继续后续操作,因我...

happytree001的博客 1570

Java Web篇_04 Servlet

我们打开官网API可以了解到Servlet接口,他在javax.servlet.Servlet里。 它这里说: servlet是在Web服务器中运行的小型Java程序。servlet通常通过超文本传输协议HTTP接收和响应来自Web客户端的请求。 要实现这个接口,您可以编写一个扩展javax.servlet.GenericServlet的通用servlet或一个扩展javax.servlet.http.HttpServlet的HTTP servlet。 该接口定义了初始化servlet、服务请求和从服务器

凤文Sharing的博客 468

基于激光雷达与视觉融合的四旋翼无人机室内避障方法研究

本文研究了一种基于激光雷达与视觉融合的四旋翼无人机室内避障方法。针对单一传感器在室内环境中的局限性,提出通过激光雷达提供精确几何距离、视觉相机补充语义信息的融合方案。研究内容包括:搭建ROS硬件平台集成单目相机与2D激光雷达;设计基于扩展卡尔曼滤波的传感器融合模型;改进VFH算法结合视觉深度图进行路径规划。实验验证表明,该方法在复杂室内环境下具有较高的鲁棒性、实时性与避障成功率,为解决无GPS信号环境下的无人机自主导航问题提供了有效方案。

huanghm88的专栏 348

Java Web学习04(Servlet 使用案例)

Servlet 案例一、案例一二、案例二1、get2、post3、案例三、案例三1、请求的转发2、请求的重定向3、案例 一、案例一 (1)LoginServlet package com.alex.web.servlet; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import java

Li的博客 502

【EB-03】 AUTOSAR builder与EB RTE集成

打开EB工具后,在EB的步骤是:执行MultiTask(2)-> Mapping Component to Partitions(4)->Task Mapping(5)-> SvcAs_Trigger(7)-> Code Generation(8)如涉及新增BSW Module,也需要重复以上步骤。

libuping2023的博客 962

04:Servlet基础

目标:掌握如何使用IDEA工具开发Servlet程序在实际开发中,通常都会使用IDEA(或Eclipse等)工具完成Servlet的开发,我们使用IDEA完成Servlet的开发,因为IDEA不仅会自动编译Servlet,还会自动创建web.xml文件信息,完成Servlet虚拟路径的映射。选择IDEA主页的“Create New Project”选项,进入新建项目的界面。 在New Projec界面中,选择左侧栏的“Java”选项,然后勾选”Web Application”选项。选择完毕之后,单击”Nex

XLLLXX的博客 246

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

java web中servlet详解_Java Web(5)-Servlet详解(下)

一、HttpServletRequest 类1. HttpServletRequest 类作用?每次只要有请求进入 Tomcat 服务器,Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好封装到 Request 对象中。 然后传递到 service 方法(doGet 和 doPost)中给我们使用,可以通过 HttpServletRequest 对象,获取到所有请求的 信息2. Htt...

weixin_30114977的博客 177

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【tomcat】04 Servlet规范

一、介绍 百度百科 二、Servlet 接口 1、Servlet规范的核心接口即是Servlet接口,它是所有Servlet类必须实现的接口。 2、Java Servelt API中已经提供了两个抽象类方便开发者实现Servlet类,分别是GenericServlet和HttpServlet。 GenericServlet定义了一个通用的、协议无关的Servlet HttpServlet则定义了HTTP的Servlet 两个抽象类可以使Servlet类复用很多共性功能 3、servi

promiseful的博客 349

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java Servlet 实战入门教程-04-servlet request 请求详解

请求 请求对象封装了客户端请求的所有信息。 在 HTTP 协议中,这些信息是从客户端发送到服务器请求的 HTTP 头部和消息体。 接口 全部接口参见 接口 UML HttpServletRequest 在 ServletRequest 的基础之上添加了 HTTP 的相关方法。 这个接口的实现是 Servlet-API 吗? 不是。是容器实现的。 我们在使用的时候不用关心具体的实现,只需要知道这...

2万+

【Java教程】Day21-04 Web开发:Servlet开发

在Web开发中,Servlet是Java编写Web应用的关键组件。一个Web应用通常由多个Servlet组成,每个Servlet通过特定的注解来处理请求的路径。Servlet可以响应不同类型的HTTP请求,如GET、POST等。今天,我们将详细了解如何使用Servlet开发Web应用。

max202011161630的博客 573

JavaWeb 04 Web核心 HTTP Tomcat Servlet

01-Web核心介绍02-HTTP简介数据传输的规则。

我亦无他,唯手熟尔 409

Java Web-Servlet

文章目录 1.Filter过滤器 ①什么是Filter ②Filter映射 ③Filter链 ④FilterConfig接口 2.监听器 1.Filter过滤器 ①什么是Filter Filter被称作过滤器或者拦截器,其基本功能就是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理前后实现一些特殊功能。这就好比现实中的污水净化设备,它可以~~看做~~看作一个过滤器,专门用于过滤污水杂质。图1描述了Filter在Web应用中的拦截过程,具体如下:

weixin_55689279的博客 584

请求JSP页面时,服务端会把jsp编译成java类(servlet)

很多人都会认为JSP的执行性能会和Servlet相差很多,其实执行性能上的差别只在第一次的执行。因为JSP在执行第一次后,会被编译成Servlet的类文件,即.class,当再重复调用执行时,就直接执行第一次所产生的Servlet,而不再重新把JSP编译成Servelt。 因此,除了第一次的编译会花较久的时间之外,之后JSP和Servlet的执行速度就几乎相同了。Web容器处理JSP文件请求的执

gcong 1万+

04Servlet

性能高效:servlet对象在容器启动时被初始化,第一次请求时,容器将对象实例化,常驻内存;在初始化一个Servlet时,会将Servlet的。ServletConfig获取配置信息的方法。Servlet接口的两个默认的接口实现类。容器启动时,会为每一个web应用创建一个。HttpServlet类的常用方法。功能强大:可调用JavaAPI。可移植:Java语言是跨平台的。获取Web应用程序的初始化参数。

CHAILANG1025的博客 123

04Servlet-5. Servlet的类试图详解

1、什么是 Servlet? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。 2、Servlet 入门实例 第一步:创建一个JavaWeb项目,并创建一个servlet类-----HelloServlet,实现接口 Servlet 1 2 3 4 5 6 7 8 9

学无止境 523

四、 JSP04 Servlet 技术

Servlet的简介、Servlet API、Servlet的生命周期、Servlet的实现

m0_72817617的博客 1176

Servlet详解

Servlet (server applet) 是运行在服务端(tomcat)的Java小程序,是sun公司提供一套定义动态资源规范;从代码层面上来讲Servlet就是一个接口用来接收、处理客户端请求、响应给浏览器的动态资源。在整个Web应用中,Servlet主要负责接收处理请求、协同调度功能以及响应数据。我们可以把Servlet称为Web应用中的控制器不是所有的JAVA类都能用于处理客户端请求,能处理客户端请求并做出响应的一套技术标准就是Servlet。

c55555556的博客 876

Servlet Filter详解

Servlet Filter 是 Java EE 技术规范之一,用于在 Servlet 处理请求之前或之后对请求和响应进行预处理和后处理。Filter 可以视为一种“中间件”,它拦截请求和响应,并在它们被 Servlet 或 JSP 页面处理之前或之后执行特定的代码。Filter的过滤原理是根据预设的条件或规则对输入进行过滤或筛选,只保留符合条件的元素。在Web应用中,Filter特别用于对HTTP请求和响应进行拦截和处理,以实现诸如权限验证、日志记录、请求预处理和响应后处理等功能。

2401_83447580的博客 1273
上一篇: web03重定向
下一篇: web02D
AverageJoe24
博客等级 码龄13年 0粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值