JavaWeb之Servelt学习

news2025/2/3 6:51:15

1.Servlet

概念:运行在服务端的小程序

  Servlet就是一个接口,定义了java类被浏览器访问到(tomcat识别)的规则

   将来我们自定义一个类,实现Servlet接口,复写方法

1.1快速入门

1.创建javaEE项目

2.定义类实现Servelet接口

3.实现接口中的抽象方法

package com.hzw.servelet;

import javax.servlet.*;
import java.io.IOException;

public class servlet01 implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    //提供服务的方法
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("hello Service");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

4.在web.xml配置Servlet

<!--配置servlet-->
<servlet>
    <servlet-name>demo01</servlet-name>
    <servlet-class>com.hzw.servelet.servlet01</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>demo01</servlet-name>
    <url-pattern>/demo1</url-pattern>
</servlet-mapping>

5.测试 控制台打印hello Servlet,每次调用一次打印一次

 1.2Servlet 执行原理

执行原理:
1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径, 获取访问的Servlet的资源路径
2. 查找web.xml文件,是否有对应的<url-pattern>标签体内容。
3. 如果有,则在找到对应的<servlet-class>全类名
4.tomcat会将字节码文件加载进内存,并且创建其对象
5.调用其方法

 

1.3Servlet执行方法

4.ServletConfig:Servlet的配置对象

5.getServletInfo:获取Servlet一些信息、版本

1.3.1Servlet中的生命周期方法


1.被创建:执行init方法,只执行一次

*Servlet什么时候被创建?
    默认情况下,第一次被访问时,servlet被创建
    可以配置执行Servlet的创建时机。

   在<servlet>标签下配置

1.第一次访问时创建
   <load-on-startup>的值为负数
2.在服务器启动时创建
   <load-on-startup>的值为0或正数

Servlet的init方法,只执行一次,说明一个Servleti在内存中只存在一个对象,Servlet是单例的

多个用户同时访问时,可能存在线程安全问题。
·解决:尽星不要在Servlet中定义成员变量。即使定义了成员变量,也不要对修改值

2.提供服务:执行service方法,执行多次

每次访问Servlet时,Servlet方法都会被调用一次
3.被销毁:执行destroy方法,只执行一次

Servlet被销毁时执行。服务器关闭时,Servlet被销毁
只有服务器正常关闭时,才会执行destroy方法。
destroy.方法在Servlet被销毁之前执行,一般用于释放资源

1.4注解配置

*Servlet3.0:
好处:
*支持注解配配置。可以不需要web,xm1了。
步骤:
1.创建]avaEE项目,选择Servleti的版本3.o以上,可以不创建web.xml
2.定义一个类,实现Servle接口
3.复写方法
4.在类上使用@WebServlet注解,进行配置

@WebServlet(value = "/demo")
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
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 "";
}

##IDEA与tomcat的相关配置
1,IDEA会为每一个tomcat部署的项目单独建立一份配置文件
*查看控制台的1og:Using CATALINA_BASE:"C:\Users\fqy\.IntelliJIdea2o18.1 system\tomcat\itcast"
2,工作空间项目和tomcat部署的web项目
*tomcat真正访问的是“tomcati部署的web项目”,"tomcat部署的web项目"对应着"工作空间项目”的web目录下的所有资源
*WEB-INF目录下的资源不能被浏览器值接访问。

1.5.Servlet体系结构

Serv1et--接口
Genericservlet--抽象类
HttpServlet--抽象类
*Genericservlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象
*将来定义Servlet类时,可以继承GenericServlet,实现service()方法即可
*HttpServlet:对http协议的一种封装,简化操作
1,定义类继承HttpServlet
2,复写doGet/doPost方法

1.6Servlet相关配置

urlpartten:Servlet访问路径
1.-个Servlet可以定义多个访问路径:@Webservlet("/d4","/dd4","/ddd4"))
2,路径定义规则:
1./xxx :路径匹配
2./XxX/XXx:多层路径,目录结构
3.*.do:扩展名配置

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/103842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DFS——连通性和搜索顺序(回溯)

文章目录概述连通性问题模板思考迷宫红与黑搜索顺序(回溯)模板思考马走日单词接龙分成互质组总结概述 定义 在深度优先搜索中&#xff0c;对于最新发现的顶点&#xff0c;如果它还有以此为顶点而未探测到的边&#xff0c;就沿此边继续探测下去&#xff0c;当顶点v的所有边都已…

JavaScript刷LeetCode拿offer-滑动窗口

一、前言 《JavaScript刷LeetCode拿offer-双指针技巧》中&#xff0c;简单地介绍了双指针技巧相比较单指针的优点&#xff0c;以及结合 Easy 难度的题目带大家进一步了解双指针的应用。 进入 Medium 难度之后&#xff0c;解题的关键在于如何构造双指针以及确定指针移动的规则…

从 0 开始学 Python 自动化测试开发(二):环境搭建

本文是「从 0 开始学 Python 自动化测试开发」专题系列文章第二篇 —— 环境搭建篇&#xff0c;适合零基础入门的同学。没有阅读过上一篇的同学&#xff0c;请戳主页看上一篇噢。作者方程老师&#xff0c;是前某跨国通信公司高级测试经理&#xff0c;目前为某互联网名企资深测试…

常见管理网络的net命令

目录1 简介2 常用命令2.1 net view2.2 net user2.3 net use2.4 net start2.5 net stop2.6 net share1 简介 net 命令是一种基于网络的命令&#xff0c;该命令包含了管理网络环境、服务、用户、登录等大部分重要的管理功能。 2 常用命令 2.1 net view 作用&#xff1a;显示域…

Spring 之 @Component 和 @Configuration 两者区别以及源码分析

之前一直搞不清 Component 和 Configuration 这两个注解到底有啥区别&#xff0c;一直认为被这两修饰的类可以被 Spring 实例化嘛&#xff0c;不&#xff0c;还是见识太短&#xff0c;直到今天才发现这两玩意有这么大区别。很幸运能够及时发现&#xff0c;后面可以少走点坑&…

操作系统知识点

操作系统的目标&#xff1a; 方便&#xff1a;使计算机系统易用 有效&#xff1a;以更有效的方式使用计算机系统资源 扩展&#xff1a;方便用户有效开发、测试和引进新功能 操作系统的 作用&#xff1a; 1. 有效的管理资源 2.通过命令接口、编程接口等为用户提供各种…

【自然语言处理】【ChatGPT系列】Chain of Thought:从大模型中引导出推理能力

Chain-of-Thought Prompting&#xff1a;从大模型中引导出推理能力《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》论文地址&#xff1a;https://arxiv.org/pdf/2201.11903.pdf 相关博客 【自然语言处理】【ChatGPT系列】Chain of Thought&#xf…

什么是加权轮询?云解析DNS是否支持加权轮询?-中科三方

什么是加权轮询&#xff1f; 所谓的加权轮询算法&#xff0c;其实就是Weighted Round Robin&#xff0c;简称wrr。在我们配置Nginx的upstream的时候&#xff0c;带权重的轮询&#xff0c;其实就是wrr。 upstream backend { ip_hash; server 192.168.1.232 weight4; server 19…

无疫苗未吃药,48小时内阳康全纪实个案

为了不误导不同体质的人&#xff0c;特意强调这是个案&#xff0c;阳康方案仅供参考。小编体质偏寒&#xff0c;长期熬夜&#xff0c;黑白颠倒&#xff0c;有习惯性头痛症。经验总结&#xff1a;1.受到风寒是病发的直接导火索&#xff0c;就算携带病毒&#xff0c;本体没有受到…

Android实现红绿灯检测(含Android源码 可实时运行)

Android实现红绿灯检测(含Android源码 可实时运行) 目录 Android实现红绿灯检测(含Android源码 可实时运行) 1. 前言 2. 红绿灯检测数据集说明 3. 基于YOLOv5的红绿灯检测模型训练 4.红绿灯检测模型Android部署 &#xff08;1&#xff09; 将Pytorch模型转换ONNX模型 &…

吉林优美姿:抖音怎么增加销量?

为了更好的在做抖音好物联盟&#xff0c;那么一些抖音达人也会想方设法的去报名申请&#xff0c;那么大家是否真的清楚这个报名要怎么做呢&#xff1f;具体有什么要求呢&#xff1f;跟着吉林优美姿小编来一起看看吧&#xff01; 注册要求&#xff1a;凡注册抖音 APP并开通产品分…

大数据培训Impala之存储和压缩

注&#xff1a;impala不支持ORC格式 1.创建parquet格式的表并插入数据进行查询 [hadoop104:21000] > create table student2(id int, name string) > row format delimited > fields terminated by ‘\t’ > stored as PARQUET; [hadoop104:21000] > insert …

工控CTF之协议分析9——其他协议

协议分析 流量分析 主要以工控流量和恶意流量为主&#xff0c;难度较低的题目主要考察Wireshark使用和找规律&#xff0c;难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律&#xff0c;难可以难得五花八门 常见的工控协议有&#xff1a;Modbus、MMS、IEC60870、…

【计算机视觉】回顾2022年计算机视觉领域最激动人心的进展

目录&#xff1a;回顾2022年计算机视觉一、前言二、计算机视觉趋势2.1 Transformer统治计算机视觉2.2 以数据为中心的计算机视觉获得牵引力2.3 AI 生成的艺术作品2.4 多模态人工智能成熟三、计算机视觉的新应用3.1 运动领域3.2 环境保护3.3 自动驾驶3.4 健康与医药四、总结一、…

数据类型隐式转换导致的阻塞

背景 不合适的数据类型隐式转换会导致性能下降和并发下降&#xff0c;而且大多数技术人员对隐式转换的概念是陌生的&#xff0c;因此在生产环境中非常常见&#xff0c;通过本文做一个系统的梳理。 现象 收到SQL专家云阻塞告警邮件&#xff0c;登录SQL专家云&#xff0c;进入实…

推荐系统学习笔记-冷启动

简介 推荐系统的主要目标是将大量的标的物推荐给可能喜欢的海量用户, 这里涉及到标的物和用户两类对象。任何互联网推荐产品, 标的物和用户都是不断增长变化的&#xff0c;所以一定会频繁面对新标的物和新用户, 推荐系统冷启动问题指的就是对于新注册的用户或者新入库的标的物…

CDGA|2022年内有超20家银行因数据治理模块受罚,原因都在这里

今年&#xff0c;银保监会对银行数据治理的监管趋严&#xff0c;对银行机构在监管数据质量和数据报送中存在的违法违规行为&#xff0c;不断加大处罚与整治力度。 近日&#xff0c;北京农商银行收到的一张630万元罚单显示&#xff0c;该行主要存在的违法违规事实具体为&#xf…

NVMe解读

看NVMe协议&#xff08;1.0e&#xff09;过程中&#xff0c;参考了SSDFans的很多文章内容&#xff0c; 目录 1. 综述 3 1.1 名词解释 3 1.1.1 Namespace 3 1.1.2 Fused Operations 4 1.1.3 指令执行顺序 4 1.1.4 写单元的原子性 4 1.1.5 元数据 4 1.1.6 仲裁机制 4 1…

图数据库知识点3:图数据库解决了什么问题?

在前面的两个知识点中我们先后介绍了&#xff1a; 知识点1&#xff1a;图数据库与关系型数据库的区别 知识点2&#xff1a;图思维方式 现在,我们可以更进一步来通过具体的例子来了解图数据库、图计算到底解决了什么问题。我们先来剖析下面这个问题&#xff1a; 图数据库查询…

【Vue实用功能】elementUI 自定义表单模板组件

elementUI 实现一个自定义的表单模板组件 注&#xff1a;该功能基于elementUI 背景&#xff1a;在项目开发中&#xff0c;我们会遇到这种需求&#xff0c;在管理后台添加自定义表单&#xff0c;在指定的页面使用定义好的表单 直接上代码&#xff1a; <template><di…