自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

似水流年的博客

偶尔记一下

  • 博客(62)
  • 收藏
  • 关注

原创 使用 HttpSession 实现验证码

基本原理: 和表单重复提交一致:    > 在原表单页面, 生成一个验证码的图片, 生成图片的同时, 需要把该图片中的字符串放入到 session 中.     > 在原表单页面, 定义一个文本域, 用于输入验证码.     > 在目标的 Servlet 中: 获取 session 和 表单域 中的 验证码的 值    > 比较两个值是否一致: 若一致, 受理请...

2018-07-23 15:04:44 804 1

原创 表单的重复提交

1). 重复提交的情况: ①. 在表单提交到一个 Servlet, 而 Servlet 又通过请求转发的方式响应一个 JSP(HTML) 页面, 此时地址栏还保留着 Serlvet 的那个路径, 在响应页面点击 "刷新" ②. 在响应页面没有到达时重复点击 "提交按钮". ③. 点击 "返回", 再点击 "提交"2). 不是重复提交的情况: 点击 "返回", "刷新" 原表单页

2018-07-23 15:00:59 287

原创 web应用中的绝对路径和相对路径

使用相对路径可能会有问题, 但使用绝对路径肯定没有问题. 1). 绝对路径: 相对于当前 WEB 应用的路径. 在当前 WEB 应用的所有的路径前都添加 contextPath 即可. 2). / 什么时候代表站点的根目录, 什么时候代表当前 WEB 应用的根目录若 / 需要服务器进行内部解析, 则代表的就是 WEB 应用的根目录. 若是交给浏览器了, 则 / 代表的就是站点的根目录...

2018-07-23 14:44:27 3046

原创 Cookie小示例

示例1:<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8" session="false"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "htt

2018-07-23 11:20:12 1132

原创 Session的生命周期

1. HttpSession 的生命周期:1). 什么时候创建 HttpSession 对象①. 对于 JSP: 是否浏览器访问服务端的任何一个 JSP, 服务器都会立即创建一个 HttpSession 对象呢?不一定。    > 若当前的 JSP 是客户端访问的当前 WEB 应用的第一个资源,且 JSP 的 page 指定的 session 属性值为 false, 则服务器就不...

2018-07-21 17:52:20 5725

原创 多线程死锁

package com.mwl.thread3;class A{        public synchronized void foo(B b){                System.out.println("当前线程名:"+Thread.currentThread().getName()                                        +"进...

2018-07-16 16:15:28 138

原创 spring集成redis

1.1. 通过jedis连接redis单机 1.1.1.  jar包pom坐标:   <dependency>          <groupId>redis.clients</groupId>          <artifactId>jedis</artifactId>          <version>2.7.0&lt...

2018-07-14 16:24:56 169

原创 redis的安装,配置

1.  redis介绍1.1. 什么是redis         Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:字符串类型散列类型列表类型集合类型有序集合类型。1.2. redis的应用场景缓存(数据查询、短连接、新闻内容、商品内容...

2018-07-14 16:06:21 539

原创 Nginx的高可用

要实现nginx的高可用,需要实现备份机。 1.1. 什么是负载均衡高可用       nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。       为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I a...

2018-07-14 13:55:21 412

原创 正向代理和反向代理

1.1. 什么是反向代理正向代理反向代理:反向代理服务器决定哪台服务器提供服务。返回代理服务器不提供服务器。也是请求的转发。

2018-07-14 12:04:55 152

原创 域名

什么是域名域名就是网站。www.baidu.comwww.taobao.comwww.jd.comTcp/ip Dns服务器:把域名解析为ip地址。保存的就是域名和ip的映射关系。一级域名:Baidu.comTaobao.comJd.com二级域名:www.baidu.comImage.baidu.comItem.baidu.com三级域名:1.Image.baidu.comAaa.image.b...

2018-07-14 12:01:17 14076 1

翻译 nginx安装,配置

1.nginx介绍(网上借阅)1.1. 什么是nginx         Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。 1.2. Nginx的应用场景1、http服务器。Nginx是...

2018-07-14 11:57:07 867

原创 java代码中使用多线程并行

@ResponseBody @RequestMapping("/test") public String testThread(){ Date date1 = new Date(); System.out.println("注册用户");// sendEmail();// sendMsg(); Thread thread = new Thread(() -> sendEmail()...

2018-07-07 14:56:22 1730

原创 InnoDB引擎的数据库状态查看(分析行锁)

通过检查InnoDB_row_lock状态变量来分析系统上的行锁的争夺情况show status like 'innodb_row_lock%';对于各个状态说明如下:Innodb_row_lock_current_waits:当前正在等待锁的数量;Innodb_row_lock_time:从系统启动到现在锁定总时间长度;Innodb_row_lock_time_avg:每次等待所花平均时间;In...

2018-07-06 17:22:11 8476 1

原创 Show Profile

1.Show Profile默认是关闭的,试用前需要开启:查看是否开启:Show variables like 'profiling';设置开启:set profiling = on;2.使用:show profile cpu,block io for query 150;3.show profile 的参数:type是可选的,取值范围可以如下:ALL 显示所有性能信息BLOCK IO 显示块IO...

2018-06-20 17:00:55 2081

原创 sql慢日志

1.查看慢日志是否开启(默认关闭的):show VARIABLES like '%slow_query_log%';2.如何开启呢?set global slow_query_log = 1;此命令只对当前数据库有效,如果mysql重启后,则会失效,如果要想一直有效,则要配置my.cnf文件,配置如下:修改my.cnf文件,[mysqld]下增加或修改参数slow_query_log和slow_q...

2018-06-20 15:49:07 1541

原创 哪些情况下需要创建索引?哪些情况下不要创建索引?

1.主键自动建立唯一索引;2.频繁作为查询条件的字段应该创建索引;3.查询中与其他表有关联的字段,例如外键关系;4.频繁更新的字段不适合创建索引,因为每次更新不单单是更新记录,还会更新索引,保存索引文件;5.where条件里用不到的字段,不创建索引;6.高并发的情况下一般选择复合索引;7.查询中排序的字段创建索引将大大提高排序的速度(索引就是排序加快速查找);8.查询中统计或者分组的字段;9.表记...

2018-06-19 20:07:59 25777 6

原创 【案例讲解】存储过程

#一、创建存储过程实现传入用户名和密码,插入到admin表中CREATE PROCEDURE test_pro1(IN username VARCHAR(20),IN loginPwd VARCHAR(20))BEGIN INSERT INTO admin(admin.username,PASSWORD) VALUES(username,loginpwd);END $#二、创建存储过程实现传入女神...

2018-06-19 18:58:10 3415

原创 存储过程

#存储过程和函数/*存储过程和函数:类似于java中的方法好处:1、提高代码的重用性2、简化操作*/#存储过程/*含义:一组预先编译好的SQL语句的集合,理解成批处理语句1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率*/#一、创建语法CREATE PROCEDURE 存储过程名(参数列表)BEGIN 存储过程体(一组合法的SQL语句)END#注意:...

2018-06-19 18:57:56 285

原创 函数

#函数/*含义:一组预先编译好的SQL语句的集合,理解成批处理语句1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率区别:存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新函数:有且仅有1 个返回,适合做处理数据后返回一个结果*/#一、创建语法CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型BEGIN 函数...

2018-06-19 18:57:46 373

原创 流程控制经典案例讲解

/*一、已知表stringcontent其中字段:id 自增长content varchar(20)向该表插入指定个数的,随机的字符串*/DROP TABLE IF EXISTS stringcontent;CREATE TABLE stringcontent( id INT PRIMARY KEY AUTO_INCREMENT, content VARCHAR(20) );DELIMITER $...

2018-06-19 18:57:37 1256

原创 流程控制结构

#流程控制结构/*顺序、分支、循环*/#一、分支结构#1.if函数/*语法:if(条件,值1,值2)功能:实现双分支应用在begin end中或外面*/#2.case结构/*语法:情况1:类似于switchcase 变量或表达式when 值1 then 语句1;when 值2 then 语句2;...else 语句n;end 情况2:case when 条件1 then 语句1;when 条件2 ...

2018-06-19 18:57:26 287

原创 变量

#变量/*系统变量: 全局变量 会话变量自定义变量: 用户变量 局部变量*/#一、系统变量/*说明:变量由系统定义,不是用户定义,属于服务器层面注意:全局变量需要添加global关键字,会话变量需要添加session关键字,如果不写,默认会话级别使用步骤:1、查看所有系统变量show global|【session】variables;2、查看满足条件的部分系统变量show global|【ses...

2018-06-19 18:57:08 131

原创 【案例讲解】常见约束

#1.向表emp2的id列中添加PRIMARY KEY约束(my_emp_id_pk)ALTER TABLE emp2 MODIFY COLUMN id INT PRIMARY KEY;ALTER TABLE emp2 ADD CONSTRAINT my_emp_id_pk PRIMARY KEY(id);#2. 向表dept2的id列中添加PRIMARY KEY约束(my_dept_id_pk)...

2018-06-19 18:56:56 1616 1

原创 【案例讲解】视图

#一、创建视图emp_v1,要求查询电话号码以‘011’开头的员工姓名和工资、邮箱CREATE OR REPLACE VIEW emp_v1ASSELECT last_name,salary,emailFROM employeesWHERE phone_number LIKE '011%';#二、创建视图emp_v2,要求查询部门的最高工资高于12000的部门信息CREATE OR REPLACE...

2018-06-19 18:56:44 1017

原创 视图

#视图/*含义:虚拟表,和普通表一样使用mysql5.1版本出现的新特性,是通过表动态生成的数据比如:舞蹈班和普通班级的对比 创建语法的关键字 是否实际占用物理空间 使用视图 create view 只是保存了sql逻辑 增删改查,只是一般不能增删改表 create table 保存了数据 增删改查*/#案例:查询姓张的学生名和专业名SELECT stuname,majornameFROM ...

2018-06-19 18:56:34 263

原创 事务

#TCL/*Transaction Control Language 事务控制语言事务:一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。案例:转账张三丰  1000郭襄 1000update 表 set 张三丰的余额=500 where name='张三丰'意外update 表 set 郭襄的余额=1500 where name='郭襄'事务的特性:ACID原子性:...

2018-06-19 18:56:22 229

原创 常见约束

#常见约束/*含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性分类:六大约束 NOT NULL:非空,用于保证该字段的值不能为空 比如姓名、学号等 DEFAULT:默认,用于保证该字段有默认值 比如性别 PRIMARY KEY:主键,用于保证该字段的值具有唯一性,并且非空 比如学号、员工编号等 UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空 比如座位号 CHECK:...

2018-06-19 18:56:10 623

原创 标识列

#标识列/*又称为自增长列含义:可以不用手动的插入值,系统提供默认的序列值特点:1、标识列必须和主键搭配吗?不一定,但要求是一个key2、一个表可以有几个标识列?至多一个!3、标识列的类型只能是数值型4、标识列可以通过 SET auto_increment_increment=3;设置步长可以通过 手动插入值,设置起始值*/#一、创建表时设置标识列DROP TABLE IF EXISTS tab_...

2018-06-19 18:55:59 1725

原创 【作业讲解】查询

#一、查询每个专业的学生人数SELECT majorid,COUNT(*)FROM studentGROUP BY majorid;#二、查询参加考试的学生中,每个学生的平均分、最高分SELECT AVG(score),MAX(score),studentnoFROM resultGROUP BY studentno;#三、查询姓张的每个学生的最低分大于60的学号、姓名SELECT s.stude...

2018-06-19 18:55:48 1701

原创 【案例讲解】数据的增删改

#1. 运行以下脚本创建表my_employeesUSE myemployees;CREATE TABLE my_employees( Id INT(10), First_name VARCHAR(10), Last_name VARCHAR(10), Userid VARCHAR(10), Salary DOUBLE(10,2));CREATE TABLE users( id INT, user...

2018-06-19 18:55:03 658

原创 【案例讲解】库和表的管理

#1. 创建表dept1NAME NULL? TYPEid INT(7)NAME VARCHAR(25)USE test;CREATE TABLE dept1( id INT(7), NAME VARCHAR(25) );#2. 将表departments中的数据插入新表dept2中CREATE TABLE dept2SELECT department_id,department_nameFR...

2018-06-19 18:54:54 795

原创 子查询经典案例

# 1. 查询工资最低的员工信息: last_name, salary#①查询最低的工资SELECT MIN(salary)FROM employees#②查询last_name,salary,要求salary=①SELECT last_name,salaryFROM employeesWHERE salary=( SELECT MIN(salary) FROM employees);# 2. 查...

2018-06-19 18:54:43 1133

原创 数据类型

#常见的数据类型/*数值型: 整型 小数: 定点数 浮点数字符型: 较短的文本:char、varchar 较长的文本:text、blob(较长的二进制数据)日期型: */#一、整型/*分类:tinyint、smallint、mediumint、int/integer、bigint1 2 3 4 8特点:① 如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加unsigne...

2018-06-19 18:53:49 171

原创 数据的增删改

#DML语言/*数据操作语言:插入:insert修改:update删除:delete*/#一、插入语句#方式一:经典的插入/*语法:insert into 表名(列名,...) values(值1,...);*/SELECT * FROM beauty;#1.插入的值的类型要与列的类型一致或兼容INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,...

2018-06-19 18:53:34 213

原创 联合查询(union)

#进阶9:联合查询/*union 联合 合并:将多条查询语句的结果合并成一个结果语法:查询语句1union查询语句2union...应用场景:要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时特点:★1、要求多条查询语句的查询列数是一致的!2、要求多条查询语句的查询的每一列的类型和顺序最好一致3、union关键字默认去重,如果使用union all 可以包含重复项*/#引入的...

2018-06-19 18:53:23 16937

原创 库和表的管理

#DDL/*数据定义语言库和表的管理一、库的管理创建、修改、删除二、表的管理创建、修改、删除创建: create修改: alter删除: drop*/#一、库的管理#1、库的创建/*语法:create database  [if not exists]库名;*/#案例:创建库BooksCREATE DATABASE IF NOT EXISTS books ;#2、库的修改RENAME DATABA...

2018-06-19 18:53:12 331

原创 【案例讲解】外连接

#一、查询编号>3的女神的男朋友信息,如果有则列出详细,如果没有,用null填充SELECT b.id,b.name,bo.*FROM beauty bLEFT OUTER JOIN boys boON b.`boyfriend_id` = bo.`id`WHERE b.`id`>3;#二、查询哪个城市没有部门SELECT cityFROM departments dRIGHT OUT...

2018-06-19 18:52:41 1143

原创 【作业讲解】连接查询

#1.显示所有员工的姓名,部门号和部门名称。USE myemployees;SELECT last_name,d.department_id,department_nameFROM employees e,departments dWHERE e.`department_id` = d.`department_id`;#2.查询90号部门员工的job_id和90号部门的location_idSEL...

2018-06-19 18:52:31 3956

原创 【案例讲解】子查询

#1. 查询和Zlotkey相同部门的员工姓名和工资#①查询Zlotkey的部门SELECT department_idFROM employeesWHERE last_name = 'Zlotkey'#②查询部门号=①的姓名和工资SELECT last_name,salaryFROM employeesWHERE department_id = ( SELECT department_id FR...

2018-06-19 18:52:21 1553

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除