JavaWeb初阶 day1

news2024/11/11 11:29:42

目录

tomcat目录结构

tomcat:web服务器软件

项目部署的方式

直接将项目放到webapps下

配置conf/server.xml文件

在conf\Catalina\localhost创建任意名称的xml文件。在文件中编写

静态项目和动态项目

Servlet

Servlet执行原理

Servlet方法(生命周期)

Servlet3.0注解配置

IDEA与tomcat相关配置

tomcat目录结构

  1. 可执行文件
  2. 配置文件
  3. 依赖jar包
  4. 日志文件
  5. 临时文件
  6. 存放web项目
  7. 存放运行时的数据

tomcat:web服务器软件

概念:处理web请求的。(请求:比如在百度搜索框搜索内容,那谁来响应这个请求呢,servlet)

访问:浏览器输入:http://localhost:8080 回车访问自己

                                 http://别人的ip:8080 回车访问别人

项目部署的方式

直接将项目放到webapps下

在webapps下面新建一个文件夹,里面存放hello.html页面。

注意先启动tomcat才可以运行!

/hello  项目的访问路径——虚拟目录

将项目打成一个war包,再将war包放置在webapps目录下,war包会自动解压缩。

配置conf/server.xml文件

在<host>标签体中配置

<Context docBase="D:\hello" path="/hehe" />

* docBase: 项目存放的路径

* path: 虚拟目录

在conf\Catalina\localhost创建任意名称的xml文件。在文件中编写

<Context docBase="D:\hello" />

*虚拟目录:xml文件的名称

静态项目和动态项目

java动态目录的目录结构:

项目的根目录

   --WEB-INF目录

      --web.xml文件:web项目的核心配置文件

      --classes目录:放置字节码文件的目录

      --lib目录:放置依赖的jar包

Servlet

运行在服务器端的小程序

概念:一个接口,定义了JAVA类被浏览器访问到的(tomcat识别)的规则。

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

快速入门:

1、创建一个JAVAEE项目

2、定义一个类,实现Servlet接口

*public class ServletDemo1 implements Servlet

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

4、配置Servlet方法

//在web.xml中配置:
<!-- 配置Servlet>
<Servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>

Servlet执行原理

http://localhost:8080/day13_tomcar/demo1

localhost:8080   :找到某个主机或者是应用程序,通过8080找到tomcat

day13_tomcat    :通过虚拟目录找到项目

demo1     :资源名称,找web.xml,找到demo1

执行原理:

1、当服务器接收到客户端浏览器的请求后,会解析请求url路径,获取访问到的Servlet

的资源路径

2、查找web.xml文件,是否有对应的<url-pattern>标签体内容

3、如果有,则在找到对应的<servlet-class>全类名

4、tomcat会将字节码文件加载进内存,并且创建其对象

5、调用其方法

Servlet方法(生命周期)

方法:

1、init方法:在servlet被创建时执行,只会执行一次

2、Service: 提供服务方法,每一次Servlet被访问时,执行,执行多次

3、destory:销毁方法,在Servlet被杀死时执行,也就是在服务器正常关闭时,执行,执行一次。

4、ServletConfig方法:获取servletconfig对象的

5、getServletInfo:获取Servlet

的一些信息,版本作者等等。

生命周期:

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

*Servlet什么时候被创建?

   默认情况下,第一次被访问时,Servlet被创建。

   可以配置执行servlet的创建时机。比如在服务器启动时创建

在<servlet>标签下配置

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

      *多个用户同时访问时,可能存在线程安全问题。

       *解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要对其修改值。

2、提供服务

执行Service方法时,执行多次

  *每次访问Servlet时,service方法都会被调用一次。

3、被销毁

执行destroy方法,只执行一次。

   *Servlet被销毁时执行。服务器被关闭时,servlet被销毁

   *只有服务器正常关闭时,才会执行destroy方法。

   *destroy方法在servlet被销毁之前执行,一般用于释放资源

Servlet3.0注解配置

步骤:

1、创建一个JAVAEE项目,选择Servlet的版本3.0以上,可以不创建web.xml

2、定义一个类,实现Servlet接口

3、复写方法

4、在类上使用@webServlet注解,进行配置

    *@webServlet(“资源路径”)

虚拟目录是项目的访问方式,资源路径才是上边要写的

IDEA与tomcat相关配置

1、IDEA会为每一个tomcat部署的项目单独建立一份配置文件

*查看控制台的log:

2、工作空间项目   和   tomcat部署的web项目

*tomcat真正访问的是tomcat部署的web项目,tomcat部署的web项目  对应着工作空间项目的web目录下的所有资源。

WEB-INF目录下的资源不能被浏览器直接访问。

3、断点调试:使用“小虫子”启动   dubug启动

一直坚持下去吧,走得慢一点,稳一点,不着急。

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

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

相关文章

数字化转型的理论框架对比:从多维视角指导企业成功变革对比DPBOKIT4ITCOBITTOGAF

数字化转型的多维框架解析 在数字化时代&#xff0c;企业如何有效实现数字化转型已成为其生存和发展的关键问题。然而&#xff0c;市场上关于数字化管理的各种框架和理论并存&#xff0c;企业需要根据自身的需求选择最适合的指导路径。本文将通过对几个核心理论框架的对比&…

亿发工单系统:让任务风平浪静

在现代企业的日常运营中&#xff0c;工单管理系统已经成为必不可少的工具&#xff0c;无论是生产制造、IT运维&#xff0c;还是客服支持&#xff0c;工单系统的存在都是为了高效处理任务、跟踪进展、分配资源。然而&#xff0c;现实中的工单管理&#xff0c;往往不是“风平浪静…

初识模版!!

初识模版 1.泛型编程1.1 如何实现一个交换函数呢&#xff08;使得所有数据都可以交换&#xff09;&#xff1f;1.2 那可以不可以让编译器根据不同的类型利用该模子来生成代码呢&#xff1f; 2.模版类型2.1 模版概念2.2 函数模版的原理2.3 函数模板的实例化2.4 模板参数的匹配原…

linux 操作系统下dhcpd命令介绍和案例应用

linux 操作系统下dhcpd命令介绍和案例应用 DHCP&#xff08;动态主机配置协议&#xff09;在Linux操作系统中用于自动为网络中的设备分配IP地址和其他网络配置 DHCP的基本概念 DHCP协议通过UDP工作&#xff0c;主要有两个用途&#xff1a; 自动分配IP地址给网络中的设备。提…

化学分子结构检测系统源码分享

化学分子结构检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

git push出错Push cannot contain secrets

报错原因&#xff1a; 因为你的代码里面包含了github token明文信息&#xff0c;github担心你的token会泄漏&#xff0c;所以就不允许你推送这些内容。 解决办法&#xff1a; 需要先把代码里面的github token信息删除掉&#xff0c;并且删掉之前的历史提交&#xff0c;只要包…

【远程调用PythonAPI-flask】

文章目录 前言一、Pycharm创建flask项目1.创建虚拟环境2.创建flask项目 二、远程调用PythonAPI——SpringBoot项目集成1.修改PyCharm的host配置2.防火墙设置3.SpringBoot远程调用PythonAPI 前言 解决Pycharm运行Flask指定ip、端口更改无效的问题 首先先创建一个新的flask项目&…

变电站绝缘套管红外检测数据集

包含以下4个数据文件&#xff1a; /train&#xff1a;训练集 /valid&#xff1a;验证集 /test&#xff1a;测试集 README.txt&#xff1a;数据说明 【数据说明】检测目标以Pascal VOC格式进行标注&#xff0c;对每个图像进行以下预处理&#xff0c;统一调整大小为640x640。数据…

FLUX.1+ComfyUI部署与使用:图像合成技术的新高度

✨ Blog’s 主页: 白乐天_ξ( ✿&#xff1e;◡❛) &#x1f308; 个人Motto&#xff1a;他强任他强&#xff0c;清风拂山冈&#xff01; &#x1f4ab; 欢迎来到我的学习笔记&#xff01; FLUX.1的版本 FLUX.1是由黑森林实验室&#xff08;[Black Forest Labs](https://bla…

【设计模式-备忘录】

备忘录模式&#xff08;Memento Pattern&#xff09;是一种行为型设计模式&#xff0c;用于保存对象的内部状态&#xff0c;以便在将来某个时间可以恢复到该状态&#xff0c;而不暴露对象的内部实现细节。备忘录模式特别适合在需要支持撤销&#xff08;Undo&#xff09;操作的应…

如何在多台Linux虚拟机上安装和配置Kafka集群

Kafka是一个高性能、分布式的流处理平台&#xff0c;被广泛应用于大规模实时数据处理场景。它具有高吞吐量、低延迟和可水平扩展等特点&#xff0c;能够有效地处理海量数据流。为了提高Kafka的可用性和容错性&#xff0c;通常会在多个节点上部署Kafka集群。在这个指南中&#x…

十大排序(一):冒泡排序

目录 一、简介 实现过程 时间复杂度 二、代码实现 函数声明 Swap函数 单趟 多趟 测试 优化 一、简介 冒泡排序是一种简单的排序算法&#xff0c;它重复地比较相邻的两个元素&#xff0c;如果顺序错误就交换它们&#xff0c;直到没有元素需要交换为止。这个过程类…

获取zabbix API 监控数据shell脚本,自动日常巡检服务器信息、并发送指定群组

一&#xff0c;前言 有zabbix监控&#xff0c;也并不是时刻盯着数据&#xff0c;所以想着&#xff0c;每天固定某个时刻&#xff0c;自动发送服务器数据到指定群组&#xff0c;给其他人更直观的数据。 数据就可以从zabbix API获取。参考官方API文档&#xff1a;https://www.z…

如何使用IIC外设(硬件IIC)

本文重点叙述如何使用芯片自带的 IIC 外设&#xff0c;即硬件 IIC&#xff0c;实现 IIC 通信。文章《IIC通信基础_cpu的iic通信-CSDN博客》 中&#xff0c;叙述了软件 IIC 通信和硬件 IIC 通信的区别&#xff0c; 并且重点叙述了 IIC 的通信协议。在使用软件进行 IIC 通信时&am…

git安装包夸克网盘下载

git安装包夸克网盘下载 git夸克网盘 git网站上的安装包下载速度有点慢&#xff0c;因此为了方便以后下载就将文件保存到夸克网盘上&#xff0c;链接&#xff1a;我用夸克网盘分享了「git」&#xff0c;点击链接即可保存。 链接&#xff1a;https://pan.quark.cn/s/07c73c4a30…

MongoDB在Linux系统中的安装与配置指南

在这篇文章中&#xff0c;我们将介绍如何在CentOS 7服务器上安装MongoDB&#xff0c;并通过DataX将数据从MongoDB迁移到MySQL数据库。这将包括MongoDB的安装、配置、数据准备以及使用DataX进行数据迁移的详细步骤。 MongoDB简介 MongoDB是一个高性能、开源、无模式的文档型数据…

c++9月20日

1.思维导图 2.顺序表 头文件 #ifndef RECTANGLE_H #define RECTANGLE_H#include <iostream>using namespace std;using datatype int ;//类型重定义class Seqlist { private://私有权限datatype *ptr; //指向堆区申请空间的起始地址int size;//堆区空间的长度int len …

鸿蒙OS 线程间通信

鸿蒙OS 线程间通信概述 在开发过程中&#xff0c;开发者经常需要在当前线程中处理下载任务等较为耗时的操作&#xff0c;但是又不希望当前的线程受到阻塞。此时&#xff0c;就可以使用 EventHandler 机制。EventHandler 是 HarmonyOS 用于处理线程间通信的一种机制&#xff0c…

Spring Boot助力高校心理辅导系统升级

3 系统分析 3.1可行性分析 在进行可行性分析时&#xff0c;我们通常根据软件工程里方法&#xff0c;通过四个方面来进行分析&#xff0c;分别是技术、经济、操作和法律可行性。因此&#xff0c;在基于对目标系统的基本调查和研究后&#xff0c;对提出的基本方案进行可行性分析。…

如何着手创建企业数据目录?(三)权限管理及版本控制

前文导读&#xff1a; 《如何着手创建企业数据目录&#xff1f;&#xff08;一&#xff09;数据目录的设定》 《如何着手创建企业数据目录&#xff1f;&#xff08;二&#xff09;数据的命名与维护》 前面聊过了数据目录的设定、数据命名规则和维护规则&#xff0c;今天我们继续…