【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技术,一起加油!!!

相关推荐
白鸽(二般)4 小时前
MinIO Java Client API
java·开发语言
nxb5564 小时前
haproxy算法,ip透传,自定义haproxy错误页面
运维·服务器
软萌萌的14 小时前
Java Spring Boot 修改yml配置&加载顺序规则
java·spring boot·python
IT小盘5 小时前
13-企业Prompt模板-角色任务约束与输出格式
java·前端·prompt
爱敲键盘的猴子5 小时前
Java并发编程 -- volatile
java·java并发
plainGeekDev7 小时前
工厂模式 → Hilt
android·java·kotlin
plainGeekDev7 小时前
Application 单例 → Hilt Singleton
android·java·kotlin
888CC++7 小时前
C语言与C++的区别:从面向过程到面向对象
java·c语言·c++
学者猫头鹰8 小时前
分布式事务实战教程
java·分布式
heimeiyingwang9 小时前
【架构实战】Kubernetes调度器深度剖析:从Pod调度到自定义调度器
java·架构·kubernetes