2024年java web实战经典基础篇

java web实战经典基础篇个人博客 www hellocode top 所有文章均在上方博客首发 其他平台同步更新 本文专栏 Java Web 从入门到实战 gt 如没有 Java 基础 请先前往 Java 零基础指南 专栏学习相应知识 如有问题 欢迎指正 一起学习 文章目录 Linux 初识 Linux Linux 的安装和使用 Vmware SecureCRT 目录和文件 时间同步 克隆与快照

大家好,我是讯享网,很高兴认识大家。



??个人博客:www.hellocode.top??
所有文章均在上方博客首发,其他平台同步更新
??本文专栏:《Java Web从入门到实战》
??> 如没有Java基础,请先前往《Java零基础指南》专栏学习相应知识
如有问题,欢迎指正,一起学习~~


文章目录

    • Linux
      • 初识Linux
      • Linux的安装和使用
        • Vmware
        • SecureCRT
        • 目录和文件
        • 时间同步
        • 克隆与快照
      • 系统与设置命令
        • 账号管理
        • 用户组
        • 系统管理相关命令
        • 进程相关命令
        • 目录管理
        • 文件基本属性
        • 综合案例
      • 文件管理
        • touch
        • vi/vim编辑器
        • 文件查看
        • echo命令
        • awk命令
        • 软连接
      • 压缩命令
        • 查找命令
        • gzip命令
        • gunzip命令
        • tar命令
        • zip命令
        • unzip命令
        • bzip2命令
      • 网络与磁盘管理
        • 网络管理
        • 磁盘管理
        • yum
        • rpm
      • shell
        • 初识shell
        • 注释和变量
        • 数组
        • 运算符
        • 选择语句
        • 循环语句
        • 函数
    • Nginx
        • 概述
        • 安装
        • 发布项目
    • JavaWeb核心
      • 企业开发简介
        • JavaEE规范
        • WEB概述
        • 系统结构
      • tomcat
        • 服务器
        • Tomcat
        • 基本使用
        • Java WEB项目
        • 配置文件
      • HTTP协议
        • 概述
        • 协议的请求
        • 协议的响应
      • 发布资源案例
        • Servlet介绍
      • Servlet
        • 概述
        • 执行过程
        • 实现方式
        • 生命周期
        • 线程安全问题
        • 映射方式
        • 创建时机
        • 默认Servlet
      • ServletConfig
        • 配置方式
        • 常用方法
      • ServletContext
        • 域对象
        • 配置方式
        • 常用方法
      • 注解开发
        • 自动注解开发
        • 手动创建容器(了解)
      • 学生管理系统1
      • 请求对象
        • 获取各种路径
        • 获取请求头
        • 获取请求参数信息
        • 流对象获取请求信息
        • 中文乱码问题
        • 请求域
        • 请求转发
        • 请求包含
      • 响应对象
        • 常见状态码
        • 字节流响应消息
        • 字符流响应消息
        • 响应图片
        • 设置缓存
        • 定时刷新
        • 请求重定向
        • 文件下载
      • 学生java web实战经典基础篇管理系统2
      • Cookie
        • 会话
        • 概述
        • Cookie属性
        • 方法
        • 练习
        • 注意事项
      • Session
        • 常用方法
        • 对象获取
        • 练习
        • 注意事项
      • JSP
        • 快速入门
        • 执行过程
        • 语法
        • 指令
        • 注意事项
        • MVC模型
      • 学生管理系统3
      • EL表达式
        • 快速入门
        • 获取数据
        • 注意事项
        • 运算符
        • 隐式对象
      • JSTL
        • 核心标签
      • Filter
        • 概述
        • FilterChain
        • 过滤器使用
        • 使用细节
        • 生命周期
        • FilterConfig
        • 五种拦截行为
      • Listener
        • 监听器
        • 监听器的使用
      • 学生管理系统优化
        • 解决乱码
        • 检查登录
        • 优化JSP页面
    • MYSQL
      • 基本概念
        • 数据库
        • Mysql
        • 安装
      • DDL
        • 数据库、数据表、数据的关系
        • SQL的介绍
        • 查询和创建数据库
        • 修改、删除、使用数据库
        • 查询数据表
        • 创建数据表
        • 数据表的修改
        • 数据表的删除
      • DML
        • 新增表数据
        • 修改和删除表数据
      • DQL
        • 查询语法
        • 查询全部
        • 条件查询
        • 聚合函数查询
        • 排序查询
        • 分组查询
        • 分页查询
      • 约束
        • 主键约束
        • 主键自增约束
        • 唯一约束
        • 非空约束
        • 外键约束
        • 外键级联操作(了解)
      • 多表操作
        • 一对一
        • 一对多
        • 多对多
        • 多表查询
        • 练习
      • 视图
        • 数据准备
        • 创建和查询
        • 修改和删除
      • 数据库备份和恢复
      • 存储过程和函数
        • 创建和调用
        • 查看和删除
        • 变量
        • if语句
        • 参数传递
        • while循环
        • 存储函数
      • 触发器
        • 触发器的操作
        • 查看和删除
      • 事务
        • 基本使用
        • 提交方式
        • 四大特征(ACID)
        • 隔离级别
      • 存储引擎
        • 体系结构
        • 存储引擎
        • 基本操作
        • 存储引擎的选择
      • 索引
        • 分类
        • 创建和查询
        • 添加和删除
        • 索引的原理
        • 设计原则
        • InnoDB共享锁
        • InnoDB排他锁
        • MyISAM 读锁
        • MyISAM 写锁
        • 悲观锁和乐观锁
      • MyCat
        • 安装
        • 集群环境
        • 主从复制
        • 读写分离
        • 分库分表
    • JDBC
      • 快速入门
      • 功能类详解
      • 案例
        • 数据准备
        • 需求实现
        • 代码展示
      • 工具类
        • 抽取工具类
        • 优化学生案例
      • 注入攻击
      • 事务管理
      • 连接池
        • 自定义数据库连接池
        • 归还连接
        • 动态代理
        • 开源数据库连接池
        • 连接池的工具类
      • 框架
        • 源信息
        • update方法
        • 查询功能
    • Mybatis
    • JavaScript
    • jQuery
    • AJAX
    • Vue + Element
    • Redis
    • Maven基础
    • Web项目实战-黑马页面

Linux

初识Linux

操作系统:管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。

主流操作系统

  • 桌面操作系统:Window系列、macOS、Linux
  • 服务器操作系统:Linux、Windows Server
  • 嵌入式操作系统:Linux
  • 移动设备操作系统:Unix(Linux、ios)

Linux发展历程

  • 1984年Minix(只用于教学)
  • 1991年编写驱动程序,年底公开Linux内核源码
  • 1994年Linux1.0(Linus Torvalds)
  • 至此开始流行起来

Linux特点

  • Linux是一套免费使用和自由传播的类Unix操作系统
  • 是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统
  • 它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件
  • 继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统
  • 两个基本思想
    • 一切都是文件
    • 每个软件都有确定的用途
  • 完全兼容POSIX1.0标准
  • 多用户、多任务
  • 良好的界面
  • 支持多种平台

Linux与其它操作系统的区别

  • 开源情况
  • 硬件适用
  • 本质不同
  • 系统界面
  • 驱动程序
  • 系统使用
  • 软件与支持

Windows更适用于家庭个人使用

Linux更适用于企业服务器使用

Linux发行商和常见发行版

  • Redhat公司--------Red Hat Linux(最著名的Linux版本、收费)-----免费的CentOS
  • CentOS特点:主流、免费、更新方便

Linux的安装和使用

先安装虚拟机,再安装Centos

Vmware

Vmware简介

  • 不需要分区或者重开机就能在同一台PC上使用两种以上的操作系统
  • 完全隔离并且保护不同操作系统的环境以及所有的软件、资料
  • 不同的操作系统之间还可以进行互动操作
  • 有复原功能
  • 能够设置并且随时修改操作系统的操作环境
  • 常见虚拟机软件:VMware workstation、VirtualBox

Vmware下载:https://www.vmware.com/cn.html

CentOS镜像下载:https://www.centos.org/download/
高速下载地址

  • http://mirrors.aliyun.com
  • http://mirrors.sohu.com
  • http://mirrors.163.com
  • http://mirrors.cqu.edu.cn/CentOS
SecureCRT

简介:SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录Unix或Linux服务器主机的软件。

目录和文件
  • Linux没有盘符这个概念,只有一个根目录/,所有文件都在他下面
  • etc表示系统中的配置文件
  • usr、usr/bin、usr/sbin都表示系统预设执行文件的放置目录
  • var/log表示程序运行日志的存放目录
  • 切换根目录:
  • 查看目录内容:
时间同步

在这里插入图片描述

克隆与快照

克隆:将原系统完完全全的拷贝一份,原系统丢失后克隆的系统还能正常使用

  • 占用空间大
  • 原系统不存在,克隆体还能用

快照:记录系统当前状态,并不会把系统完整拷贝

  • 占用空间小
  • 原系统不存在,快照也就无法使用

克隆和拍摄快照时都需要关闭虚拟机

系统与设置命令

账号管理

与用户相关的命令,必须在管理员权限下才能执行

命令:

  • 创建用户:
  • 用户口令:
    • 密码不能是一个回文
    • 长度必须大于8位
    • 必须是字母和数字的结合

在root权限下切换其它用户可直接切换,无需输入密码

  • 修改用户:

在这里插入图片描述

  • 删除用户:

在这里插入图片描述

用户组

将用户分成小组,方便对用户的管理

  • 创建用户组:
  • 修改用户组:
    在这里插入图片描述
  • 查询用户所属组:
  • 删除用户组:
  • 管理用户组内成员:

    gpasswd是Linux下的管理工具,用于将一个用户添加到组或者从组中删除

    • -a:添加用户到组
    • -d:从组中删除用户
    • -A:指定管理员
    • -M:指定组员和-A的用途差不多
    • -r:删除密码
    • -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组
      在这里插入图片描述
系统管理相关命令
  • 日期管理:
    参数选项:
    • :显示字符串所指的日期与时间。字符串前后必须加上双引号
    • :根据字符串来设置日期与时间。字符串前后必须加上双引号
    • :显示GMT(北京时间为CST)
    • :在线帮助
    • :显示版本信息
  • 显示登陆账号的信息:
  • 切换用户:
  • 查看当前用户详细信息(用户id、群组id、所属组):
  • 提高普通用户的操作权限:
进程相关命令

实时显示process的动态 :

pid:每个进程的id

user:进程是属于哪个用户

PR:进程的优先级

NI:进程优先级(负数为高优先级,正数为低优先级)

VIRT:当前进程占用虚拟内存的总量

S:当前进程的状态

  • 实时显示所有进程信息(显示完整命令):
  • 实时显示指定进程的信息:
  • 结束实时监控:

查看当前正在运行的进程信息:

  • 显示系统中所有的进程信息:
  • 显示系统中所有的进程信息(完整信息):
  • 显示指定用户的进程信息:

中断执行中的程序:

  • 例如:表示杀死PID为1111的进程
  • :强制杀死指定PID的进程
  • :杀死这个用户中的所有进程
  • :杀死指定用户的所有进程
  • :查看对应编号

关机命令:(延迟关机)

  • :立即关机
  • :延迟一分钟以后关机,并给出警告信息
  • :延迟一分钟以后重启,并给出警告信息
  • :取消关机命令
    重启命令:(立即重启)

显示当前登录系统的用户:

  • :显示明细(标题)信息

校正服务器时间、时区:

几个小概念

项目

说明

时区

因时区不同显示的时间不同,牵扯到夏令时和调整等问题,date命令可查看

系统时钟:System Clock

Linux OS的时间,date命令可查看

硬件时钟:RTC:Real Time Clock

主板上由电池供电的BIOS时间,hwclock -r可查看

NTP:Network Time Protocol

本机时间和实际的时间之间的经常会有差别,一般使用NTP服务器进行时间校准

  • :显示系统的当前时间和日期
  • :查看所有可用的时区
  • :设置本地时区
  • :禁用时间同步
  • :设置时间
  • :启用时间同步

清除屏幕:

目录管理

常见命令

作用

ls

列出目录

cd

切换目录

pwd

显示目前的目录

mkdir

创建新目录

rmdir

删除空目录

cp

复制文件或目录

rm

删除文件或目录

mv

  • ls命令相当于在Windows系统中打开文件夹,看到的目录以及文件的明细。
    • 语法:
    • :显示所有文件或目录(包含隐藏)
    • :仅列出目录本身,而不是列出目录内的文件数据(常用)
    • :长数据串列出,包含文件的属性与权限等等数据(常用)

    :显示不隐藏的文件与文件夹
    :显示不隐藏的文件与文件夹的详细信息
    :显示所有文件与文件夹的详细信息

  • :查看当前所在目录
  • :切换目录
    • :返回上一级目录
    • :创建单级目录
    • 创建多级文件夹,使用
    • :删除空目录
    • :删除多级目录(先删bbb,如果删完aaa也为空,则aaa也一起删除)
    • :删除文件
    • :删除目录和目录里面所有的内容(单级目录或多级目录都行)
  • :创建一个文件
    • :文件复制(仅文件)
    • :将aaa目录中的所有文件及目录拷贝到ccc中(代指所有)
    • :改名(数据源和目的地相同)、移动文件或文件夹
    • :将源文件名改为目标文件名
    • :目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名
文件基本属性
  • 文件权限(共10位)
    • 第一位为d表示是一个文件夹;是 - 表示是一个文件;| 表示是一个链接文档(快捷方式)
    • r表示可读;w表示可写;x表示可执行; - 表示没有当前权限
    • 2-4位表示属主权限(文件所属的用户可以做的事情)
    • 5-7位表示属组权限(文件所在用户组可以对它做的事)
    • 8-10位表示其它用户权限
  • 命令(change group)
    • :更改所属组
    • :将aaa文件夹所属组更改为root
    • :将aaa的属组改为root(-v会多一句提示语)
  • 命令
    • :更改属主
    • :更改属主和属组
    • -R:处理指定目录以及其子目录下的所有文件
  • 命令
    • 作用:修改属主、属组、其他用户的权限
    • 数字方式语法:
    • 符号方式语法:
    • -R:对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

修改方式

  • 数字方式
    • r-----4
    • w----2
    • x----1
    • -----0
  • 符号方式
    • user属主权限----u
    • group属组权限----g
    • others其它权限----o
    • all全部身份----a
    • +(加入)、-(除去)、=(设定)
    • r(可读)、w(可写)、x(可执行)
综合案例

思路

  • 创建三个用户,并把他们加入到对应的用户组(dev-group)
  • 将tmp/work文件夹所属组更改为dev-group
  • 修改文件夹所属组的权限

在这里插入图片描述

文件管理

touch
  • 语法:

    如果文件不存在就创建文件,如果存在就修改时间属性

  • :创建a1.txt一直到a10.txt共10个文件(批量创建空文件)
  • :查看文件的详细信息
vi/vim编辑器
  • vi编辑器:只能是编辑文本内容,不能对字体、段落进行排版
    • 不支持鼠标操作
    • 没有菜单
    • 只有命令
  • vim编辑器:vim是从vi发展出来的一个文本编辑器。
    • 代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用

简单来说:
vi是老式的文字处理器,不过功能已经很齐全了,但是还是有可以改进的地方
vim则可以说是程序员开发者的一项很好用的工具

  • vi/vim三种模式
    • 阅读模式(命令模式)
    • 编辑模式(编辑模式)
    • 保存模式(末行模式)

    命令模式下只能读不能写
    在命令模式下输入可以进入编辑模式,在编辑完成之后按下又可以退出到命令模式
    在命令模式下输入可以进入末行模式,在保存完之后还可以按下两次继续回退到命令模式

  • 打开和新建文件
    • 语法:
    • 如果文件已经存在,会直接打开文件(命令模式)
    • 如果文件不存在,打开一个临时文件,在保存且退出后,就会新建一个文件
  • 进入编辑模式

命令

英文

功能

常用

i

insert

在当前字符前插入文本

常用

I

insert

在行首插入文本

较常用

a

append

在当前字符后添加文本

A

append

在行末添加文本

较常用

o

在当前行后面插入一空行

常用

O

在当前行前面插入一空行

常用

  • 进入末行模式保存文件
    • :当vim进入文件没有对文件内容做任何操作可以按“q”退出
    • :当vim进入文件对文件内容有操作但不想保存退出
    • :正常保存退出
    • :强行保存退出,只针对于root用户或文件所有人
  • vim定位行
    • 语法::查看文件并定位到具体行数
    • :查看a.txt文件并定位到第5行
  • 异常处理
    • 如果vim异常退出,在磁盘上可能会保存有交换文件
    • 如果有交换文件,在下次使用vim编辑文件时,系统会提示是否对交换文件继续操作(将交换文件删除即可)
文件查看

命令

功能

cat 文件名

查看小文件内容

less -N 文件名

分屏显示大文件内容

head -n 文件名

查看文件的前一部分

tail -n 文件名

查看文件的最后部分

grep 关键字 文件名

根据关键字搜索文本文件内容

  • :可以加入参数选项显示行号
    • 只能阅读小文件
    • 阅读大文件可能显示不完整
  • :查看大文件
    • 加入可显示行号
    • ctrl + F :向前移动一屏
    • ctrl + B :向后移动一屏
    • ctrl + D :向前移动半屏
    • ctrl + U :向后移动半屏
    • j :向前移动一行
    • k :向后移动一行
    • G:移动到最后一行
    • g:移动到第一行
    • q/ZZ:退出less命令
  • :默认查看文件最后10行内容
    • :查看文件最后3行内容
    • :动态显示文件最后10行内容(ctrl + C停止)
    • :显示文件b.txt的内容,从第2行至文件末尾
    • :显示文件最后45个字符
  • :查看文件前10行内容
    • 其它内容和tail类似
    • 类似于Windows下打开文件后ctrl+F的查找功能
    • 查找对应的进程
    • 语法::根据关键字,搜索文本文件内容
    • -n:把包含关键字的行号展示出来
    • -i:把包含关键字的行展示出来,搜索时忽略大小写
    • -v:把不包含关键字的行展示出来
    • :将进程中含有sshd的进程展示出来
    • :将进程中含有sshd的进程的个数展示出来
echo命令
  • :展示文本
  • :将字符串写到文件中(覆盖文件内容)
  • :将字符串写到文件中(不覆盖原内容)
  • :将命令的失败结果追加到指定的文件的后面
awk命令
  • AWK是一种处理文本文件的语言,是一个强大的文本分析工具(名字取自三位创始人名字中的字母)
  • 语法:
  • 过滤::查看a.txt文件中包含zhang或者li的行
  • 切割

选项

含义

使用指定字符分割

获取第几段内容

获取当前行内容

向外输出时的段分割字符串

字符转成大写

字符转成小写

返回字符长度

:将a.txt中的内容按空格分割并打印第1-3列
:将a.txt中的内容分隔后并将$1中的内容转为大写字符后输出
:将a.txt中的内容分隔后并用—重新分隔后输出

  • 计算

命令

含义

awk
BEGIN{初始化操作}
{每行都执行}
END{结束时操作}
文件名

固定语法
BEGIN{这里面放的是执行前的语句}
{这里面放的是处理每一行要执行的语句}
END{这里面放的是处理完所有的行后要执行的语句}
文件名

软连接
  • 类似于Windows里面的快捷方式
  • 语法:

压缩命令

查找命令
  • 语法::在指定目录下查找文件
  • 参数选项
    • -name filename:查找名为filename的文件
    • -ctime -n或+n:按时间来查找文件,-n指n天以内,+n指n天以前
  • :查找当前目录下所有以txt为后缀的文件
  • :当前文件夹下1天内操作过的文件

    将 . 替换为 / 则表示在全盘范围进行查找

gzip命令
  • 语法::压缩文件
  • :将a.txt文件压缩
  • :将当前目录下所有文件都进行压缩(已经压缩过的不能再次被压缩)
  • :解压文件并显示详细信息
gunzip命令
  • 语法::解压文件
  • :解压压缩文件
  • :解压当前目录下的所有压缩文件
tar命令
  • 语法::打包、压缩和解压(文件/文件夹)
  • 注意:tar本身不具有压缩功能,它是调用压缩功能实现的
  • 参数选项
    • -c:建立新的压缩文件
    • -v:显示指令执行过程
    • -f <备份文件>:指定压缩文件
    • -z:通过gzip指令处理压缩文件
    • -t:列出压缩文件中的内容
    • -x:表示解压
  • :打包文件并指定打包之后的文件名(仅打包不压缩)
  • :通过gzip指令将b.txt压缩为b.gz并显示过程(打包压缩)
  • :将aaa文件夹压缩为aaa.gz
  • :查看压缩文件中的内容
  • :解压aaa.gz文件
zip命令
  • 语法::压缩
  • 注意:zip是个使用广泛的压缩程序,文件经他压缩后会另外产生具有".zip"扩展名的压缩文件
  • 参数选项
    • -q:不显示指令执行过程
    • -r:递归处理,将指定目录下的所有文件和子目录一并处理
  • :压缩对应的文件/文件夹
unzip命令
  • 语法::解压
  • 注意:只能解压".zip"扩展名的压缩文件
  • 参数选项
    • -l:显示压缩文件内所包含的文件
    • -d <目录>:指定文件解压缩后要存储的目录
  • :查看aaa.zip压缩文件所包含的文件
  • :将aaa.zip压缩文件解压到aaa文件夹中(aaa文件夹可以不存在,会自动创建)
bzip2命令
  • 语法::压缩文件
  • 注意:使用新的压缩算法,和zip相比压缩后的文件比原来的要小,但花费时间变长
  • 若没有加上任何参数,bizp2压缩完文件后会产生bz2的压缩文件,并删除原始文件
  • :压缩并删除a.txt
  • bunzip2命令::解压
    • -v:解压文件时,显示详细的信息
    • :解压并显示详细信息

网络与磁盘管理

网络管理
  • ifconfig命令
    • 语法::显示或配置网络设备的命令
    • :关闭ens37这张网卡
    • :开启网卡ens37
    • :将ens37网卡的ip更改为192.168.23.199
    • :配置ip地址和子网掩码
  • ping命令
    • 语法::检测是否与主机联通
    • -c <完成次数>:设置完成要求回应的次数
    • :指定接收包的次数
  • netstat命令
    • 语法::显示网络状态
    • -a:显示所有连线中的Socket
    • -i:显示网卡列表
磁盘管理
  • lsblk命令
    • 语法::列出硬盘的使用情况
    • 理解为:list block的英文缩写
    • :显示系统信息
  • df命令
    • 语法::显示目前在Linux系统上,磁盘的使用情况
    • –total:显示所有的信息
    • -h:换算成KB,MB,GB等形式进行展示(方便阅读)
    • :显示整个硬盘的使用情况
    • :显示文件夹使用情况
    • :显示所有的信息
    • :将结果变成kb、mb、gb等形式展示,利于阅读
  • mount命令
    • 语法::用于挂载Linux系统外的设备
    • 类似与Windows中的U盘,但在Linux中需要手动新建一个文件夹,并把该文件夹和U盘关联起来(挂载点和挂载)

    注意:“挂载点”的目录需要以下几个要求:
    目录事先存在,可以用mkdir命令新建目录
    挂载点目录不可被其它进程使用到
    挂载点下原有文件将被隐藏

    • :将光驱和PPP文件夹挂载
    • :卸载PPP文件夹所挂载的光驱
yum
  • 在Linux中,如果我们需要查找、安装、下载或者卸载另外的软件,就需要通过yum来进行操作。英文全称为:Yellow dog Updater,Modified
  • yum常用命令
    • 列出所有可更新的软件清单命令:
    • 更新所有软件命令:
    • 仅安装指定的软件命令:
    • 仅更新指定的软件命令:
    • 列出所有可安装的软件清单命令:
    • 删除软件包命令:
    • 查找软件包命令:
    • 清除缓存命令:
      • :清除缓存目录下的软件包
      • :清除缓存目录下的headers
      • :清除缓存目录下旧的headers
      • :清除缓存目录下的软件包及旧的headers
  • -y:在安装过程中,如果有选择提示,全部选择y
  • 注意:使用yum必须联网且在root权限下
  • :安装tree
  • :执行tree,展示当前目录结构
  • :移除tree
  • :查找以tom为开头的软件名称
  • yum源
    • 在下载软件的时候,都是从yum源中获取的,默认是centos中默认的yum源(在国外,下载速度慢)
    • 更换国内yum源
      • :安装一个下载工具
      • :进入yum的相关文件夹中
      • :对原yum文件改名(备份)
      • :下载阿里yum源文件
      • :清理缓存,并重新加载yum
      • :为新yum源建立缓存文件
      • :查找软件,验证阿里云的yum源是否可以正常使用
rpm
  • 在最初,RedHat Linux发行版专门用来管理Linux各种套件的程序
  • 和yum的区别
    • rpm只能安装已经下载到本地机器上的rpm包
    • yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm工具所不具备的

shell

初识shell

在计算机科学中,shell就是一个命令解释器
shell是位于操作系统和应用程序之间,是他们二者最主要的接口。
shell负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序

一句话,shell就是在操作系统和应用程序之间的一个命令翻译工具。

Windows和Linux中的shell

  • Windows系统:cmd.exe 命令提示字符
  • Linux系统:sh / csh / ksh / bash(默认) / …

shell的使用方式

  • 手工方式

手工敲击键盘,直接输入命令,按Enter后。
执行命令,显示命令执行的结果
重点:逐行输入命令,逐行进行确认执行

  • 脚本方式

编写第一个shell脚本

  • 新建一个文件后缀名为sh
  • 编写内容
    讯享网 
  • 执行
注释和变量

注释

  • 单行注释

    #!/bin/bash

    这是单行注释

    echo ‘hello world’

  • 多行注释

    #!/bin/bash
    :<<! 这是多行注释
    多行注释
    多行注释
    !
    echo ‘hello world’

    :<<字符
    注释内容
    字符

变量

  • 定义变量
      • 方式一:(变量值必须是一个整体,中间没有特殊字符)
      • 方式二:(单引号中的内容,原样赋值)
      • 方式三:(如果双引号中有其它变量,会把变量的结果进行拼接,然后赋值)
      习惯:数字不加引号,其它默认加双引号
    • 命令变量(将命令的结果赋值给变量)
      • 方式一:变量名=`命令`(这里是反引号<tab键上方>)
      • 方式二:(常用)
    普通变量
  • 使用变量
    • 方式一:(非标准写法,图省事)
    • 方式二:(非标准写法,图省事)
    • 方式三:(在双引号里面要使用变量的值)
    • 方式四:(标准使用方式)
  • 只读变量:
  • 删除变量:
数组

定义数组

数组名=(值1 值2 … 值n)

arr=(1 2 3 4 5)

给数组的元素赋值

数组名[索引]=值

arr[0]=1

获取元素

${数组名[下标]}

${arr[0]}

获取长度

运算符

运算符

说明

举例

加法

expr $a + $b

-

减法

expr $a - $b

*

乘法

expr $a * $b

/

除法

expr $b / $a

%

取余

expr $b % $a

=

赋值

a=$b (把b变量的值赋给a变量)

++ / –

自增 / 自减

((a++))

注意点

  1. 原生的bash不支持简单的数学运算。可以通过其它命令实现:expr
  2. 表达式和运算符之间要有空格
  3. 完整的表达式要被反引号包含
  4. 乘法中不能直接使用*,需要在乘号前加转义

举例:`expr 2 + 2`

字符串运算符

运算符

说明

举例

=

检测两个字符串是否相等,相等返回true

[ $a = $b ]

!=

检测两个字符串是否不相等,不相等返回true

[ $a != $b ]

-z

检测字符串长度是否为0,为0返回true

[ -z $a ]

-n

检测字符串长度是否不为0,不为0返回true

[ -n $a ]

$

检测字符串是否为空,不为空返回true

[ $a ]

与里面的代码命令有个空格隔开,不能贴在一起

可以获取上一条语句的执行结果

在shell中,0为真,1为假

获取字符串长度

关系运算符

运算符

说明

举例

-eq

检测两个数是否相等,相等返回true(equals)

[ $a -eq $b ]

-ne

检测两个数是否不相等,不相等返回true(not equals)

[ $a -ne $b ]

-gt

检测左边的数是否大于右边的,如果是,则返回(truegreater than)

[ $a -gt $b ]

-lt

检测左边的数是否小于右边的,如果是,返回true(less than)

[ $a -lt $b ]

-ge

检测左边的数是否大于等于右边的,如果是,则返回true(greater equals)

[ $a -ge $b ]

-le

检测左边的数是否小于等于右边的,如果是,则返回true(less equals)

[ $a -le $b]

关系运算符只支持数字,不支持字符串,除非字符串的值是数字

布尔运算符

运算符

说明

举例

!

取反运算

[ ! false ] 返回true

-o

或运算,有一个表达式为true 则返回true (or)

[ $a -lt 20 -o $b -gt 100 ]

-a

与运算,两个表达式都为true 才返回true(and)

[ $a -lt 20 -a $b -gt 100 ]

逻辑运算符

运算符

说明

举例

&&

逻辑的 AND

[[ true && true ]] 返回true

||

逻辑的 OR

[[ false || false ]] 返回false

选择语句

if语法

讯享网

小练习

 

case语法

讯享网
循环语句

for循环

 

while循环

 
函数

无参无返回值

 

有参无返回值

 

有参有返回值

 

小练习

:表示把键盘录入的数据赋值给这个变量

 

Nginx

这部分应该是HTML + CSS + Nginx,因为HTML和CSS是之前学过的,当时并没有记笔记,这部分也相当简单些,如果有没学过的可以自行搜索资料学习一下~

概述
  • Nginx是一款服务器软件
  • 其核心功能是可以和服务器硬件相结合,从而可以将程序发布到Nginx服务器上,让更多用户浏览
安装
  1. 上传压缩包:(CRT中按alt+p键进入sftp)
  2. 解压压缩包:
  3. 进入解压目录:
  4. 安装依赖环境

  5. 安装nginx


    (安装完会在/usr/local/下有一个nginx目录)
  6. 进入对应目录:
  7. 启动nginx服务:
    停止:
    重启:
  8. 查看nginx服务状态:
  9. 测试nginx服务:浏览器打开对应Linux服务器ip地址

最后这里在浏览器打开对应ip地址无法访问,解决方法:
第一步,对80端口进行防火墙配置:
第二步,重启防火墙服务:
然后重新在浏览器中访问你的ip,应该就可以访问了。

发布项目
  1. 在 /home 下创建一个web目录:
  2. 将项目上传到该目录下:
  3. 解压项目压缩包:
  4. 编辑nginx配置文件:
    找到server的大括号范围,修改location的路径
    在这里插入图片描述
  5. 进入对应目录:
  6. 关闭nginx服务:
  7. 启动nginx服务并加载配置文件:
  8. 通过浏览器测试网站

JavaWeb核心

企业开发简介

JavaEE规范
  • JavaEE(Java Enterprise Edition):Java企业版
  • 它是由SUN公司领导、各个厂家共同制定并得到广泛认可的工业标准。
  • JavaEE早期叫做J2EE,但是没有继续采用其命名规则。J2EE的版本从1.0开始到1.4结束。而JavaEE版本是从JavaEE 5 版本开始,目前最新的版本是JavaEE 8。
  • JavaEE规范是很多Java开发技术的总称。这些技术规范都是沿用自J2EE的。一共包括了13个技术规范。
  • 包括:JDBC, JNDI, EJB, RMI, IDL/CORBA, JSP, Servlet, XML, JMS, JTA, JTS, JavaMail, JAF。
WEB概述

概述

  • WEB在计算机领域中代表的是网络。
  • 像我们之前所用的WWW,它是World Wide Web 三个单词的缩写,称为:万维网
  • 网络相关技术的出现是为了让我们在网络的世界中获取资源,这些资源的存放之处,我们把它叫做网站。
  • 我们通过输入网站的地址(网址),就可以访问网站中提供的资源(不区分局域网或广域网)

资源分类

  • 静态资源
    网站中提供给人们展示的资源是一成不变的,也就是说不同人或者在不同时间,看到的内容都是一样的。
    作为开发者来说,我们编写的HTML, CSS, JavaScript 都属于静态资源。
  • 动态资源
    网站中提供给人们展示的资源是由程序产生的,在不同的时间或者不同的人由于身份的不同,所看到的内容是不一样的。
    作为网站开发者来说,我们编写的JSP、Servlet等都属于动态资源。
系统结构

在之前的学习中,开发的都是Java工程。这些工程在企业中称之为项目或者产品。都是有系统架构的!

  • 基础结构划分
    • CS结构:(Client Server)客户端+服务器的方式(把不同的应用直接安装在客户端上)
    • BS结构:(Browser Server)浏览器+服务器的方式
  • 技术选型划分
    • Model1模型
    • Model2模型
    • MVC模型
    • 三层架构 + MVC模型
  • 部署方式划分
    • 一体化结构
    • 垂直拆分结构
    • 分布式结构
    • 微服务结构

tomcat

服务器
  • 服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。==服务器在网络中为其它客户机(如PC机、智能设备等)提供计算或者应用服务。==服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性。
  • 而我们这里所说的服务器,其实是web服务器,或者应用服务器。它本质就是一个软件,通过和硬件相结合,从而达到帮助我们来发布应用的功能,让用户通过客户机访问我们的应用。
  • 常用的应用服务器

    服务器名称

    说明

    weblogic

    实现了JavaEE规范,重量级服务器,又称为JavaEE容器

    websphereAS

    实现了JavaEE规范,重量级服务器

    JBOSSAS

    实现了JavaEE规范,重量级服务器,免费的

    Tomcat

    实现了jsp/servlet规范,是一个轻量级服务器,开源免费

Tomcat
  • Tomcat是Apache软件基金会的Jakarta项目组中的一个核心项目,由Apache、Sun和其它一些公司及个人共同开发而成。由于有了Sun公司的参与和支持,最新的Servlet、JSP规范总能在Tomcat中得到体现。因为Tomcat技术先进、性能稳定,而且免费,所以深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
  • Tomcat官网:https://tomcat.apache.org/
  • Tomcat各个版本所需要的支持
    在这里插入图片描述

下载和安装

  • 下载:官网下载
  • 安装:直接解压即可
  • 目录组成
    • bin:一些二进制可执行文件
    • conf:保存配置文件的路径
    • lib:Tomcat在运行过程中所需要的jar包
    • logs:日志文件
    • temp:临时文件
    • webapps:项目发布目录(一个文件夹代表一个web应用)(ROOT代表根项目)
    • work:工作目录
基本使用
  1. 启动
    :Windows下启动执行文件
    :Linux下启动执行文件

    启动后浏览器访问:http://localhost:8080可以进入欢迎界面(Tomcat默认端口为8080)

  2. 停止
    :Windows下关闭执行文件
    :Linux下关闭执行文件
  3. 部署项目
    在webapps目录下创建一个文件夹
    将资源放到该文件夹中
    启动tomcat,输入正确路径

常见问题

  1. 启动问题
    启动窗口一闪而过:没有配置jdk环境变量
    在这里插入图片描述

    java.net.BindException:端口8080被占用

  2. 控制台乱码问题解决
    conf-logging.properties
    修改

    Tomcat默认UTF-8,CMD命令窗口默认GBK,将UTF-8改为GBK即可解决乱码问题

IDEA集成Tomcat

  1. 点击Run -》 Edit Configurations
  2. 点击Defaults -》 Tomcat Servlet -》 Local
  3. 点击Configure -》Tomcat Home -》 选择tomcat所在路径

Linux下的安装

  1. 上传压缩包到/home路径:
  2. 解压压缩包:
  3. 进入bin目录下:
  4. 启动tomcat服务:
  5. 使用浏览器测试:浏览器打开对应Linux服务器ip地址:8080
Java WEB项目
  1. 新建项目模型,选择Java Enterprise
    确定JDK版本、Appalication Server版本
  2. 右键Add Framework Support…
  3. 勾选Web Appalication选项

项目组成详解

  • src:存放Java源代码
  • web:存放项目相关资源(html、css、js、jsp、图片等)
  • WEB-INFO:存放相关配置的(web.xml等)

IDEA发布项目

  1. 点击Run -》 Edit Configurations
  2. 点击Tomcat Server -》 Deployment
    Application Context是项目访问路径,/代表默认路径,多个项目中只能有一个默认路径
  3. 点击Tomcat Server -》 Server
    设置关联浏览器
    两个Update resources设置
    设置JDK、端口号
  4. 启动Tomcat服务
  5. 验证结果(浏览器)

通过war包发布项目

  1. 在项目的web路径下打war包:
  2. 将打好的war包剪切到tomcat的webapps路径下
  3. 启动tomcat服务,自动解压war包
  4. 验证结果
配置文件

配置默认端口号

主配置文件server.xml

标签中,port属性代表Tomcat默认端口号(8080)

在这里插入图片描述

http协议默认端口号为80,Tomcat默认端口号与其不一致,所以每次访问网站需要加上端口号
如果是80端口,就不需要加端口号
真正发布网站的时候,都需要将tomcat默认端口号改为80,这样在访问网站的时候就不需要加端口号了

配置虚拟目录

  • 作用:可以发布任意目录下的项目
  1. 编辑server.xml 配置文件,找到标签
  2. 加入以下内容

    在这里插入图片描述
小讯
上一篇 2024-12-30 17:23
下一篇 2024-12-24 10:37

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/9609.html