Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说xshell7连接虚拟机_xshell连接linux失败,希望能够帮助你!!!。
Linux开源操作系统课程笔记_2023年Java全套中级部分框架阶段
主要内容
学习目标
知识点 | 要求 |
---|---|
Linux简介 | 掌握 |
VMWare安装及使用 | 掌握 |
安装CentOS Stream 8 | 掌握 |
Linux安装无法启动问题 | 掌握 |
Linux目录结构及路径 | 掌握 |
常用命令 | 掌握 |
虚拟机常用配置 | 掌握 |
XShell安装及使用 | 掌握 |
XFTP安装及使用 | 掌握 |
静态IP设置 | 掌握 |
快照和克隆 | 掌握 |
JDK解压版配置步骤 | 掌握 |
Tomcat配置步骤 | 掌握 |
MySQL安装及配置 | 掌握 |
发布Web项目到Linux并访问 | 精通 |
Linux是一款操作系统。和Windows作用类似。但常把Linux作为服务器的操作系统,而Windows作为个人PC的操作系统。
肯·汤姆森(Ken Thompson)在MULTICS操作系统上研发游戏“Space Travel”,发现运行速度慢且成本比较高(每次75美元),找到丹尼斯·里奇(Dennis Ritchie)我们能不能研发一个操作系统让这个游戏运行效率更高,成本更低。两人一对眼色,就开始干。使用了一台被人遗弃的连操作系统都没有计算机,没有操作系统肯定不行,想要运行这个游戏就需要编写一个系统,所以两人用汇编语言仅仅一个月就开发了一个系统。发现使用汇编开发操作系统满足不了要求。肯·汤姆森就和丹尼斯·里奇商量我们能不能研究一个语言来写系统内核,后来就研究出了B语言。使用B语言写发现还是不行,最后就研发出了大名鼎鼎的C语言。然后使用C语言研发出了Unix操作系统。Unix系统是鼻祖级操作系统,至今也是操作系统的标杆。
由于Unix系统太牛了,导致很多开始仿照Unix,市场上就出现了很多类似操作系统,然后各个公司之间开始相互告侵权。可以说当时市场非常乱。乱世中就需要有人站出来,这时Linus带领了Unix原班人马开发出了一个全新系统,并用自己的名字进行命名,叫做Linus,后更名为Linux。大名鼎鼎的Linux就出现了。
发展到目前,Linux不是一个具体的操作系统,而是一类操作系统的统称。具体版本称为发行版,市场上使用最多的几个发行版:
Red Hat:全球最大的Linux供应商红帽公司的收费版系统。2018年10月28日,IBM以340 亿美元(2360.45 亿人民币)收购了Red Hat公司。
CentOS:Red Hat推出的免费版。
Ubuntu:界面比较友好,安装双系统首选。
2003年,Fedora项目成立,一开始就受到了红帽公司的赞助。 2004年,红帽公司发布自己的商业Linux发行版本RHEL。RHEL使用Fedora作为上游,但发布周期更长。 2004年,CentOS项目成立。CentOS是一个社区支持的发行版本,使用RHEL作为上游。 2014年,红帽公司开始赞助CentOS项目并建立了合作关系。红帽公司取得了CentOS项目商标的所有权,并招聘大部分核心开发者。 2020年,CentOS 8版本发布。
上游和下游
CentOS Linux 作为Red Hat再次编译,属于Red Hat的下游。
CentOS Stream 作为Red Hat的前置版本,相当于让开发者对Red Hat做测试,属于Red Hat的上游。
版本 | 完整更新时间 | 维护截止时间 |
---|---|---|
CentOS 6 | 2017-05-10 | 2020-11-30 |
CentOS 7 | 2020-08-06 | 2024-06-30 |
CentOS 8 | 2021-12-31 | 2021-12-31 |
CentOS Stream 8 | -- | 2024-05-31 |
说明:
我们的课程为什么选择的是CentOS Stream 8?
尚学堂课程早在CentOS 8 刚出现时已经把授课版本更新为CentOS 8,当看到官网突然发布的不在维护CentOS 8时,也是倍感诧异。 面对这种情况只有两种选择: 1. 降低版本选择CentOS 7 2. 使用CentOS Stream 8 针对这两种选择,考虑到能够让同学们学习到最新的技术,不让同学们在互联网大潮中被落下,最终选择的是CentOS Stream 8
3.1 Linux系统的稳定性
Linux采取了许多安全技术措施,其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。
据说Linux系统可以十年不关机,依然保证系统的稳定运行(本人没亲测,不敢说真假)
3.2 Linux系统的安全性
Linux系统在设计的时候就是针对多用户环境的,所以对系统文件,用户文件都做了明确的区分,每个文件都有不同的用户属性,作为一个普通用户,通常只能读写自己的文件,而对一般的系统文件只能读取不能改动,一些敏感的系统文件甚至连读取都是被禁止的,这种设计从根本上保证了系统的安全性,当一个用户文件出现了问题,也不会殃及整个系统。
3.3 Linux软件安装的便利性
Linux中的软件绝大多数支持在线安装。只要在联网状态下通过简单的一个命令就可以完成整个软件的安装。可以说是方便快捷。
3.4 Linux内核
Linux的内核只有几兆,非常适合作为一些设备的系统。例如安卓系统底层就使用的是Linux系统。
Linux既然是操作系统,那必然需要安装到电脑中。同时Linux更适合做服务器的操作系统,对于日常学习办公并没有Windows方便。所以也没有必要把自己电脑的系统由Windows更改为Linux,也没有必要做双系统。
既然不想更改自己电脑的系统,难道需要再买一台电脑主机?这样做显然经济成本较高。
假设:如果自己的电脑不用更换系统,在当前系统中安装一个软件,通过软件来模拟一台真实电脑,那就非常nice了。
这时VMWare就可以闪亮登场了。
VMWare是一款虚拟化软件。通过VMWare可以实现用软件来模拟真实计算机,每个模拟出来的计算机称为虚拟机。VMWare能够虚拟多台虚拟机。
课程中安装的版本是VMware Workstation Pro16。16版本要求Windows系统必须是Win8以上。如果同学们的电脑是Win7,可以使用今日授课目录/软件/01 VMWare安装包/vmware-pro15.zip版本。
VMWare软件本身对硬件要求不高。由于虚拟机安装在当前计算机中,所以虚拟机硬件配置上限就是当前计算机硬件配置。例如:虚拟机的内存需要消耗宿主(VMware所在电脑)的真实内存,虚拟机的硬盘也是占用宿主的硬盘,虚拟机的CPU也是占用宿主的CPU。
而且在工作和学习时可能在VMWare里安装多个系统。一旦这些虚拟机同时都运行时对于宿主机压力还是非常大的。
所以建议同学们电脑内存至少8G以上。如果可以最好是16GB。当然了,即使4G内存也可以运行,只是那时电脑会非常非常的卡。如果有固态,要把VMware和虚拟机都安装到固态上。
关闭Windows防火墙,不要使用wifi共享精灵等软件,把电脑管家和360管家等软件卸载。
如果不想写在360或电脑管家,可以先安装尝试,没有问题就不用卸载了,出了问题再慢慢排查。但防火墙一定要关
友情提示:如果电脑中已经有WMWare了,不要卸载。因为我们课程VMWare版本较新,直接运行会自动升级。如果WMWare卸载不干净,下一次是很难装上的。一旦装不上就需要重做系统了(亲测:找注册表清除工具,还没有重做系统快呢)。
4.1 运行安装程序
4.2 按照提示进行安装,点击“下一步”
4.3 勾选“我接受许可协议中的条款”
4.4 路径可以修改也可以不修改。但是路径尽量不要包含中文。
示例中把路径修改了。有固态要安装到固态硬盘上,运行速度会快很多
4.5 取消勾选后点击下一步
4.6 点击“下一步”。桌面和开始菜单是否创建快捷方式可以根据自己的习惯进行操作。
4.7 点击完成进行安装
4.8 点击许可证输入许可信息
以下三个任选其一
ZF3R0-FHED2-M80TY-8QYGC-NPKYF
YF390-0HF8P-M81RQ-2DXQE-M2UT6
ZF71R-DMX85-08DQY-8YMNC-PPHV8
VMWare每次新建虚拟机就相当于产生一台电脑。
安装完成之后产生两个虚拟网卡。这是保证Windows和虚拟机中系统互通的。
VMWare使用Windows的程序卸载功能可能无法卸载干净。要使用安装包的卸载功能进行卸载。
双击安装包后点击下一步,会出现下面的界面,点击“删除按钮进行删除”
小提示:
如果有固态硬盘,把系统安装在固态要比安装在机械上快很多很多很多(重要事情强调三遍)
典型安装也可以,只是通过自定义安装可以让同学们更加清楚了解安装过程中做了哪些事情。
镜像文件在今天授课目录/软件/02 CentOS-Stream镜像/CentOS-Stream-8-x86_64-20211209-dvd1.iso
有固态要安装到固态上,运行速度会快很多
使用网络地址转换NAT:把新建的Linux和windows形成虚拟局域网,实现windows和linux之间相互连接。和windows在一个局域网的电脑(你的同桌)是无法连接你的虚拟机的。产生的ip就是我们之前说的192.168.xxx.128的ip。
使用桥接网络:虚拟机占用占用真实的局域网ip,虚拟机ip和你的windows在同一个网段上,windows和虚拟机都是192.168.网段.xxx
有的同学电脑硬盘特别小,只有128固态,想要把这个值改小。其实改不改没有太大影响,虚拟机占用宿主的硬盘大小为虚拟机中内容的大小,而不是立即占用20个G。
重要提示:
如果使用的是VMWare15版本,在点击开启此虚拟机之前,需要编辑虚拟机设置。
找到第一个DVD/CD,把右侧“使用ISO镜像文件”的值,修改为ISO镜像文件路径。
个别同学电脑的Intel VT-x功能默认是禁止的,VMWare安装系统后需要使用这个功能。如果这个功能没有开启,是无法启动系统的。
重启电脑后进入BIOS(不同主板使用的按键不同,可能是F2、F6、del)
不同主板的BIOS界面是不一样的。主要找Virtualization Technology 由Disabled修改Enabled就可以。
修改后F10保存并退出。
Linux磁盘中默认就一个分区,不像Windows中C盘、D盘、E盘。可以理解为Linux中只有一个C盘。
CentOS Stream 8中默认根目录下包含下面文件夹
目录比较多,不需要全部记忆。但是常用目录需要记住。
etc: 系统配置所在文件夹
home:除了root用户以外,其他所有用户都会在home中有一个同名文件夹,且用户对自己的文件夹具有完整操作权限。
root:只有root用户才有权限操作。
usr:里面包含local目录,所有用户自己安装的软件都放在local中。
tmp:系统临时文件等所在目录。
bin:命令工具。
从filesystem根目录开始寻找文件。
写法: 以 / 开头。例如找usr下local中内容,路径: /usr/local
从当前资源路径开始寻找,找到其他资源路径过程。
写法:一定不是以/开头。找当前资源的子目录直接写子目录名称,如果向上跳一级文件夹写法 : https://zhuanlan.zhihu.com/
/ 表示磁盘根
~ 表示/root ,root文件夹的根目录
进入到指定目录中
语法:cd 路径(相对路径/全路径)
示例:
cd .. 向上跳一级
cd 目录。表示进入目录,目录路径可以是相对路径,也可以是全路径。
显示当前所在路径的全路径
语法: pwd
清空当前屏幕
语法: clear
ls 以平铺方式显示当前目录包含内容
ll 以详细列表形式显示当前目录包含内容。
ls 目录:指定目录下包含内容
新建一个空文件夹
语法:mkdir 路径
mkdir -p 路径:如果路径中包含了不存在的路径,自动创建。
删除文件。默认删除文件。
示例:
rm -r 文件夹路径:删除目录。所有文件夹及文件夹中子内容都需要通过输入y进行确认删除。
rm -rf 文件夹路径:删除文件夹不需要确认。
rm -f 文件路径:删除文件不需要确认
创建指定名称一个空文件。在linux中文件不是必须带有扩展名。带有扩展名的文件都是具有特定格式的文件。
语法:touch 文件路径
vi 普通编辑,vim是vi的升级版,带有颜色的标记。如果编辑的文件不存在,且给文件输入内容后进行保存,会自动帮助创建文件。
语法:vim 文件路径
注意:
键盘i或insert键启用编辑。 Esc 退出编辑状态。
在退出编辑状态下
按d两次表示删除当前行。
d+数字+回车表示删除数字行。
:q 退出。只在没有做任何改变的时候能使用。
:wq 保存并退出。
:q! 强制退出。
强制退出可能出现临时文件,包含强制退出状态,在进入文件实际内容时,会先进入一个界面,输入c才会看见真实文件路径。因为存在临时文件,通过rm -f .xxxxxx.swap删除临时文件解决出现额外界面文件。
查看文件全部内容
语法:
cat 文件路径
默认查看文件后10行
语法:
tail 文件路径
tail -n 文件路径
tail -f 文件路径:动态监听文件内容。Ctrl+C释放光标
echo “内容” >> 文件路径:尾加内容到文件中。
剪切文件(夹)
语法:mv 原文件路径 新文件路径
复制文件。
语法:
cp 原文件路径 新文件路径
cp -r 原文件夹路径 新文件夹路径
解压压缩文件。
.tar.gz或.tar
语法:
tar zxvf 文件路径。
z:是否具有gzip格式,简单理解扩展名是否是.tar.gz
x: 解压内容
v:显示解压过程
f:必须写到最后,后面紧跟文件路径(有空格)。
systemctl enable 服务名 开机自启动
systemctl disable 服务名 开机不启动
systemctl start 服务名 启动服务
systemctl stop 服务名 停止服务
systemctl restart 服务名 重启服务
systemctl status 服务名 查看状态
查看ip地址
也可以使用 ifconfig命令查看
一款Windows中使用的Linux客户端命令工具。
注意:连接时一点要勾选记住用户名和密码。
关闭防火墙
systemctl stop firewalld
开机不启动
systemctl disable firewalld
ping ip地址
FTP协议:File Transfer Protocol 文件传输协议。在互联网中主机和主机直接传输文件的协议。Xftp和Xshell是同一个公司的产品。Xftp是基于FTP协议的工具。可以方便的实现互联网中主机和主机之间的文件传输。在Xshell中如果已经和主机处于连接状态,可以通过工具栏中按钮快速启动Xftp,省略在Xftp中输入连接主机信息的步骤。
通过Xftp可以新建目录,删除目录等。但是需要注意:不要使用Xftp新建除了/usr/local/tmp以外的目录。如果使用Xftp新建的目录以后在里面进行操作时可能没有权限。
在VMWare中安装好的系统默认都是动态IP。IP生成规则为192.168.xx.128。其中xx是网段,是随机的,每个人安装后都是255以内的随机数。
在VMWare中第一个新建虚拟机IP都是128,第二个新建虚拟机为129,依次类推。
但是可能出现这样一种情况,昨天网段是192.168.136.128,第二天来到教室后就变成了192.168.136.129。虽然这种情况并不是每个人都能碰到的,为了防止这种事情,还是配置上静态IP,防止IP自动更改。
小提示:
后面学习Docker后软件都是和IP绑定的,IP一旦改变了,就会导致软件无法使用。
需要从修改网段开始设置。
VMware 菜单编辑 --> 虚拟网络编辑器 --> 右下角 “更改设置” --> 选择“VMNet 8” -- > 修改子网IP为自己希望的网段 --> DHCP设置中修改两处网段
网段的数字8不是必须为8,任意小于255的正数都可以。
修改ifcfg-ens160文件
注意:在VMware中是无法复制粘贴的,需要在XShell中执行此命令。Xshell是Linux客户端工具,里面快捷键和Windows不一样。里面粘贴和复制时都时,需要通过鼠标右键进行复制或粘贴。
vim /etc/sysconfig/network-scripts/ifcfg-ens160
个别同学在修改此文件时没有成功修改,进行强制退出,会产生一个xxxxx.swp的临时文件.当是用vim修改网卡文件时会先出现这面界面。
解决办法:
1. 把图示中双引号里面内容选中后复制
2. 英文输入法状态下点击键盘a,退出当前界面。
3. 在命令行输入: rm -f 复制的文件路径(双引号里面内容)。
4. 再次通过vim命令修改网卡文件内容就正常了。
在VMware16版本中,网卡名称为ens160.在文件中添加下面内容。注意修改IPADDR为你自己的网段和希望设置的ip,Gateway的网段也需要修改成你自己的网段
(1)192.168.8.129 中8为网段,需要把8修改成上面自己设置的网段。
(2)192.168.8.129中129为具体IP值,只要是128~254之间的整数就可以。
(3)192.168.8.2中8为网段,也需要把8修改成上面自己设置的网段
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens160
UUID=066b4926-b40c-4c28-a5b4-2310d2b96613
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.8.129
NETMASK=255.255.255.0
GATEWAY=192.168.8.2
DNS1=8.8.8.8
PREFIX=24
如果使用VMWare 15版本,需要把NAME和DEVICE的值修改为ens33,与网卡文件名称保持一致。
vim /etc/sysconfig/network-scripts/ifcfg-ens33
网卡文件内容
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=066b4926-b40c-4c28-a5b4-2310d2b96613
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.8.129
NETMASK=255.255.255.0
GATEWAY=192.168.8.2
DNS1=8.8.8.8
PREFIX=24
作用:快照就是备份一份当前系统,类似windows的还原点。使用快照可以还原系统,也可以克隆系统。
要求:快照功能是在关机状态使用的。
作用:可以帮助快速生成一台虚拟机。比重新新建一个虚拟机要快很多。
前提:是有快照或已经存在一台虚拟机。
要求:关机状态
[1]可以选择当前虚拟机状态可以克隆
[2]也可以使用拍摄的快照进行克隆
[1]链接克隆:链接克隆是通过父虚拟机的快照创建而成,因此节省了磁盘空间,而且克隆速度非常快,但是克隆后的虚拟机性能能会有所下降
[2]完整克隆:完全克隆的虚拟机不依赖源虚拟机,是完全独立的虚拟机
小提示:
快照和克隆功能非常有用。
个别同学在学习后面的MySQL时可能会安装失败,如果失败了把系统还原了,重新安装一下MySQL,通过快照还原非常方便
在Linux中配置JDK和在Windows中配置JDK的思想是一样。唯一的区别:Windows中可视化操作,最终的结果也是写到文件中。Linux是直接操作系统文件。
小提示:
Linux中最常用的压缩包格式为.tar.gz,像Windows中的.zip在Linux中也可以使用,只是要记住:以后在各大官网中下载软件时,如果扩展为名.tar.gz的是专门给Linux系统使用的。如果扩展名为.zip的文件是专门给Windows系统使用的。
通过Xftp软件,在/usr/local目录中新建tmp文件夹。并把JDK压缩包(在当天授课目录/软件中)上传到tmp目录中。
cd /usr/local/tmp
tar zxf jdk-8u221-linux-x64.tar.gz
把解压的文件夹复制到/usr/local中,并命名为jdk(此名称任意)
mv jdk1.8.0_221 https://zhuanlan.zhihu.com/jdk
vim /etc/profile
注意:
JAVA_HOME=/usr/local/jdk中等号两侧不要有空格
$JAVA_HOME/bin后面是冒号,不是分号
$PATH是全大写。如果写成小写会导致大部分内置命令不可用
在linux中/etc/profile此文件为环境变量配置文件。
在此文件中找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL,在最前面添加注释#,在下面配置两行JDK环境变量
#export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
不解析,必须通过重启才能生效。只要解析不需要重启了
source 命令表示解析的意思。如果在MySQL中source代表的是运行.sql文件的意思。
source /etc/profile
java -version
小提示:
JDK安装成功后最好拍摄一个快照。防止后面软件安装失败还需要重新安装JDK。
前提:配置了JDK环境变量
上传Tomcat压缩包/usr/local/tmp。
Tomcat压缩包在当前授课目录/软件目录中。
cd /usr/local/tmp
tar zxf apache-tomcat-7.0.68.tar.gz
mv apache-tomcat-7.0.68 https://zhuanlan.zhihu.com/tomcat
进入tomcat的bin文件夹
cd /usr/local/tomcat/bin
执行的命令为https://zhuanlan.zhihu.com/p/启动文件
https://zhuanlan.zhihu.com/p/startup.sh
如果启动时需要看一下类似IDEA中启动Tomcat过程,需要监听Tomcat的日志文件。
小提示:
Tomcat安装好后第一次是没有日志文件的。如果第一次就使用下面的命令进行启动,会报错。
所以必须保证日志文件夹中已经有日志文件了。
https://zhuanlan.zhihu.com/p/startup.sh && tail -f https://zhuanlan.zhihu.com/logs/catalina.out
关闭有两种方式:正常关闭、强制关闭。两种方式都可以,推荐使用第一种方式。
如果报异常了说明Tomcat已经关闭了,或者没有打开过,或者没有正常关闭。这时需要通过强制关闭方式进行查看是否正常关闭。强制关闭方式在文档十二Tomcat配置步骤---6.2强制关闭中有说明。
https://zhuanlan.zhihu.com/p/shutdown.sh
下图是没有启动Tomcat,还执行关闭命令的效果图:
只要是运行结果不是一行就说明启动成功了。
ps aux|grep tomcat
红色方框部分为Tomcat运行的PID(进程号),可以通过kill -9 进程号。强制关闭tomcat
小提示:
Tomcat安装成功后最好也拍摄一个快照。防止MySQL安装失败需要重新安装JDK和Tomcat
wget命令表示下载互联网资源,后面跟上要下载资源的地址。
例如:wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 表示下载JDK17压缩包。
在CentOS镜像库(远程服务器,里面存储了各种软件,CentOS中绝大多数安装版软件都是.rpm)中并没有MySQL软件,所以需要先安装MySQL镜像库。
# wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
如果网速过慢,可以直接使用软件 MySQL/mysql8里面的 mysql80-community-release-el8-1.noarch.rpm,上传到/usr/local/tmp目录中,就不用写上面的命令了。继续按照下面命令执行。
rpm命令表示安装.rpm文件。.rpm类似Windows中.exe文件。
# rpm -ivh mysql80-community-release-el8-1.noarch.rpm
此过程需要花费的时间完全看网速。
友情提示:安装过程可能失败,失败了重新运行此命令。
# yum install -y mysql-server
安装版MySQL的服务名为mysqld后面的.service可以省略。
# systemctl enable mysqld.service
# systemctl start mysqld.service
# mysql -u root -p
提示输入密码,默认密码为空。直接回车即可。
先使用mysql数据库
# use mysql
继续在MySQl命令行输入命令,修改密码。smallming为root密码,可以自行定义。
# ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
修改root的客户端访问模式是任意
# update user set host='%' where user='root';
刷新权限
# flush privileges;
退出MySQL命令行
# exit
# systemctl restart mysqld
# systemctl stop firewalld
# systemctl disable firewalld
连接时注意IP是MySQL所安装的服务器IP,千万不要写成localhost
-- 创建数据库 create database if not exists linuxdb default charset utf8;
-- 使用数据库 use linuxdb;
-- 创建表 create table people(
id int(11) primary key auto_increment,
name varchar(20) not null
);
-- 录入测试数据 insert into people values(1,'张三');
insert into people values(2,'李四');
创建web项目,名称自定义。示例名称叫做myweb
在项目中创建com.bjsxt.PeopleController,并在文件中实现下面代码
/** * 实现效果: * 把people表中数据显示在浏览器中。 */
@WebServlet("/show")
public class PeopleController extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
// 注意此处的ip为Linux服务器的ip conn = DriverManager.getConnection("jdbc:mysql://192.168.8.129:3306/linuxdb?serverTimezone=UTC", "root", "smallming");
ps = conn.prepareStatement("select * from people");
rs = ps.executeQuery();
// 设置响应内容类型为text/html 编码为utf-8 防止中文乱码。 resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
while(rs.next()){
out.println(rs.getInt(1)+"--"+rs.getString(2)+"<br/>");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
直接在IDEA中运行项目.在Windows的浏览器中访问。待测试通过后才能部署到Linux中。
点击Idea菜单"File" -> Project Structure
按照图中所示,分别选择图中 Aritifacts(1) -> Web Application:Archive (2) -> For 'myweb:war exploded' (3)
添加后会出现myweb:war的一项。其中myweb为项目名称,同学们显示的也是自己新建项目的名称。
只要出现了myweb:war后就可以直接点击下面的OK按钮即可。
myweb:war 下面的myweb:war exploded 是Idea自动创建的。只要运行了这个web项目,就会自动创建这一项。
小提示:
war(Web Artifact)文件可以直接放在Tomcat中运行。也是Java Web项目打包后的文件。war文件和jar文件的主要区别是,war打包时可以包含web目录,而jar主要打包src目录内容。
点击IDEA菜单 Build -> Build Artifacts...
会在IDEA中间出现一个Build Artifact窗口.在窗口中选择 myweb:war -> Build 。
注意:
千万不要选择myweb:war exploded.
会在项目根目录出现一个新目录。目录名称为:项目名_war。例如:myweb_war
在myweb_war下面有一个myweb_war.war文件,把这个文件复制到Windows系统的桌面,并且重名一个简单点的名字。示例中重命名为myweb.war
直接把打包好的war文件上传到Linux里安装的Tomcat中。
上传到/usr/local/tomcat/webapps中。
如果Tomcat之前没有关闭,就不需要再次启动了。
如果之前运行过关闭Tomcat的命令,此处需要重新启动Tomcat
cd /usr/local/tomcat/bin
https://zhuanlan.zhihu.com/p/startup.sh
Tomcat启动成功后,会发现/usr/local/tomcat/webapps目录中myweb.war会被自动解压,解压后的文件夹名称为.war文件名。此名称为后面访问时的名称。
在Windows浏览器中输入访问地址:http://192.168.8.129:8080/myweb/show
URL解释说明:
192.168.8.129 为Tomcat所在Linux的IP
8080为Tomcat的端口。没有修改Tomcat端口号,默认就是8080
myweb 为.war文件的名称
/show 为控制器名称
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。