SpringMVC接收数据响应数据
四、SpringMVC实战:构建高效表述层框架目录
一、SpringMVC简介和体验
1.1 介绍
1.2 主要作用
1.3 核心组件和调用流程理解
1.4 快速体验
二、SpringMVC接收数据
2.1 访问路径设置
2.2 接收参数(重点)
2.2.1 param 和 json参数比较
2.2.2 param参数接收
2.2.3 路径 参数接收
2.2.4 json参数接收
2.3 接收Cookie数据
2.4 接收请求头数据
2.5 原生Api对象操作
2.6 共享域对象操作
2.6.1 属性(共享)域作用回顾
2.6.2 Request级别属性(共享)域
2.6.3 Session级别属性(共享)域
2.6.4 Application级别属性(共享)域
三、SpringMVC响应数据
3.1 handler方法分析
3.2 页面跳转控制
3.2.1 快速返回模板视图
3.2.2 转发和重定向
3.3 返回JSON数据(重点)
3.3.1 前置准备
3.3.2 @ResponseBody
3.3.3 @RestController
3.4 返回静态资源处 ...
docker-安装redis
Docker安装Redis以 Redis 6.0.8 为例:
1docker pull redis:6.0.8
单机版安装简单版 Redis简单的启动Redis容器:
1docker run -p 6379:6379 -d redis:6.0.8
简单版没有配置容器卷映射,当容器被删除时数据无法恢复。
实际应用版Redis配置文件、数据文件都和容器卷进行映射。
步骤:
宿主机创建目录/app/redis
在/app/redis下创建文件redis.conf,主要修改以下几项配置
1234567891011121314# 开启密码验证(可选)requirepass 123# 允许redis外地连接,需要注释掉绑定的IP# bind 127.0.0.1# 关闭保护模式(可选)protected-mode no# 注释掉daemonize yes,或者配置成 daemonize no。因为该配置和 docker run中的 -d 参数冲突,会导致容器一直启动失败daemonize no# 开启redis数据持久化, (可选)appendonly yes
即最后的配置文件为:
启 ...
docker-安装mysql
Docker 安装 Mysql以安装 Mysql 5.7为例:
1docker pull mysql:5.7
Mysql 单机简单版 Mysql 5.7 安装简单的启动Mysql容器:
12# 需要使用 -e 配置环境变量 MYSQL_ROOT_PASSWORD(mysql root用户的密码)docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
简单版的Mysql会存在以下问题:
中文乱码
没有容器卷映射
启动docker容器后,可以正常的连接、创建数据库,创建表,插入数据。但是插入中文则会报错。
例如:
123456789101112-- 创建db01数据库create database db01;-- 切换到db01;use db01;-- 创建表create table t1(id int, name varchar(20));-- 插入英文可以正常插入insert into t1 values(1, 'abc');-- 插入中文报错insert into t1 valu ...
docker-可视化
Portainer:Docker轻量级可视化工具Portainer是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。
Portainer分为开源社区版(CE版)和商用版(BE版/EE版)。
安装Portainer也是一个Docker镜像,可以直接使用Docker运行。
12345# 旧版镜像地址为portainer/portainer,从2022年1月标记为过期# 新版镜像地址为portainer/portainer-ce# --restart=always 如果Docker引擎重启了,那么这个容器实例也会在Docker引擎重启后重启,类似开机自启docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.13.0-alpine
启动之后,便可以在浏览器 ...
docker-compose容器编排
Docker-composeDocker-Compose 是 Docker 官方的开源项目,负责实现对Docker容器集群的快速编排。
Docker-Compose可以管理多个Docker容器组成一个应用。需要定义一个yaml格式的配置文件 docker-compose.yml,配置好多个容器之间的调用关系,然后只需要一个命令就能同时启动/关闭这些容器。
Docker建议我们每个容器中只运行一个服务,因为Docker容器本身占用资源极少,所以最好是将每个服务单独的分割开来。但是如果我们需要同时部署多个服务,每个服务单独构建镜像构建容器就会比较麻烦。所以 Docker 官方推出了 docker-compose 多服务部署的工具。
Compose允许用户通过一个单独的 docker-compose.yml 模板文件来定义一组相关联的应用容器为一个项目(project)。可以很容易的用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。
核心概念:
服务(service):一个个应用容器实例
工程(project):由一组关联的应用容器组成的一个完 ...
docker-网络
Docker 网络docker安装并启动服务后,会在宿主机中添加一个虚拟网卡。
在Docker服务启动前,使用 ifconfig 或 ip addr 查看网卡信息:
ens33或eth0:本机网卡
lo:本机回环网络网卡
可能有virbr0(CentOS安装时如果选择的有相关虚拟化服务,就会多一个以网桥连接的私网地址的virbr0网卡,作用是为连接虚拟网卡提供NAT访问外网的功能。如果要移除该服务,可以使用 yum remove libvirt-libs.x86_64)
使用 systemctl start docker启动Docker服务后,会多出一个 docker0 网卡。
作用:
容器间的互联和通信以及端口映射
容器IP变动时候可以通过服务名直接网络通信而不受到影响
Docker容器的网络隔离,是通过Linux内核特性 namespace和 cgroup 实现的。
docker网络命令查看Docker网络模式:
1docker network ls
如果没有修改过docker network,则默认有3个网络模式:
bridge
host
none
添加Docker ...
docker-微服务实战
搭建SpringBoot项目搭建一个简单的SpringBoot项目:
创建maven工程,pom为:
1234567891011121314151617181920212223242526<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <grou ...
docker-DockerFile解析
DockerfileDockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。
构建步骤:
编写Dockerfile文件
docker build命令构建镜像
docker run依据镜像运行容器实例
构建过程Dockerfile编写:
每条保留字指令都必须为大写字母,且后面要跟随至少一个参数
指令按照从上到下顺序执行
#表示注释
每条指令都会创建一个新的镜像层并对镜像进行提交
Docker引擎执行Docker的大致流程:
docker从基础镜像运行一个容器
执行一条指令并对容器做出修改
执行类似docker commit的操作提交一个新的镜像层
docker再基于刚提交的镜像运行一个新容器
执行Dockerfile中的下一条指令,直到所有指令都执行完成
:::info从应用软件的角度来看,Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段,
Dockerfile是软件的原材料
Docker镜像是软件的交付品
Docker容器则可以认为是软件镜像的运行态,也即依照镜像运行的容器实例
Docke ...
docker-常规安装简介
8 Docker常规安装简介8.1 总体步骤
搜索镜像
拉取镜像
查看镜像
启动镜像 - 服务端口映射
停止容器
移除容器
8.2 安装tomcat
docker hub上面查找tomcat镜像
docker search tomcat
从docker hub上拉取tomcat镜像到本地
docker pull tomcat
docker images查看是否有拉取到的tomcat
使用tomcat镜像创建容器实例(也叫运行镜像)
docker run -it -p 8080:8080 tomcat
:::info-p 小写,主机端口:docker容器端口
-P 大写,随机分配端口
-i 交互
-t 终端
-d 后台
:::
访问猫首页
问题
解决
1. 可能没有映射端口或者没有关闭防火墙
2. 把webapps.dist目录换成webapps
先成功启动tomcat
查看webapps 文件夹查看为空
免修改版说明
docker pull billygoo/tomcat8-jdk8
docker run -d -p 8080:8080 --n ...
docker-容器数据卷
7 Docker容器数据卷7.1 坑:容器卷记得加入--privileged=true
Docker挂载主机目录访问如果出现cannot open directory .: Permission denied
解决办法:在挂载目录后多加一个–privileged=true参数即可
如果是CentOS7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的行为,在SELinux里面挂载目录被禁止掉了,如果要开启,我们一般使用–privileged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限。
7.2 回顾下上一讲的知识点,参数V
7.3 是什么卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性:卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删 ...