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

news/2025/2/22 8:37:49/

文章目录

  • 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.ppmy.cn/news/64298.html

相关文章

Linux线程同步(1)——一个例子看懂为什么需要线程同步?

对于一个单线程进程来说&#xff0c;它不需要处理线程同步的问题&#xff0c;所以线程同步是在多线程环境下需要注意的问题。线程的主要优势在于&#xff0c;资源的共享性&#xff0c;譬如通过全局变量来实现信息共享&#xff0c;不过这种便捷的共享是有代价的&#xff0c;那就…

极客公园对话 Zilliz 星爵:大模型时代,需要新的「存储基建」

大模型在以「日更」进展的同时&#xff0c;不知不觉也带来一股焦虑情绪&#xff1a;估值 130 亿美元的 AI 写作工具 Grammarly 在 ChatGPT 发布后网站用户直线下降&#xff1b;AI 聊天机器人独角兽公司 Character.AI 的自建大模型在 ChatGPT 进步之下&#xff0c;被质疑能否形成…

线上 FullGC 问题排查实践 —— 手把手教你排查线上问题

一、问题发现与排查 1.1 找到问题原因 问题起因是我们收到了 jdos 的容器 CPU 告警&#xff0c;CPU 使用率已经达到 104% 观察该机器日志发现&#xff0c;此时有很多线程在执行跑批任务。正常来说&#xff0c;跑批任务是低 CPU 高内存型&#xff0c;所以此时考虑是 FullGC 引…

Rust + 嵌入式:强力开发组合

Rust 的由来 Rust 编程语言的灵感诞生于一次意外。2006年&#xff0c;当 Graydon Hoare 回到位于温哥华的公寓时&#xff0c;发现电梯又因为软件崩溃出了故障。住在 21 楼的他无奈爬楼时&#xff0c;不禁心想&#xff0c;“我们搞计算机的&#xff0c;怎么连个能正常运行的电梯…

Spring Security OAuth2.0(四)-----OAuth2+JWT

传统的通过 session 来记录用户认证信息的方式我们可以理解为这是一种有状态登录&#xff0c;而 JWT 则代表了一种无状态登录。「无状态登录天然的具备单点登录能力」 1. 无状态登录 1.1 什么是有状态 有状态服务&#xff0c;即服务端需要记录每次会话的客户端信息&#xff…

2023-05-08 数据库-流水操作与物化-分析

摘要: 数据库的查询模型比较经典的是火山模型, 其实就是流水线操作, 例如mysql. 作为对应的便是物化模型, 例如monetdb. 列存数据库自从monetdb的开创性paper开始, 几乎都是采用了物化模型. 并且一定程度上结合了流水线操作, 例如duckdb. 本文做些简要的分析. 流水线操作/火…

细说Hibernate的缓存机制

Hibernate 的缓存机制主要包括一级缓存和二级缓存。 1. 一级缓存&#xff08;Session 缓存&#xff09;&#xff1a; 一级缓存是 Hibernate 的 Session 级别的缓存&#xff0c;与每个 Session 对象相关联。当您通过 Session 对象执行查询、保存或更新操作时&#xff0c;Hibern…

关于git stash使用

在 Git 中&#xff0c;可以使用 git stash 命令将未提交的更改保存在一个临时存储区中&#xff0c;以便在需要的时候重新应用这些更改。如果需要撤销最近的 git stash 操作&#xff0c;可以使用 git stash pop 命令来将最近一次存储的更改应用到工作区。 如果需要回到之前的某…