【JavaWeb】Tomact部署Web项目及Maven工具的使用

简介: Tomcat是一个web服务器,用于提供web(http,https)服务端程序,它是一个基于Java实现的一个开源且免费,也被广泛使用的HTTP服务器

什么是Tomcat?

Tomcat是一个web服务器,用于提供web(http,https)服务端程序,它是一个基于Java实现的一个开源且免费,也被广泛使用的HTTP服务器


我们前面学习的HTTP协议,知道HTTP协议就是约定HTTP客户端和HTTP服务端之间数据交互的格式,Tomcat服务器已经给我们包装好了对请求的解析和分用,以及响应的封装,它的优势在于不同地方需要提供服务端功能,不需要我们自己手动去写请求的解析和响应的封装


Tomcat的安装及环境配置

直接去Tomcat官网下载,下载地址:Tomcat下载地址


下载完后进行解压,但是注意的是解压的路径不要存在中文,否则点击启动脚本无法执行

image.png



检测JAVA_HOME环境变量是否配置成功


要启动Tomcat,需要提前配置jdk环境变量,可以在cmd中使用"%java_home%/bin/java" -version命令来检查配置JAVA_HOME环境变量是否正确

image.png


启动Tomcat服务器

image.png


如果双击后,出现了一个小的黑窗口,闪一下就没了,可能是环境变量没有配置好


端口被其他程序绑定时的处理方法


注意要观察启动的信息有没有报错,如果有Address already in use,表示Tomcat需要绑定的端口(默认绑定8080端口),被其他程序占用了


检查某个端口是否被占用:


windows:netstat -ano | findstr 端口号

linux:netatat -anp | grep 端口号

如果端口号被其他应用程序占用,使用taskkill -pid pid号 -f来处理掉程序


如果启动Tomcat后,访问127.0.0.1:8080,出现如下页面:

image.png


这种情况也是端口号被占用,只需要将8080端口绑定的程序杀死即可


查看8080端是否被占用:

image.png

杀死该应用程序(注意要以管理员身份运行):

image.png

解决掉端口及环境变量问题,重新启动Tomcat服务器


重新启动Tomcat,访问127.0.0.1:8080,出现如下页面表示Tomcat启动成功

image.png



使用这两个都可以访问:


本机IP:127.0.0.1

本机域名:localhost

注意:在windows上通过cmd方式启动Tomcat会出现乱码,但是不影响使用,乱码的原因是Tomcat默认按照UTF-8方式处理中文,而windows的cmd默认是GBK编码


Tomcat的目录结构

image.png


对目录结构的说明:


bin:存放执行脚本,如启动脚本,终止脚本,.bat是windows上的批处理脚本,.sh是linux上的批处理脚本

conf:存放配置文件,配置文件可以配置服务器的端口等

lib:存放Tomcat服务器需要的运行内库,里面都是jar格式的文件(jar格式是一个压缩格式,里面存放class文件)

logs:存放日志文件,运行产生的信息,用来定位一些信息

temp:临时文件夹,不用关心

webapps:存放web应用,一个webapp就是一个web应用,可以存多个webapp

work:Tomcat内部进行预编译的文件夹

下面的都是一些文档

我们最关心的是webapps目录,它是用来存放web应用的文件夹,关于web应用:一个具有完整功能的网站,可以称之为web应用,比如百度搜索,实现了完整的搜索引擎功能,淘宝实现了独立完整的电商功能,一个Tomcat服务器上是可以同时部署多个这样的web应用,这些web应用以目录的形式存放于webapps目录中


部署Web项目

webapps目录下,每一个文件夹就是一个webapp


这个页面就是webapps文件夹中ROOT文件夹下的页面

image.png


如果不是ROOT文件夹,还需要输入文件夹的名称才可以访问


示例:在webapps目录下,创建一个test文件夹,在test文件夹中创建一个index.html,使用浏览器访问

image.png


注意:


webapps目录下,每一个文件夹就是一个webapp

webapps目录下,不能直接访问html文件

对于非ROOT目录,访问时要带上webapp文件夹名称,对于ROOT目录,不用带文件夹名称

例如:在ROOT目录下,创建一个index.html,使用浏览器访问

image.png


/ 会默认查找index.html资源

使用这个路径127.0.0.1:8080也可以访问到

image.png


webapp文件夹的名字,不要有空格,中文,特殊字符

部署博客系统页面到Tomcat服务器中


1. 把之前的博客系统页面文件直接复制到webapps目录下

image.png

2. 更改文件夹名字,不要出现中文等特殊符号

image.png

 

3. 访问博客系统页面:

image.png


除了这种部署方式,还有更简便的部署方式,将在下一篇文章Servlet中讲解


为什么要使用项目构建工具?

前面在数据库的JDBC编程中,引入了jar后缀的文件作为项目依赖,才可以使用里面的类和接口,通过下载jar文件,然后配置到项目依赖中,操作是比较繁琐的


使用项目构建工具,可以通过配置使用相同的依赖,构建工具会自动下载,并引入为项目的依赖包


对于打包来说:是将程序实现的功能打一个jar包,提供给别人使用


对于Web开发来说:需要把html,css,js,class文件复制到Tomcat的webapps目录下的文件夹中,过程是比较复杂的,使用构建工具后,可以把web应用打一个war格式的文件,war格式是一个压缩格式的文件,里面包含了web应用的内容


对于Java项目,构建工具有很多产品,如ant(比较老了,几乎被淘汰了),gradle(安卓开发比较常用),maven(后端开发使用广泛)


Maven工具的介绍

Maven是一个项目构建工具,创建的项目只要遵循Maven规范(称为Maven项目),即可以使用Maven来进行管理:编译,打包等


Maven是一个Java开发的程序,可以单独下载使用,但是idea内置了maven这个程序作为插件,可以直接在idea中使用


IDEA中创建Maven项目

创建项目时不在创建之前的Java项目,而是选择创建Maven项目

image.png

选择创建Maven项目的路径

image.png


创建完成后,如果右下角出现以下弹窗,需要开启自动导入功能:

image.png

第一次创建可能需要下载很多程序:

image.png


Maven面板里面,可以看到Maven项目的命令,插件和依赖包:

微信图片_20221030163651.png


Maven查找依赖的流程

Maven项目中可以引入依赖包,引入后,加载依赖包的方式为在Maven仓库中搜索,Maven仓库可以理解为存放依赖包的仓库,分为本地仓库和远程仓库两种

image.png


Maven项目配置文件

项目的根路径下,生成了一个pom.xml文件(Maven的配置文件),可以配置项目需要引入的依赖,编译结构,打包等

image.png



image.png


引入依赖包的方式

image.png



groupId:组织名,一般为公司域名

artifactId:组织名,一般是项目的名称

version:版本号

注意:在idea中修改了pom.xml后,记得刷新Maven面板才能生效


本项目作为一个产品,也有对应的三个属相唯一标识

image.png



Maven项目的结构(由Maven规范规定的)

image.png

在java目录下,随便创建一个类,在resources目录下随便创建一个配置文件,运行观察编译目录

image.png

Maven的生命周期命令

Maven构建工具主要目的就是对Maven项目进行管理,这些都是通过Maven的生命周期命令来管理的,在IDEA创建的Maven项目中,打开Maven面板,展开项目的Lifecycle即为生命周期命令

微信图片_20221030163841.png

总结常用Maven生命周期命令:


clean:清除命令,删除target编译目录

compile:编译命令,编译开发代码,资源文件

package:打包命令,将整个项目打包为一个压缩文件


相关文章
|
25天前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
|
14天前
|
Java 持续交付 项目管理
使用Maven进行项目管理:提高Java Web开发的效率
Maven 是一款强大的项目管理和构建自动化工具,广泛应用于Java社区。它通过依赖管理、构建生命周期管理、插件机制和多模块项目支持等功能,简化了项目的构建过程,提高了开发效率。本文将介绍Maven的核心功能及其在Java Web开发中的应用。
32 0
|
2月前
|
SQL Java 数据库连接
JavaWeb基础3——Maven基础&MyBatis
构建工具Maven、Maven安装配置、基本使用、IDEA使用Maven、依赖管理、插件、Mybatis、核心配置文件mybatis-config.xml、Mapper代理开发、配置文件实现增删改查、Mybatis参数传递、注解实现增删改查
JavaWeb基础3——Maven基础&MyBatis
|
2月前
|
前端开发 JavaScript
构建你的第一个Web应用:从零到部署
【8月更文挑战第33天】 在这篇文章中,我们将一起踏上构建一个基本Web应用的旅程。不同于传统的“安装这个、运行那个”教程,我们的目标是通过理解每一步的意义和目的来深化你的技术理解。我们将探索HTML、CSS、JavaScript的基础,并学习如何将它们结合起来创建一个简单的个人网站。接着,我们会介绍如何使用GitHub Pages进行免费部署,让你的应用上线。准备好了吗?让我们开始吧!
|
2月前
|
负载均衡 网络协议 应用服务中间件
web群集--rocky9.2源码部署nginx1.24的详细过程
Nginx 是一款由 Igor Sysoev 开发的开源高性能 HTTP 服务器和反向代理服务器,自 2004 年发布以来,以其高效、稳定和灵活的特点迅速成为许多网站和应用的首选。本文详细介绍了 Nginx 的核心概念、工作原理及常见使用场景,涵盖高并发处理、反向代理、负载均衡、低内存占用等特点,并提供了安装配置教程,适合开发者参考学习。
|
3月前
|
JavaScript 搜索推荐 前端开发
从零搭建到部署:Angular与Angular Universal手把手教你实现服务器端渲染(SSR),全面解析及实战指南助你提升Web应用性能与SEO优化效果
【8月更文挑战第31天】服务器端渲染(SSR)是现代Web开发的关键技术,能显著提升SEO效果及首屏加载速度,改善用户体验。Angular Universal作为官方SSR解决方案,允许在服务器端生成静态HTML文件。本文通过具体示例详细介绍如何使用Angular Universal实现SSR,并分享最佳实践。首先需安装Node.js和npm。
79 1
|
3月前
|
C# 开发者 Windows
WPF遇上Office:一场关于Word与Excel自动化操作的技术盛宴,从环境搭建到代码实战,看WPF如何玩转文档处理的那些事儿
【8月更文挑战第31天】Windows Presentation Foundation (WPF) 是 .NET Framework 的重要组件,以其强大的图形界面和灵活的数据绑定功能著称。本文通过具体示例代码,介绍如何在 WPF 应用中实现 Word 和 Excel 文档的自动化操作,包括文档的读取、编辑和保存等。首先创建 WPF 项目并设计用户界面,然后在 `MainWindow.xaml.cs` 中编写逻辑代码,利用 `Microsoft.Office.Interop` 命名空间实现 Office 文档的自动化处理。文章还提供了注意事项,帮助开发者避免常见问题。
241 0
|
3月前
|
Java UED 自然语言处理
Struts 2 国际化竟有如此神奇魔力?快来揭开多语言支持的 Web 应用神秘面纱
【8月更文挑战第31天】在全球化背景下,Web应用需适应多种语言环境。Struts 2凭借其强大的国际化(i18n)支持,简化了多语言应用开发。通过不同语言的资源文件,它能自动匹配用户语言偏好,优化用户体验并扩展用户群。下面是一个示例:创建`messages.properties`(英语)与`messages_zh_CN.properties`(中文),并在Struts 2的Action类及JSP页面中调用`getText()`方法及Struts标签展示相应语言内容。此外,在struts.xml中指定资源文件,以确保框架正确加载对应语言包。通过这些步骤,开发者可以轻松实现应用的多语言支持。
65 0
|
3月前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
55 0
|
3月前
|
Java 开发者 关系型数据库
JSF与AWS的神秘之旅:如何在云端部署JSF应用,让你的Web应用如虎添翼?
【8月更文挑战第31天】在云计算蓬勃发展的今天,AWS已成为企业级应用的首选平台。本文探讨了在AWS上部署JSF(JavaServer Faces)应用的方法,这是一种广泛使用的Java Web框架。通过了解并利用AWS的基础设施与服务,如EC2、RDS 和 S3,开发者能够高效地部署和管理JSF应用。文章还提供了具体的部署步骤示例,并讨论了使用AWS可能遇到的挑战及应对策略,帮助开发者更好地利用AWS的强大功能,提升Web应用开发效率。
65 0

推荐镜像

更多