Javaweb学习——day1(JavaWeb 介绍与开发环境搭建)

article/2025/6/26 2:14:05

文章目录

  • 1. 什么是 JavaWeb?
  • 2. HTTP 协议与请求响应流程
    • 2.1 HTTP 概述:
    • 2.2 请求响应流程:
    • 2.3 常见 HTTP 方法:
  • 3. 开发环境搭建
    • 3.1 安装 Tomcat
      • 3.1.1 我的是win11 64位版,选择下载如图:
      • 3.1.2 解压 Tomcat
      • 3.1.3 测试 Tomcat 是否可用
    • 3.2 创建 JavaWeb 项目(IDEA 示例)
      • 3.2.1 新建 Maven 项目
      • 3.2.2 创建项目结构
      • 3.2.3 添加 Maven 配置文件 pom.xml
      • 3.2.4 添加 JSP 页面(Hello JavaWeb)
  • 4. 部署到 Tomcat(外部)

1. 什么是 JavaWeb?

JavaWeb 是指使用 Java 技术开发在 Web 服务器/容器 上运行的应用程序,通常由浏览器请求、服务器响应构成。

JavaWeb 基本架构:

浏览器(前端) ↔ HTTP 协议 ↔ Web服务器(如 Tomcat) ↔ Servlet(后端 Java 类) ↔ 数据库等

组成模块:

模块说明
客户端浏览器或前端应用,向服务器发送请求
Web服务器接收 HTTP 请求并将其分发至 Java 组件(如Servlet)处理
Servlet容器处理 Java 的业务逻辑(如登录验证、数据处理)
数据持久层数据库或文件系统,用于数据的存储与读取

2. HTTP 协议与请求响应流程

2.1 HTTP 概述:

  • 一种无状态的应用层协议
  • 使用请求-响应机制,客户端通过 HTTP 请求服务器,服务器响应数据

2.2 请求响应流程:

浏览器输入 URL →发送 HTTP 请求 →Tomcat 解析请求 →Servlet 执行业务逻辑 →响应 HTML/JSON →浏览器展示内容

2.3 常见 HTTP 方法:

方法含义
GET请求资源(读取)
POST提交数据(如表单)
PUT更新资源
DELETE删除资源

3. 开发环境搭建

我之前学习java时已经安装了IDEA社区版,版本为2024.3.4.1,以下内容仅是在已有的IDEA基础上进行环境搭建,如果还未安装IDEA,可前往官网进行下载IDEA官网

3.1 安装 Tomcat

官方下载:链接
推荐版本:Tomcat 9.x
下载类型:选择 .zip(Windows)或 .tar.gz(Linux/macOS)

3.1.1 我的是win11 64位版,选择下载如图:

在这里插入图片描述

3.1.2 解压 Tomcat

  • 解压至合适目录,例如:
	D:\Java\apache-tomcat-9.0.85

3.1.3 测试 Tomcat 是否可用

  • 双击 bin/startup.bat(Windows)或运行 ./startup.sh(Linux/macOS)
  • 浏览器访问:http://localhost:8080
  • 出现 Tomcat 欢迎页即表示启动成功
    在这里插入图片描述
    双击打开后显示如图:
    在这里插入图片描述
    不关闭此运行框,使用浏览器访问:http://localhost:8080
    如果显示如下界面,则Tomcat 可用

在这里插入图片描述

3.2 创建 JavaWeb 项目(IDEA 示例)

3.2.1 新建 Maven 项目

  1. 打开 IDEA → New Project → 选择 Maven
  2. 填写项目信息:
    GroupId: com.example
    ArtifactId: javaweb-demo
    Project Name: javaweb-demo
  3. 点击Create
  • 操作步骤如下图:
    在这里插入图片描述

3.2.2 创建项目结构

在项目根目录下创建如下目录结构(右键 → New → Directory):

src/
├── main/
│   ├── java/
│   ├── resources/
│   └── webapp/
│       └── index.jsp
  • webapp 是 Web 应用的入口目录,后续部署时 Tomcat 会识别这个目录。
    在这里插入图片描述选择 Directory后在弹出的框中输入webapp后回车

3.2.3 添加 Maven 配置文件 pom.xml

将 pom.xml 修改为如下内容,添加 servlet 依赖:

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>javaweb-demo</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency></dependencies><build><finalName>javaweb-demo</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>3.2.3</version><configuration><failOnMissingWebXml>false</failOnMissingWebXml></configuration></plugin></plugins></build>
</project>

在这里插入图片描述* 直接复制粘贴覆盖原pom.xml 代码即可,覆盖完后点击右边刷新按钮进行刷新

3.2.4 添加 JSP 页面(Hello JavaWeb)

创建 src/main/webapp/index.jsp:
在这里插入图片描述
填写内容到 index.jsp(粘贴以下代码):

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Hello JavaWeb</title>
</head>
<body><h1>Hello JavaWeb!</h1>
</body>
</html>

4. 部署到 Tomcat(外部)

【步骤 1】打包项目
在 IDEA终端 中执行:

mvn clean package

在这里插入图片描述
这里需要时间,等待即可,大概5分钟左右,完成后会有BUILD SUCCESSFULLY字样
成功后会生成 .war 文件,在:

target/javaweb-demo.war

找到该目录,将 .war 文件复制到你 Tomcat 目录的webapps/
在这里插入图片描述
在这里插入图片描述

  • 然后运行startup.bat文件(一开始的那个)
    最后打开浏览器,访问:
http://localhost:8080/javaweb-demo/

如果你看到你写的 index.jsp 页面(如 Hello JavaWeb!),就说明部署成功!
在这里插入图片描述
恭喜你,做到这一步的话你已经成功完成了Tomcat 自动解压部署,接下来可根据我后续的学习计划一步步来学习javaweb。


http://www.hkcw.cn/article/mukjdfohKi.shtml

相关文章

【沉浸式求职学习day52】【初识Mybaits】

沉浸式求职学习 什么是Mybatis1.持久化2.持久层3.为什么需要Mybatis&#xff1f;4.第一个Mybatis程序 CRUD1、namespace2、select3、Insert4、update5、Delete6、万能Map7、模糊查询 配置解析1、核心配置文件2、环境配置&#xff08;environments&#xff09;3、属性&#xff0…

mapStruct实体类属性映射工具实现

mapStruct实体类属性映射实现 1. 概述对比 BeanUtils.copyProperties场景对比 快速入门lombok mapStructmaven 依赖代码实现1. 定义两个要转换的实体类2. 定义转化接口测试 mapStruct Spring1. 注册成bean需要使用bean 转化规则1. 成员变量名不同时2. 子对象映射3. 数据类型映…

PostgreSQL 安全纵深防御:从权限到加密

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

马斯克说不想为美政府所作一起担责 拒绝成为替罪羊

美国企业家马斯克在接受采访时表达了他对美国政府的一些看法。他表示不愿为政府所做的一切承担责任,并提到他之前领导的“政府效率部”成为了各种问题的替罪羊,这让他感到不公平。马斯克还谈及了与美国总统特朗普的关系,承认两人在一些问题上存在分歧。他强调自己不想公开反…

花105万买基金亏30万 状告银行 二审驳回全部诉求

一位年过八旬的投资者在2021年投入105万元购买了一只公募基金产品,两年多时间亏损约30万元。该投资者将相关代销银行告上法庭,要求其承担赔偿责任。案件经过两次审理,一审法院判决银行承担70%损失赔偿责任并支付损失利息。二审法院则认为,投资者自主决定购买理财产品,且产…

龙舟征婚小伙称微信被加爆 千人响应求偶遇

5月31日,广州猎德村迎来一年一度的龙舟招景盛会,超过150条村前来猎德涌趁景。其中,一条龙舟上的“征婚启事”引发广泛关注。视频显示,一名男子脖子上挂着一张写有“两栋楼,海珠,未婚”的牌子,另一面则打印了他的微信二维码。6月1日,尝试通过该微信二维码添加该男子好友…

台风失踪情况确定改变 1号台风蝴蝶六月来 生成条件逐步成熟

台风失踪情况确定改变 1号台风蝴蝶六月来 生成条件逐步成熟!2025年前五个月,西北太平洋及南海海域没有生成任何一个编号台风。从1月到5月,通常会有一到两个台风生成,有时甚至在1月或2月就会出现第一个台风。然而这一年直到6月初,海面仍然平静,这种现象让很多人感到反常。…

日本7月5日末日论"疯传:漫画预言引发恐慌

日本7月5日末日论"疯传:漫画预言引发恐慌!2025年7月5日凌晨4点18分,日本将遭遇毁灭性灾难,三分之一的国土被海水吞没。最近,这条“末日预言”在中文和日文社交平台上疯狂传播,甚至导致部分外国游客取消赴日行程。而它的源头,竟然是一本30年前的漫画。这场风波的起点…

男子称质问女子遛狗不牵绳被打耳光 涉事女子取保候审引发争议

男子称质问女子遛狗不牵绳被打耳光 涉事女子取保候审引发争议!重庆的刘先生反映,2月24日晚,他在小区质问两名女子遛狗为何不牵绳,却被其中一名女子打成轻伤二级。刘先生报警后,警方拟刑事立案,但后来女子取保候审,这让刘先生难以接受。6月2日,刘先生介绍,当晚他牵着朋…

中国斯诺克创造新的纪录 32位选手新赛季出战

6月2日,世界台联确认新赛季将有32位中国球员参加职业比赛,这一数字创下新纪录。此前,赵心童和白雨露在世锦赛中夺冠,为中国斯诺克带来新的突破。上个赛季,赵心童在克鲁斯堡强势登顶,成为首位夺得该项目世锦赛冠军的亚洲球员。世界台联为他调整规则,允许成绩纳入新赛季排…

百岁老人过寿 七旬老人捡烟花被崩伤 意外引发广泛关注

5月31日,河南平顶山鲁山县发生一起意外事件,一位7旬老人在捡拾烟花筒时头部被崩伤。此事被目击者拍摄并上传网络后引起广泛关注。老人目前仍在鲁山县人民医院重症监护室接受观察和治疗。据亲属杨先生透露,医生表示老人的右眼保不住了,脑部也受了伤,后续治疗费用预计近10万…

兰博基尼车主赖账 被代驾举报酒驾 5元停车费引发风波

兰博基尼车主赖账 被代驾举报酒驾 5元停车费引发风波。近日,浙江宁波一名兰博基尼车主酒后请代驾将车开到小区,随后自己开车进入车库,但因其不愿支付代驾小哥垫付的5元停车费,被对方举报酒驾。当地交警表示,该车主血液中的酒精含量达到酒驾标准,受到暂扣驾照6个月、扣12分…

【Oracle】索引相关

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 索引基础概述1.1 索引的作用与价值1.2 索引的工作原理1.3 索引的存储结构1.4 索引与表的关系 2. Oracle索引类型2.1 B树索引(B-Tree Index)2.1.1 B树索引结构2.1.2 创建B树索引 2.2 位图索引(Bitmap Index)2…

Dify工作流实践—根据word需求文档编写测试用例到Excel中

前言 这篇文章依赖到的操作可查阅我之前的文章&#xff1a; dify里的大模型是怎么添加进来的&#xff1a;在Windows本地部署Dify详细操作 flask 框架app.route()函数的开发和调用&#xff1a;PythonWeb开发框架—Flask工程创建和app.route使用详解 结构化提示词的编写&…

同态加密在物联网数据聚合与分析中的关键作用

在物联网&#xff08;IoT&#xff09;时代&#xff0c;智能家居设备、城市交通传感器、工业生产监测装置等各类设备如雨后春笋般涌现&#xff0c;产生了海量的数据。据国际数据公司&#xff08;IDC&#xff09;预测&#xff0c;到2025年全球物联网设备设备数量已突破 300 亿台&…

ffmpeg 的视频格式转换 c# win10

1&#xff0c;下载ffmpeg &#xff0c;并设置环境变量。 ffmpeghttps://www.gyan.dev/ffmpeg/builds/ 2.新建.net 9.0 winform using System; using System.Diagnostics; using System.Text; using System.Windows.Forms;namespace WinFormsApp11 {public partial class Fo…

[MySQL初阶]MySQL(7) 表的内外连接

标题&#xff1a;[MySQL初阶]MySQL(7)表的内外连接 水墨不写bug 文章目录 一. 内连接 (INNER JOIN)二. 外连接 (OUTER JOIN)关键区别总结 三、 如何选择 在 MySQL 中&#xff0c;连接&#xff08;JOIN&#xff09;用于根据两个或多个表之间的相关列组合行。内连接&#xff08;I…

Python自带的窗体开发技术:Tkinter 从入门到精通

文章目录 第一部分&#xff1a;Tkinter 基础1. 第一个 Tkinter 程序2. 基本组件介绍3. 布局管理pack() - 简单布局grid() - 网格布局place() - 精确位置布局 第二部分&#xff1a;Tkinter 进阶1. 事件处理2. 对话框3. 菜单和工具栏 第三部分&#xff1a;Tkinter 高级应用1. 使用…

第十七章 数据集成

系列文章目录 第一章 总体概述 第二章 在实体机上安装ubuntu 第三章 Windows远程连接ubuntu 第四章 使用Docker安装和运行EMQX 第五章 Docker卸载EMQX 第六章 EMQX客户端MQTTX Desktop的安装与使用 第七章 EMQX客户端MQTTX CLI的安装与使用 第八章 Wireshark工具的安装与使用 …

榴莲能从奢侈果变成亲民果吗 供应增加价格下降

夏季是各类水果集中上市的季节,榴莲爱好者们最近有口福了,市场上榴莲价格大幅下降,甚至出现“腰斩”的情况。这背后的原因是什么?榴莲是否会从“奢侈果”变成“亲民果”?走进浙江湖州的一家榴莲批发店,可以看到榴莲成堆地摆放在货架上,老板肖女士正在通过直播销售榴莲。…