JavaWeb:Web 的基本概念、Tomcat 服务器、Http 详解、Maven 的下载安装步骤、模仿一个 Servlet

news2025/1/16 11:49:50

文章目录

  • JavaWeb - 01
  • 一、基本概念
    • 1、静态 Web
    • 2、动态 Web
    • 3、Web 应用程序
    • 4、三个技术
  • 二、Web 服务器
  • 三、Tomcat 详解
  • 四、发布一个 Web 网站
  • 五、Http 详解
    • 1. Http 请求
      • (1)请求行
      • (2)消息头
    • 2. Http 响应
      • (1)响应头
      • (2)响应体
  • 六、Maven
    • 1. 下载、安装、配置
    • 2. 在 IDEA 中使用 Maven
    • 3. 补充
    • 4. 在 IDEA 中配置 Tomcat
    • 5. 分析
  • 七、模仿 HelloServlet
  • 注意:

JavaWeb - 01

一、基本概念

Web(网页)开发:静态 Web、动态 Web。

1、静态 Web

html、css:提供给所有人看的数据不会发生变化

*.html/htm 是网页的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取

静态 Web 存在的缺点

  • Web 页面无法动态更新,所有用户看到的都是同一个页面;
  • 无法与数据库交互,数据无法持久化,用户之间无法交互。

2、动态 Web

技术栈:Servlet、JSP、ASP、PHP

在 Java 中,动态 Web 资源开发的技术统称为 JavaWeb

动态 Web 中,页面会动态展示,展示的效果因人而异。

注意:若加入服务器的动态 Web 资源出现了错误,我们需要重新编写我们的后台程序,并重新发布(停机维护)。

动态 Web 优点

  • Web 页面可以动态更新,所有用户看到的不是同一个页面;
  • 可以与数据库交互,数据持久化(注册、商品信息、用户信息)。

3、Web 应用程序

Web 应用程序:可以提供浏览器访问的程序。Web 应用程序不能直接启动或被外界直接访问,需要依赖于 Tomcat 服务器统一管理。

  • a.html、b.html 等多个 Web 资源都可以被外界访问,对外界提供服务;
  • 能访问到的任何一个界面或者资源,存在于计算机上;
  • 统一的 Web 资源会被放在同一文件夹下,即 Web 应用程序;
  • 一个 Web 应用由多部分组成,如 html、css、js、jsp、servlet、Java 程序、jar 包、配置文件(Properties)等。

4、三个技术

  • ASP:用 C# 语言,属于微软的,是在 HTML 中嵌入了 VB 的脚本。在 ASP 开发中,基本一个页面都有几千行的业务代码,页面混乱,维护成本高。
  • PHP:开发速度快,功能强大,跨平台,代码简单。但是无法承载大访问量的情况(局限性)。
  • JSP/Servlet:是 Sun 公司主推的 B/S 架构(浏览器和服务器),基于 Java 语言,可以承载三高问题(高并发、高可用、高性能)带来的影响,语法像 ASP。

二、Web 服务器

服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息,如 IIS、Tomcat 等。

  • IIS:微软的,Windows 中自带的;

  • Tomcat:Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。由于有了 Sun 的参与和支持,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的 Web 应用服务器

    Tomcat 服务器是一个免费开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。对于一个初学者来说,它是最佳选择。Tomcat 实际上运行 JSP 页面和 Servlet。Tomcat 最新版本为10.0.23(截止 2023.02.18)。


三、Tomcat 详解

官网:点此进入。

  1. 在官网下载对应版本

  1. 压缩包解压

  1. 启动、关闭 Tomcat

  1. 配置

  • 可以配置启动的端口号默认:Tomcat【8080】、mysql【3306】、http【80】、https【443】。
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
  • 可以配置主机的名称默认的主机名为:localhost;默认网站应用存放的位置为:webapps。
<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="true">

问题:网站是如何进行访问的?

  1. 输入一个域名,回车;

  2. 检查本机的 C:\Windows\System32\drivers\etc\hosts 配置文件中有没有这个域名映射,

    • :直接返回对应的 IP 地址,也就是,这个地址中,有我们需要访问的 Web 程序,可以直接访问;

    • 没有:去 DNS 服务器去找,找到的话就返回,没有就返回找不到。

四、发布一个 Web 网站

步骤:将自己写的网站放到服务器(Tomcat)中指定的 Web 应用的文件夹(webapps)下,就可以访问了。

网站应该有的结构:

-- webapps : Tomcat 服务器的 Web 目录
	-- ROOT
	-- Taiyang3285 : 网站的目录名
		-- WEB-INF
			-- web.xml : 网站配置文件
			-- lib : Web 应用所依赖的 jar 包
			-- Classes : java 程序
		-- index.jsp/index.html : 默认的首页
		-- static : 静态资源文件夹
			-- css
				-- style.css
			-- js
			-- img
		-- ... : 其他文件夹


五、Http 详解

Http (Hyper Text Transfer Protocol Protocol) 是超文本传输协议,是一个简单的请求-响应协议,它通常运行在 TCP 之上。

默认启动的端口号:Http【80】、Https【443】。

  • Http/1.0:客户端可以和 Web 服务器连接后,只能获得一个 Web 资源,断开连接;
  • Http/1.1:客户端可以和 Web 服务器连接后,可以获得多个 Web 资源。

1. Http 请求

客户端 – 发请求(Request) – 服务器

(1)请求行

请求方式有:GET、POST 等。

  • GET:请求能够携带的参数比较少,大小限制,在浏览器的 URL 地址栏显示数据内容,不安全,但高效
  • POST:请求能够携带的参数没有限制,不会在浏览器的 URL 地址栏显示数据内容,安全,但不高效

响应状态代码有:200、404 等。

  • 200:请求响应成功;
  • 3xx:请求重定向(重新到新位置);
  • 4xx/404:找不到资源;
  • 5xx/500:服务器代码错误。

(2)消息头

2. Http 响应

服务器 – 响应(Requence) – 客户端

(1)响应头

(2)响应体

和消息头差不多。

问题:在浏览器中的地址栏输入地址回车后,到页面能够展示回来,经历了什么?


六、Maven

Maven 是项目架构管理工具作用是:方便导入 jar 包。

Maven 核心思想约定大于配置(有约束,不要去违反)。

1. 下载、安装、配置

  1. 下载 Maven

官网:点此进入。

  1. 压缩包解压

  1. 配置环境变量
  • M2_HOME:Maven 目录下的 bin 目录;

  • MAVEN_HOME:Maven 的目录;

  • 在系统的 Path 中配置:%MAVEN_HOME%\bin

环境变量配置完成后,以管理员身份打开命令提示符,输入:mvn -version 可以看到 Maven 的版本,说明 Maven 配置成功

  1. 阿里云镜像

镜像(mirrors)作用:加速下载。

Maven\apache-maven-3.6.1\conf 路径下的 settings.xml 文件中找到 mirrors 进行配置。

<mirror>
   <id>alimaven</id> 
   <mirrorOf>central</mirrorOf>
   <name>aliyun maven</name> 
   <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

注意一定要在粘贴在 mirrors 下。

  1. 本地仓库
  • Maven\apache-maven-3.6.1 路径下新建一个文件夹 maven-repo(本地仓库)。

  • settings.xml 文件中加一行,即本地仓库的地址。

2. 在 IDEA 中使用 Maven

  1. 打开 IDEA,创建一个新项目 New Project,创建一个 MavenWeb 项目。

注意:如果第三步不勾选,就会创建一个普通的 Maven 项目。

  1. 设置:打开 File 中的 Settings... 看一下设置。

注意:经常在 IDEA 中出现一个问题,就是在项目自动创建完成后,这里的 Maven home directory 会使用 IDEA 默认的,即 Bundled (Maven 3),如果发现了,要手动改为本地的

3. 补充

创建一个普通的 Maven 项目,即不勾选模板。

在前面 Maven 模板的基础上加上 java 文件和 resources 文件,并标记文件夹功能

4. 在 IDEA 中配置 Tomcat

在这里插入图片描述

注意:出现警告的原因:访问一个网站,需要指定一个文件夹的名字。

5. 分析

注意

  • Maven 的高级之处在于,它会导入这个 jar 包所依赖的其他 jar 包,但需要联网
  • Maven 由于约定大于配置,所以之后可能遇到我们写的配置文件,无法导出或生效的问题,解决方案:在 build 中配置 resources,来防止资源导出失败的问题。


七、模仿 HelloServlet

初学时,向 webapps 中的 examples 学习

到 Maven 仓库官网中去寻找 jar 包,官网:点此进入

在这里插入图片描述


注意:

  1. 学习时,提取有效信息

  2. HTML 是超文本标记语言

  3. 项目的打包方式(后缀):Java【jar】、Javaweb【war】。

  4. Maven 仓库官网https://mvnrepository.com/

  5. 所有的 dependency 都要放在 pom 文件中的 dependencies 中。

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

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

相关文章

sourceTree离线环境部署

目录 1、下载sourceTree安装包&#xff0c;打开之后弹出注册界面&#xff08;需要去国外网站注册&#xff09;2、使用技术手段跳过注册步骤3、打开安装包进行安装 注&#xff1a;建议提前安装好git 1、下载sourceTree安装包&#xff0c;打开之后弹出注册界面&#xff08;需要去…

27 - 两数、三数、四数问题

文章目录 1. 两数之和2. 三数之和3. 最接近的三数之和4. 四数之和5. 四数相加 1. 两数之和 在遍历数组的时候只需要在map中去查询是否有个目前元素target - numbers[i]匹配的数值&#xff0c;如果有&#xff0c;就找到匹配对&#xff0c;如果没有就把目前遍历的元素放入map中&a…

融合有序,创造无限——解密力扣“合并两个有序数组”

本篇博客会讲解力扣“88. 合并两个有序数组”这道题&#xff0c;这是题目链接。 其实&#xff0c;有经验的朋友一看到这个题目的名字&#xff0c;应该就明白了&#xff0c;这玩意和归并排序脱不了干系。下面我们来审题&#xff1a; 输出示例如下&#xff1a; 以下是一些提…

3.是人就能学会的Spring源码教学-IOC容器的核心实现原理

是人就能学会的Spring源码教学-IOC容器的核心实现原理 我们学习Spring源码的动力&#xff0c;估计大部分人都是因为面试中会问到吧。 那么我们今天就以面试问Spring来开头。 关于Spring&#xff0c;在面试的时候一般会问到的两个最基础的问题。 第一个什么是IOC&#xff1f…

技术控,看这里,一款支持断点调试的数据科学工具

数据科学是一门利用统计学、机器学习、数据挖掘、数据可视化等技术和方法&#xff0c;从数据中提取知识和信息的交叉学科。自上世纪60年代&#xff0c;统计学家John W.Tukey首次提出“数据分析”&#xff08;Data Analysis&#xff09;的概念起&#xff0c;数据科学已历经了几十…

ASEMI代理ADUM131E1BRWZ-RL原装ADI车规级ADUM131E1BRWZ-RL

编辑&#xff1a;ll ASEMI代理ADUM131E1BRWZ-RL原装ADI车规级ADUM131E1BRWZ-RL 型号&#xff1a;ADUM131E1BRWZ-RL 品牌&#xff1a;ADI /亚德诺 封装&#xff1a;SOIC-16-300mil 批号&#xff1a;2023 安装类型&#xff1a;表面贴装型 引脚数量&#xff1a;16 工作温度…

基于springboot的“智慧食堂”设计与实现(源码等)

摘要 随着Internet的发展&#xff0c;人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化&#xff0c;网络化和电子化。网上管理&#xff0c;它将是直接管理“智慧食堂”系统的最新形式。本xx是以构建“智慧食堂”系统为目标&#xff0c;使用java技术制作…

智能仿写软件-智能伪原创改写软件

智能仿写工具&#xff1a;营销创意的必备利器 在当今快节奏和不断发展的商业环境中&#xff0c;企业营销人员需要在短时间内产生大量有创意和高质量的内容。因此&#xff0c;智能仿写工具作为营销策略的一种创新方法而出现&#xff0c;可以帮助企业的写作团队更快速地生成文章…

【软考数据库】第八章 数据库SQL语言

目录 8.1 SQL语言概述 8.2 数据库定义 8.2.1 创建表(create table) 8.2.2 修改表 (alter table) 8.2.3 删除表 (drop table) 8.2.4 索引 8.2.5 视图 8.3 数据操作 8.3.1 查询语句格式 8.3.2 分组查询 8.3.3 其他操作 8.3.4 约束 8.4 数据授权 8.4.1 授权grant 8…

数据库索引的原理,为什么要用 B+树,为什么不用二 叉树?

1、B树和B树 一般来说&#xff0c;数据库的存储引擎都是采用B树或者B树来实现索引的存储。首先来看B树&#xff0c;如图所士 B树是一种多路平衡树&#xff0c;用这种存储结构来存储大量数据&#xff0c;它的整个高度会相比二叉树来说&#xff0c;会矮很多。 而对于数据库而言…

RFID系统在物流仓储中的应用

RFID系统是一种无线识别技术&#xff0c;最近成为物流仓储行业的热门话题。本文将介绍RFID系统在物流仓储中的应用&#xff0c;包括如何使用RFID标签进行物流管理&#xff0c;如何使用RFID技术提高仓库的安全性&#xff0c;并细述RFID技术在物流仓储中的优势。除此之外&#xf…

ArrayList快速失败机制

文章目录 一、什么是快速失败机制二、例子三、底层原理四、解决方法五、快速失败机制的一个小bug 一、什么是快速失败机制 ArrayList实现了一种称为快速失败(fail-fast)的机制,该机制在并发修改时会抛出ConcurrentModificationException异常。 这种机制的实现原理是:ArrayList…

机器学习案例 | 通过EBG学习概念cup

基于解释的学习(explanation-basedlearning)可简称为解释学习&#xff0c;是20世纪80年代中期开始兴起的一种机器学习方法。解释学习根据任务所在领域知识和正在学习的概念知识&#xff0c;对当前实例进行分析和求解&#xff0c;得出一个表征求解过程的因果解释树&#xff0c;以…

spark2

18Spark中stage的划分 和 shuffle的概念 Stage的划分是根据宽依赖&#xff0c;当触发action算子时&#xff0c;按照从后往前的回溯算法&#xff0c;当遇到会发生shuffle算子的时候&#xff0c;就会切分stage。 Stage的划分本质是shuffle,即当遇到会发生shuffle算子的时…

E. Sergey and Subway(思维 + dp)

Problem - E - Codeforces Sergey Semyonovich 是 N 市县的市长&#xff0c;他一直在思考如何进一步改善 Nkers 的生活。不幸的是&#xff0c;几乎所有可以做的事情都已经完成了&#xff0c;白天他已经没有更多的想法&#xff08;他现在喜欢在晚上睡觉&#xff09;。然而&#…

MySQL 中的 distinct 和 group by 的区别

目录 distinct用法distinct多列去重 group by的使用单列去重多列去重 distinct和group by原理隐式排序基于上述原因&#xff0c;Mysql在8.0时&#xff0c;对此进行了优化更新&#xff1a; 结论推荐group by的原因 在语义相同&#xff0c;有索引的情况下&#xff1a;group by和d…

体验 Whisper

体验 Whisper 1. 什么是 Whisper2. Github 地址3. 创建虚拟环境4. 安装 ffmpeg5. 部署 Whisper6. 使用 Whisper 1. 什么是 Whisper Whisper 是一个通用的语音识别模型。它是在一个大型的不同音频数据集上训练出来的&#xff0c;也是一个多任务模型&#xff0c;可以进行多语言语…

MySQL笔记(一):设计范式、基础概念、数据库定义语言DDL

MySQL设计范式、基础概念、数据库定义语言DDL MySQL设计范式、基础概念、数据库定义语言DDL MySQL设计范式、基础概念、数据库定义语言DDL数据模型属性的特点 数据库的创建主键 数据库设计规范第一范式&#xff08;1NF&#xff09;第二范式&#xff08;2NF&#xff09;第三范式…

智能制造之路-从MES到MOM

当前&#xff0c;中国正在大力推动制造业的转型升级&#xff0c;实现由传统制造向智能制造转型。而制造信息化系统&#xff0c;作为支撑企业实现智能制造的一个关键因素&#xff0c;也正越来越多的吸引企业领导人的关注。 某大型制造业集团企业&#xff08;下文简称M集团&…

【Java虚拟机】JVM日志分析和可视化工具实操

1.JVM垃圾GC日志参数配置实战 Java虚拟机中垃圾收集器在运行过程中输出的日志信息主要用于分析垃圾收集器的运行状态、优化垃圾收集器的工作效率以及定位垃圾收集相关的问题GC日志会包含以下内容 垃圾收集器的名称和版本信息。垃圾收集器的运行时间、开始时间和结束时间。垃圾…