板块零 IDEA编译器基础:第三节 下载和在IDEA中集成 Tomcat服务器 来自【汤米尼克的JAVAEE全套教程专栏】

板块零 IDEA编译器基础:第三节 下载和在IDEA中集成 Tomcat服务器

  • 一、为什么选择Tomcat
    • (1)常见的JAVA WEB服务器
    • (2)选择Tomcat的理由
  • 二、Tomcat 8.5下载解压
  • 三、Tomcat 结构目录
  • 四、在IDEA中集成Tomcat

假设我们已经按照上一节的内容实现了在IDEA中创建一个JAVA WEB项目,并做好了IDEA的基础设置的工作,这一节中我们将使用Tomcat服务器集成到IDEA中,真正将JAVA WEB项目与服务器连接起来, 并且投射在浏览器上

一、为什么选择Tomcat

Web服务器是运行及发布Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中的所有用户通过浏览器进行访问,Tomcat是一个符合JavaEE WEB标准的最小的WEB容器,所有的JSP程序一定要有WEB容器的支持才能运行,而且在给定的WEB容器里面都会支持事务处理操作

(1)常见的JAVA WEB服务器

一般可以将WEB服务器划分为三类:

  • Web应用服务器(又叫Web容器)主要部署动态Web应用并提供Web服务;
  • Web服务器(或者Http服务器)主要提供静态Web资源的访问;
  • 代理服务器,一般部署在Web应用服务器或者Web服务器前面提供Web资源缓存及代理功能

常见的WEB应用服务器及其特点

  • Tomcat 服务器
    目前非常流行的Tomcat服务器是Apache-Jarkarta开源项目中的一个子项目,是一个小型、轻量级的支持JSP和Servlet 技术的Web服务器,也是初学者学习开发JSP应用的首选,我们通常称Apache为Apache httpd,而Tomcat是Apache的扩展。
  • Resin 服务器
    Resin是Caucho公司的产品,是一个非常流行的支持Servlet和JSP的服务器,速度非常快。Resin本身包含了一个支持HTML的Web服务器,这使它不仅可以显示动态内容,而且显示静态内容的能力也毫不逊色,因此许多网站都是使用Resin服务器构建
  • JBoss服务器
    JBoss是一个种遵从JavaEE规范的、开放源代码的、纯Java的EJB服务器,对于J2EE有很好的支持。JBoss采用JML API实现软件模块的集成与管理,其核心服务又是提供EJB服务器,不包含Servlet和JSP的Web容器,不过它可以和Tomcat完美结合
  • WebSphere 服务器
    WebSphere是IBM公司的产品,可进一步细分为 WebSphere Performance Pack、Cache Manager 和WebSphere Application Server等系列,其中WebSphere Application Server 是基于Java 的应用环境,可以运行于 Sun Solaris、Windows NT 等多种操作系统平台,用于建立、部署和管理Internet和Intranet Web应用程序
  • WebLogic 服务器
    WebLogic 是BEA公司的产品(现在已经被Oracle收购),可进一步细分为 WebLogic Server、WebLogic Enterprise 和 WebLogic Portal 等系列,其中 WebLogic Server 的功能特别强大。WebLogic 支持企业级的、多层次的和完全分布式的Web应用,并且服务器的配置简单、界面友好。对于那些正在寻求能够提供Java平台所拥有的一切应用服务器的用户来说,WebLogic是一个十分理想的选择

(2)选择Tomcat的理由

  • 免费、开源,Apache基金会提供支持,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选
  • JavaWeb需要运行在Web应用服务器上才能提供服务;
  • 使用简单,资料文档丰富,能更快上手;
  • 支持最新的Servlet和Jsp规范;
  • 版本更新快,目前(2024.2.6)已经更新到Tomcat 11;
  • 跨平台,可以运行在Windows、Linux等各种操作系统上;
  • 支持负载均衡,可以与Apache、Nginx、Varnish等配合实现高性能Web服务。

二、Tomcat 8.5下载解压

下载Tomcat 8.5,访问Apche Tomcat 8 的下载官网
在这里插入图片描述
同样,WIN+R cmd中输入systeminfo查看系统是32位还是64位就可以下载了
在这里插入图片描述
下载完成后解压
在这里插入图片描述
解压后打开文件->bin,找到 startup.bat Windows批处理文件
在这里插入图片描述
双击运行
在这里插入图片描述

弹窗的这样就说明Tomcat成功使用了,若不成功,检查JAVA在系统的环境变量中是否成功配置,因为运行Tomcat 需要JDK的支持【Tomcat会通过JAVA_HOME找到所需要的JDK】
在这里插入图片描述
启动Tomcat的同时,在浏览器中访问http://localhost:8080/
有页面
在这里插入图片描述
则算安装成功,其中Examples中还有一些有趣的示例供我们了解Servlet和Tomcat的使用
在这里插入图片描述

三、Tomcat 结构目录

在去IDEA搭建Tomcat之前,我们还需要回头再学习一下Tomcat的组成
在这里插入图片描述

  • bin:该目录下存放的是二进制可执行文件,解压版中会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但需要先配置JAVA_HOME环境变量才能启动,shutdawn.bat用来停止Tomcat

  • conf:配置文件,其中有四个最为重要的文件
    1.server.xml:配置整个服务器信息。例如修改端口号,添加虚拟主机等
    2.tomcat-users.xml:存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了
    3.web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的
    4.context.xml:对所有应用的统一配置,通常不需要去配置它

  • lib:Tomcat的类库,里面是一大堆jar文件。如果需要添加Tomcat依赖的jar文件,可以把它放到这个目录中,当然也可以把应用依赖的jar文件放到这个目录中,这个目录中的jar所有项目都可以共享之,但这样你的应用放到其他Tomcat下时就不能再共享这个目录下的Jar包了,所以建议只把Tomcat需要的Jar包放到这个目录下

  • log:这个目录中都是日志文件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在日志文件中

  • temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除

  • webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的。项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目

  • work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的!可以把这个目录下的内容删除,再次运行时会生再次生成work目录。当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下

四、在IDEA中集成Tomcat

打开项目,在文件选择菜单中找到编辑配置
在这里插入图片描述
添加新配置中选择本地Tomcat
在这里插入图片描述
添加好后点击Tomcat服务器->服务器->配置->点击加号->填写Tomcat主目录和根目录
注意两个目录都是选择到刚刚解压的Tomcat目录的bin上面的那个文件夹
在这里插入图片描述
现在可以更改此Tomcat的名称以显示在运行窗口,可以选择启动服务器后默认是否打开浏览器,以及打勾选择哪几个浏览器会出现在IDEA右上角使服务器启动后快捷打开当前网页在这里插入图片描述在这里插入图片描述
此外,还可以设置URL,就是在浏览器中看见的地址,
以及项目使用的JRE,如果不更改既是当前系统环境变量中的JAVA
以及四种默认端口,但不建议改在这里插入图片描述
接下来只差最后一步了,还是在编辑配置中找到部署,点击+添加工件,后应用->确定,既完成
在这里插入图片描述

如果没有在部署的+中找到工件,那请不要紧张
在这里插入图片描述
没有工件我们就创造工件!文件->项目结构
在这里插入图片描述
先检查一下项目中的模块下有没有Web模块了,有了的话就点击右下角的创建工件
在这里插入图片描述
在这里插入图片描述
之后会弹出一个窗口
在这里插入图片描述
一直点确定、应用就创造工件完成了,现在再去部署里添加工件就可以了。

部署完成后在服务器运行时
在前端文件 hello.jsp 中

<%--
  Created by IntelliJ IDEA.
  User: ToomyNike
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
	<head>
	    <title>hello</title>
	    
	</head>
	<body>
		<h1>Tomcat with IDEA</h1>
	</body>
</html>

右上角点击快捷浏览器
在这里插入图片描述
即可得到
在这里插入图片描述
综上,我们在这一节中学习了Tomcat的理论知识,从0到1实现了 Tomcat集成到IDEA中,终于完成了所有IDEA编译器的基础工作,在下一板块中我们将开始Servlet的学习

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/386937.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于显卡、显卡驱动、cuda、cuDNN等的区别

关于显卡、显卡驱动、cuda、cuDNN等的区别 刚接触AI或机器学习框架时&#xff0c;经常会被这几个概念搞混&#xff0c;尤其是显卡驱动、cuda、cuDNN这个三个软的东西&#xff1b;此外&#xff0c;NVCC、cudatoolkit又是什么呢&#xff1f; 1. 显卡(GPU) 显卡就是硬件&#xff…

2001-2022年368个地级市平均气温数据

2001-2022年368个地级市平均气温数据 1、时间:2001-2022年 2、范围&#xff1a;368个地级市 3、来源&#xff1a;基于NOAA下属NCEI提供的原始数据编制而成的。 4、指标&#xff1a;年份、省份、省份代码、城市、城市代码、平均气温 5、指标解释&#xff1a;平均气温指某一…

Linux下的多用户管理和认证:从入门到精通(附实例)

Linux操作系统以其强大的多用户管理和认证机制而著称。这种机制不仅允许多个用户同时登录并执行各种任务&#xff0c;还能确保每个用户的数据安全和隐私。本文将通过一系列实例&#xff0c;带你逐步掌握Linux下的多用户管理和认证。 一、Linux多用户管理的基础知识 在Linux中&…

Ubuntu下Anaconda+PyCharm搭建PyTorch环境

这里主要介绍在condapytorch都正确安装的前提下&#xff0c;如何通过pycharm建立开发环境&#xff1b; Ubuntu下AnacondaPyCharm搭建PyTorch环境 系统环境&#xff1a;Ubuntu22.04 conda: conda 23.11.0 pycharm:如下 condapytorch的安装教程介绍&#xff0c;请点击这里&…

【原理分析】用JAVA还原刘谦在2024央视春晚的扑克牌魔术

【原理分析】用JAVA分析刘谦在2024央视春晚的扑克牌魔术 前言原理分析代码实现程序结构变量和方法程序思路代码实现运行截图 总结 前言 央视春晚与魔术师刘谦从2009年开始&#xff0c;近十年间深度捆绑&#xff0c;刘谦开辟了春晚近景魔术的先河&#xff0c;一句“见证奇迹的时…

cordic算法圆周系统计算sin、cos、平方和开根、atan、坐标系变换

cordic算法圆周系统计算sin、cos、平方和开根、atan 一、cordic圆周系统旋转模式和向量模式1.1 旋转模式1.2 向量模式 二、一些需要考虑的事项2.1角度范围2.2输入正负2.3关于迭代精度2.4坐标系旋转 参考文献&#xff1a; 若想计算 s i n sin sin、 c o s cos cos、 x 2 y 2 \s…

python3 中try 异常调试 raise 异常抛出

一、什么是异常&#xff1f; 异常即是一个事件&#xff0c;该事件会在程序执行过程中发生&#xff0c;影响了程序的正常执行。 一般情况下&#xff0c;在Python无法正常处理程序时就会发生一个异常。 异常是Python对象&#xff0c;表示一个错误。 当Python脚本发生异常时我…

Django学习全纪录:编写你的第一个 Django 应用,Django内置数据库的配置,以及扩展性的数据库介绍和配置

天下古今之庸人&#xff0c;皆以一惰字致败&#xff1b;天下古今之人才&#xff0c;皆以一傲字致败。——[清]曾国藩 导言 大家好&#xff0c;在上一篇文章里&#xff0c;我们一起学习了Django的视图以及路由&#xff0c;并且对Django的应用有了初步的认识&#xff0c;掌握了…

Java实现CRM客户管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 用例设计3.2 E-R 图设计3.3 数据库设计3.3.1 客户表3.3.2 商品表3.3.3 客户跟踪表3.3.4 客户消费表3.3.5 系统角色表 四、系统展示五、核心代码5.1 查询客户5.2 新增客户跟踪记录5.3 新增客户消费订单5.4 查…

本地搭建three.js官方文档

因为three.js官网文档是国外的网站&#xff0c;所以你没有魔法的情况下打开会很慢&#xff0c;这时我们需要在本地搭建一个官方文档便于我们学习查看。 第一步&#xff1a;首先我们先访问GitHub地址 GitHub - mrdoob/three.js: JavaScript 3D Library. 下载不下来的小伙伴们私…

30、二维数组/字符串操作相关练习20240214

一、编程实现二维数组的杨辉三角。 代码&#xff1a; #include<stdlib.h> #include<string.h> #include<stdio.h>int main(int argc, const char *argv[]) {int n;printf("please enter n:");scanf("%d",&n);int arr[n][n];for(in…

本地部署Stable Diffusion WebUI

官网 Stable Diffusion在线 Github上的Stable Diffusion WebUI 提醒一下&#xff1a;下面实例讲解是在Mac系统演示的&#xff1b; 一、 环境所需资源 PythonPycharmAnacondastable-diffusion-webui项目代码 注意事项 python版本一定要3.10&#xff0c;最好是3.10.6版本的。…

vue3 之 商城项目—购物车

购物车业务逻辑梳理拆解 1️⃣整个购物车的实现分为两个大分支&#xff0c;本地购物车操作和接口购物车操作 2️⃣由于购物车数据的特殊性&#xff0c;采取Pinia管理购物车列表数据并添加持久话缓存 本地购物车—加入购物车实现 stores/cartStore.js // 封装购物车模块 imp…

片上网络NoC(6)——路由算法

目录 一、概述 二、路由算法的类型 三、避免死锁 四、实现 4.1 源路由实现 4.2 基于节点查找表的路由实现 4.3 组合电路实现 五、总结 一、概述 路由算法&#xff08;routing algorithm&#xff09;&#xff0c;即决定数据包在网络拓扑中从起点到终点路径的算法。路由算…

vue3+ts+vite+uniapp项目常见问题

vue3tsvite中""路径失效的问题 ""需要进行配置&#xff1a; 首先npm install types/node --save-dev&#xff08;需要用到node其中的path&#xff09;接着在vite.config.ts配置文件中进行配置&#xff1a; 引入 import path from ‘path’&#xff0c;然…

Momentum2

攻击机 192.168.223.128 目标机 192.168.223.147 主机发现 nmap -sP 192.168.223.0/24 端口扫描 nmap -sV -A -p- 192.168.223.147 开启了22 80 端口 看一下web界面 源码&#xff0c;robots.txt ,url都观察了一下好像没什么有用信息 扫一下目录 gobuster dir -u http:…

Ubuntu Linux使用PL2302串口和minicom进行开发板调试

调试远程的服务器上面的BMC&#xff0c;服务器上面安装了Ubuntu&#xff0c;想着可以在服务器接个串口到BMC&#xff0c;然后SSH到服务器的Ubuntu&#xff0c;用minicom来查看串口信息。 准备&#xff1a; 服务器Ubuntu安装mimicom 本机可以ssh到Ubuntu 串口工具PL2302 或者CH3…

炫酷3D按钮

一.预览 该样式有一种3D变换的高级感&#xff0c;大家可以合理利用这些样式到自己的按钮上 二.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice…

Web前端 ---- 【Vue】(组件)父子组件之间的通信一文带你了解

目录 前言 父组件传子组件 ---- props 给要传递数据的子组件绑定要传过去的属性及属性值 在子组件中使用props配置项接收 props配置项 子组件传父组件 ---- 组件的自定义事件 子组件向父组件传递数据 通过代码来绑定自定义事件 前言 本文将介绍在Vue中父子组件如何进行…

算法学习——LeetCode力扣回溯篇4

算法学习——LeetCode力扣回溯篇4 332. 重新安排行程 332. 重新安排行程 - 力扣&#xff08;LeetCode&#xff09; 描述 给你一份航线列表 tickets &#xff0c;其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票…