Notes
笔记
ubuntu update
- $ sudo apt-get -f install #修复安装
- $ sudo apt-get dist-upgrade #升级系统
- $ sudo apt-get upgrade #更新已安装的包
- $ sudo apt-get clean&& sudo apt-get autoclean #清理包
- $ sudo apt-get build-dep package #安装相关的编译环境
Linux编码问题
Windows下中文编码一般都是gbk,Linux下中文编码都是utf8,所以在Linux下打开Windows文件会出现乱码,办法: 将post.txt文件转换: iconv -f gbk -tutf8 pos.txt > pos.txt.utf8
Linux命令
关机 (系统的关机、重启以及登出 )
- shutdown -h now 关闭系统
- nit 0 关闭系统
- telinit 0 关闭系统
- shutdown -h hours:minutes & 按预定时间关闭系统
- shutdown -c 取消按预定时间关闭系统
- shutdown -r now 重启
- reboot 重启
- logout 注销
文件和目录
- cd /home 进入 ‘/ home’ 目录’
- cd … 返回上一级目录
- pwd 显示工作路径
- ls -F 查看目录中的文件
- ls -l 显示文件和目录的详细资料
- ls -a 显示隐藏文件
- mkdir dir1 创建一个叫做 ‘dir1’ 的目录’
- mkdir dir1 dir2 同时创建两个目录
- rm -rf dir1 删除叫做 ‘dir1’ 的目录并同时删除其内容
- mv dir1 dir1 重命名/移动 一个目录
- cp file1 file2 复制一个文件
- cp dir/* . 复制一个目录下的所有文件到当前工作目录
- cp -a dir1 dir2 复制一个目录到另一个目录
- iconv -l 列出已知的编码
搜索文件
- find / -name file 从 ‘/’ 开始进入根文件系统搜索文件和目录
- find /usr -name *.txt 在/usr搜索以.txt结尾的文件
- du -sh ./* 查看当前文件夹下所有文件大小
压缩文件
- tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
- tar -zxvf archive.tar.gz 解压一个gzip格式的压缩包
- zip file1.zip file1 创建一个zip格式的压缩包
- unzip file.zip 解压一个zip格式压缩包
- zip -r file.zip file file1 dir1 将几个文件和目录都压缩成一个zip格式的压缩包
文件导入导出服务器
git步骤
(
- git config – global user.name 用户名 //设置用户名
- git config – global user.email 邮箱 //设置邮箱
- git config – list //查看设置
- git status //查看状态
- git init //新建一个git仓库初始化git
- git remote add origin XXXXXXXXX //链接远程分支(git上面的仓库地址)
- git remote -v //查看是否链接到了远端
- git add . //暂存所有文件 或者 git add XX.txt //暂存单个文件
- git commit -m “提交的内容命名”
- git push -u origin master //最后push到xxxx分支
- git pull origin master //拉取分支
- )
and
( - 从远端程序克隆到本地分支:git clone 远端地址
- 在本地创建新的分支:git branch 分支名称
- 切换分支和删除分支:切换分支:git checkout 分支名;删除分支:git branch -D 分支名;(这里的-D是彻底删除,当然还有-d,以后讲解区别)
- 查看当前项目中代码状态:git status和git status . 后者代表的是当前项目所有文件
- 将需要提交的文件添加进来:git add 文件目录/文件名;和git add . 后者代表当前目录下所有文件提交到暂存区
- 提交到本地分支:git commit -m “标签注解”,注解主要是对修改的内容的说明,方便查看
- 提交到远端分支:git push origin 远端分支名;这里分支名如果远端不存在,上传成功后会自动创建。
- 将远端的代码拉到本地分支:git pull origin 分支名;如果有冲突,可以用git status查看有冲突的文件。pull=fetch+merge.fetch是将远端代码拉下来,merge是合并进去。
- 取消上次修改:git reset . 返回到上次提交状态。
)
后台开发基础
mysql基础
- 连接命令:mysql -h(主机地址) -u(用户名)-p (用户密码)
- 创建数据库:create database (库名)
- 显示所有数据库: show databases;
- 打开数据库:use (库名)
- 当前选择的库状态:SELECT DATABASE();
- 创建数据表:create table 表名 (字段名 字段类型 字段要求 字段参数,…);
- 显示数据表字段:describe 表名;
- 当前库数据表结构:show tables;
- 修改用户密码:mysqladmin -u 用户名 -p password 新密码;
更改表格:
- 修改表名:alter table tablename rename [to] newtablename;
- 修改字段数据类型:alter table tablename modify 字段名 数据类型;
- 修改字段名:alter table tablename change old字段名 new字段名 new数据类型;
- 添加字段:alter table tablename add(new字段名 数据类型);
- 删除字段:alter table tablename drop 字段名; //有字段一并删除
- 删库:drop database [库名];
- 删表:drop table [表名];
Springboot笔记
- ****启动参数:mybatis-generator:generate -e
- springboot实体类的注解时间类型转换:
- 前端:@JsonFormat(timezone = “GMT+8”,pattern = “yyyy-mm-dd”) or @JsonFormat(timezone = “GMT+8”,pattern = “yyyy-mm-dd hh:mm:ss”)
- 后端:@DateTimeFormat(pattern = “yyyy-mm-dd”) or @DateTimeFormat(pattern = “yyyy-mm-dd hh:mm:ss”)
//最好两个都加上
SpringMVC的工作流程
1、自己的理解
请求来源是用户访问url,之后才是SpringMVC工作开始,比如说:
狗蛋第一次去公司上班,必须要经过公司园区的大门才能进去,请求是一样的,需要经过叫做Dispathcer Servlet的前端控制器,公司的工作地点在哪里(请求工作),不认识路(请求需要在哪里才能分析),所以得打开手机地图,在地图上找到公司所在地,在SpringMVC中,从Dispathcer Servlet开始,先找到Handler Mapper,通过这个组件映射找到公司地点的老板(Handler Mapper)。
找到老板以后,狗蛋按照手机地图(Handler Mapper组件里的信息)指明了狗蛋工作的HandlerAdapter。现在狗蛋身为员工(Handler,请求所对应的事件),狗蛋工作的内容就是控制层(MVC中的C)下请求url对应的方法,工作完成后,需要提交工作给老板看(返回ModelAndView对象给HandlerAdpter),老板满意之后,狗蛋把自己做的的”项目“发布到了公司的服务器上让客户尽情浏览(意思就是将ModelAndView对象返回给DispatherServlet)。
2、具体流程
1、用户发送请求到前端控制器DispatcherServlet。
2、DispatcherServlet收到请求后,调用HandlerMapping(处理器映射器)。
3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有就生成)一并返回给DispatcherServlet。
4、DispatcherServlet调用HandlerAdapter(处理器适配器) 。
5、HandlerAdapter经过适配,再调用具体的处理器(Controller,就叫做后台控制器),Controller执行完成返回ModelAndView。
6、HandlerAdapter将controller的执行结果ModelAndView返回给了DispatcherServlet。
7、DispatcherServlet将ModelAndView传给ViewReslover(视图解析器),ViewReslover解析后返回具体View。
8、DispatcherServlet根据View对视图进行渲染,并将处理结果通过页面展示给用户。
JSP和Servlet
-
Servlet生命周期
1、初始化:Web容器加载servlet,调用init()方法 只执行一次;
2、请求处理:请求到达,运行service()方法,service()自动调用和请求相对应的doXX(doGet或者doPost)方法, 可执行多次;
3、销毁:服务结束,web容器会调用servlet的distroy()方法销毁servlet,并只执行一次; -
get提交和post提交有何区别
1、请求的时候参数的位置不一样,get的参数是拼接在url后面,别人在浏览器地址栏上可以看到,所以不安全。而post请求是放在请求体中,看不到提交的参数,所以更安全。
2、get提交的数据只能是文本,大小不能超过1024个字节,而post可以提交文本、二进制文件。所以提交和上传文件一般都用post。 -
doGet与doPost方法
1、HttpServletRequest:封装了与请求相关的信息
2、HttpServletResponse:封装了与响应相关的信息 -
四种作用域
1、page:一个页面
2、session:一次会话
3、request::一次请求
4、application:服务器从启动到停止。