【Web】初识Web和Tomcat服务器

目录

前言

一、认识web

[1. 软件架构模式](#1. 软件架构模式)

[2. web资源](#2. web资源)

[3. URL请求路径(统一资源定位符)](#3. URL请求路径(统一资源定位符))

二、Tomcat服务器

[1. 简介](#1. 简介)

[2. tomcat服务器的目录结构](#2. tomcat服务器的目录结构)

3.使用tomcat服务器启动失败的常见原因

[3.1 端口冲突](#3.1 端口冲突)

[3.2 jdk环境变量配置出错](#3.2 jdk环境变量配置出错)

三、使用Tomcat发布Web项目

[1. 使用tomcat的webapps发布web项目](#1. 使用tomcat的webapps发布web项目)

[2. 使用IDEA创建web项目并发布](#2. 使用IDEA创建web项目并发布)

写在最后


前言

转眼就大三了,之前学习软件工程和java这两门课的时候都有接触到javaweb,但是都是浅尝辄止,只是了解了皮毛,完成了几个现成的项目,并没有深入学习javaWeb的相关知识。从今天开始,重新从零开始学习一下web的基础知识,为接下来的实习就业做好准备。

一、认识web

1. 软件架构模式

比较常见的软件架构模式有B/S和C/S架构模式,其典型代表分别为浏览器模式和客户端模式。

web就属于B/S架构。

2. web资源

分为静态资源和动态资源。

静态资源就是用html、css、js写的静态的页面

动态资源就是就有交互功能的页面,通常需要和服务器进行通信

3. URL请求路径(统一资源定位符)

本质就是通过该路径访问web资源,其具有唯一性。(可以理解就是网址)

格式:协议名称://服务器ip:端口号/项目名/资源路径

https://127.0.0.1:80/exem/proj

域名式 https://www.baidu.com

(1)这种域名的本质上也是url请求路径,不同的地方是 带域名的需要解析成 服务器IP:端口号的形式。

(2)对于解析的过程,首先访问本地域名解析文件,检索是否存在,如果不存在,则去DNS域名解析服务器上找。

(3)如果ip地址后面不加端口号,那么默认是80端口

(4)为什么要采用域名呢?因为好记呀,不然我们想要访问百度还得记住百度的ip和端口,还有其他那么多网站,根本记不住的。

二、Tomcat服务器

1. 简介

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器

2. tomcat服务器的目录结构

bin目录用于存放可执行文件,有两个可执行文件比较常用,一个是startup.bat启动服务器,另一个是shutdown.bat关闭服务器

conf目录用于存放配置文件,其中sever.xml是服务器的配置文件,配置例如端口号等信息,web.xml是tomcat服务器管理的web项目的核心配置文件,比如欢迎标签等信息。

lib目录用于存放依赖的jar包

logs目录用于存放日志

webapps用于存放发布的web资源,使用时直接新建文件夹作为项目名称,存放web资源,启动服务器之后通过资源路径即可访问。

3.使用tomcat服务器启动失败的常见原因

3.1 端口冲突

win+r输入cmd打开命令行窗口,输入netstat -nao查看冲突端口运行服务的pid,然后去任务管理器中将其关闭即可

3.2 jdk环境变量配置出错

重新检查配置一下

三、使用Tomcat发布Web项目

1. 使用tomcat的webapps发布web项目

使用时直接新建文件夹作为项目名称,存放web资源,启动服务器之后通过资源路径即可访问。

2. 使用IDEA创建web项目并发布

(1)创建项目

(2)创建完成之后目录结构为这个样子。接下来我们来我们介绍一下web项目特有的webapp目录。

webapp

WEB-INF 存放配置和资源文件

web.xml web项目核心配置文件

lib 依赖的jar包

classes java文件编译后的calss文件

index.jsp 欢迎页

web资源 web资源

(3)配置IDEA中tomcat服务器启动web选项

(4)启动web项目

能够在浏览器中访问说明启动成功了!

写在最后

今天的学习就到此结束啦,希望大家读完有所帮助,明天我们将会学习servlet技术,一起加油!!!

相关推荐
未秃头的程序猿2 分钟前
别再让大模型单打独斗了!Java 多 Agent 协作实战:任务拆解+结果聚合
java·后端·ai编程
STDD3 分钟前
ATLAS MMO 专用服务器搭建教程:海盗生存 MMO 服务器开服指南
运维·服务器·php
右耳朵猫AI4 分钟前
Java & JVM技术周刊 2026年第20周
java·开发语言·jvm
人道领域5 分钟前
【LeetCode刷题日记】538.把二叉搜索树转换为累加树
java·开发语言·后端·算法·leetcode
铁皮哥6 分钟前
【后端开发】什么是守护线程,和普通线程有什么区别?
java·开发语言·数据库·人工智能·python·spring·intellij-idea
西凉的悲伤8 分钟前
Spring Boot + ShardingSphere 介绍
java·spring boot·后端·shardingsphere·分库分表
Lsk_Smion12 分钟前
力扣实训 _ [33].搜索旋转排序数组 _ [92].翻转链表Ⅱ
java·数据结构·算法
j_xxx404_13 分钟前
Linux 线程同步硬核解析:从条件变量、阻塞队列到信号量环形队列
linux·运维·服务器·c++·人工智能·ai·中间件
AI人工智能+电脑小能手14 分钟前
【大白话说Java面试题 第86题】【Mysql篇】第16题:MySQL 中锁的种类与行锁实现原理?
java·开发语言·数据库·mysql·面试
日月云棠20 分钟前
12 Enum —— 枚举类型的底层实现
java·后端