JavaWeb知识点总结 您所在的位置:网站首页 html属性一般出现在什么内部 JavaWeb知识点总结

JavaWeb知识点总结

2023-03-17 11:33| 来源: 网络整理| 查看: 265

》一:

创建Web项目项目说明:1、java Resources:java源文件2、WebContent:网页内容html、css、js、jsp、资源、配置文件等

HTML:Hyper Text Markup Language超文本标记语言作用:标记描述网页内容语法规则:1、不区分大小写2、固定标签3、标签成对出现,单标签4、标签可以嵌套使用5、属性的值必须使用双引号

HTML中属性,一般不建议使用属性名称固定,属性的值都需要使用双引号

网页中颜色:1、rgb(r,g,b)2、#xxxx3、英文单词网页中单位:1、数字或数字px2、数字%:占用屏幕的比例网页中注释路径:1、相对路径不带盘符的路径,相对,一般都是相对当前项目2、绝对路径带盘符的路径,又叫物理路径

一、文档标签:1、 该标签告知浏览器文档所使用的 HTML 规范2、标签告知浏览器这是一个 HTML 文档。html 元素是 HTML 文档中最外层的元素。html 元素也可称为根元素3、不会出现在网页正文中4、出现在可以标记编码格式、刷新、作者、描述、搜索关键字等5、网页正在内容常用标签都是出现在中

二、文字标签1、出现在中,网页标题2、-标题,从1-到6逐渐变小3、 规定文本的字体、字体尺寸、字体颜色

三、列表标签1、无序标签,前面没有序号,属性:type:可以更改列表签名的符号2、列表中元素标签3、有序标签,前面有序号,属性:start:起始的值,type:类型,数字、字母等

四、块标签1、行内块标签2、

段落,默认换行3、块,将网友分割成若干部分,常用属性:align:对齐方式,left\right\center

五、表格标签1、表格,一般有行和列组成常用属性:1、width:宽度2、border:边框的宽度3、bgcolor:背景色4、cellspacing:表格之间的间距--外边距5、cellpadding:表格内容的间距--内边矩2、:行,内部只能出现或常用属性:1、align:对齐方式,内部元素的对齐3、列的标题,出现在tr中,表头单元格4、列,数据单元格常用属性:1、colspan:跨列,切记要包含自己2、rowspan:跨行th和td的区别?th就是内部文字:加粗、居中td内部文字正常。居左

5、表格的标题6、表格的头部,一般内部存放7、表格的内容,一般存储数据8、表格的底部

六、表单标签1、:表单标签,可以搜集用户的信息并提交给指定的服务器2、:用户输入标签常用属性:1、type:类型取值:text:文本框password:密码框checkbox:复选框,可以选择多个radio:单选框,只能选择其一,但是要求拥有相同的namebutton:按钮submit:提交,结合表单,将表单内的数据提交给actionreset:重置,结合表单,清空表单的内容

2、name:为当前的标签命名,将来获取标签数据时,会用到3、class:为当前标签起个类名,主要用在CSS中4、value:值,标签的值,主要用在按钮上5、checked:是否选中,h4支持checked,h5支持true或false3、:下拉框,实现多个元素的单选或复选,需要结合使用常用属性:multiple:是否多选name:名称disabled:是否可用4、文本域,可以输入多行和多列数据常用属性:1、rows:行数2、cols:列数

七、图像&超链接标签1、图片常用属性:1、alt:鼠标进入时的文字2、src:加载的图片路径3、width:设置图片的宽度4、height:设置图片的高度2、超链接标签,可以跳转到指定的url常用属性:1、href:要打开的路径2、name:名称

八、框架标签1、框架集合标签,主要用来包括框架的标签常用属性:1、cols:内部框架按照宽进行排布2、rows:内部框架按照高度进行排布2、框架,引用其他网页常用属性:1、src:要加载的路径2、scrolling:滚动条的样式,取值:yes 、no 、auto

九、HTML的特殊字符1、< ;2、> ;3、空格 ;4、版本编号 ©

十、H5新增标签1、视频,可以在网页播放视频格式:2、音频3、画布可以绘制2d或3d图切记画布需要结合js使用

 

form表单的get提交和post提交的区别HTTP协议的get请求和postde 区别get:得到,将传递的参数随着url进行传输特点:1、大小有限制2、不安全,拼接url3、中文乱码,url编码为ISO-8859-1(不支持中文)4、效率高post:传输,将传递的参数以流的形式传输特点:1、大小无限制2、安全3、乱码好解决4、效率低

 

十一、其他标签1、换行2、分割线3、;一个空格

 

》二 CSS

HTML:超文本标记语言描述内容显示在网页中语法规则:不区分大小写标签成对,但是单标签属性值必须双引号标签固定标签嵌套使用

常用标签:metatitledivpspana:hrefimg:srcinputselecttextareaform:action&methodtable:border

get和post

 

MIME类型:就是标记文档的类型格式:大类型/小类型css:text/cssjs:text/javascript图片:image/jpg所有图片:image/*

 

1、CSS是什么?层叠样式表 (Cascading Style Sheets) 定义如何显示HTML元素的样式2、CSS的作用是什么?1、提高工作效率2、多样式层叠3、提高了内容和样式的分离

就是美化HTML显示的内容

3、CSS的语法规则规则:选择器{属性名称:值;属性名称:值}eg:h1{color:red;}CSS不区分大小写,但是id和class选择器区分大小写

4、CSS的引入方式有多少?1、内嵌样式Html元素都有一个属性:style,直接在html元素内使用eg:今天好好听课2、内部样式在html文档的标签中使用选择器{属性名称:值}3、外部样式表创建css文件,在网页中的中通过标签引用eg:rel:文本类型,告知引用的类型type:MIME类型href:外部样式文件所在路径4、导入式外部样式@import url("外部样式文件路径")不推荐使用,主要针对IE老版本

样式作用的优先级:内嵌->内部->外部就近原则

5、CSS的选择器1、标签选择器格式:HTML标签名称{属性名:值}2、类选择器要求html的标签使用class属性命名类名格式:.类名{属性名:值}HTML标签可以拥有同一个class3、ID选择器要求HTML的标签使用id属性名称,id名不可重复格式:#id名称{属性名:值}4、派生选择器规则:选择器(标签、类、id) 内部标签名称{属性名:值}就是通过标签的内部嵌套来修改指定标签的样式5、属性选择器规则:标签名称(可以省略)[属性名称="值"]{属性名:值}就是通过标签的属性名称来修改指定标签的样式

6、伪类选择器规则:标签名称:伪类名称{属性名:值}常用的伪类::active 向被激活的元素添加样式。 1 :focus 向拥有键盘输入焦点的元素添加样式。 2 :hover 当鼠标悬浮在元素上方时,向元素添加样式。 1 :link 向未被访问的链接添加样式。 1 :visited 向已被访问的链接添加样式。 1 :first-child 向元素的第一个子元素添加样式。 2 :lang 向带有指定 lang 属性的元素添加样式。 :first-letter 向文本的第一个字母添加特殊样式。 1 :first-line 向文本的首行添加特殊样式。 1 :before 在元素之前添加内容。 2 :after 在元素之后添加内容。

6、CSS的属性1、背景属性background:背景色/图background-color:背景色background-image:背景图图片过小,标签过大默认会出现背景重复background-repeat:设置重复样式取值:repeat 默认。背景图像将在垂直方向和水平方向重复。 repeat-x 背景图像将在水平方向重复。 repeat-y 背景图像将在垂直方向重复。 no-repeat 背景图像将仅显示一次。background-position:定位,显示的位置取值:leftrighttopbottomcenter具体数值background-attachment:设置背景图是否跟着一起动取值:scroll 默认值。背景图像会随着页面其余部分的滚动而移动。 fixed 当页面的其余部分滚动时,背景图像不会移动。 2、文本属性 1、text-indent:缩进2、text-align:对齐方式3、letter-spacing: 字母的间距4、word-spacing:单词的间距5、text-transform:变换,大小写转换取值:none uppercase lowercase 6、 text-decoration:文本装饰取值:none 默认。定义标准的文本。 underline 定义文本下的一条线。 overline 定义文本上的一条线。 line-through 定义穿过文本下的一条线。 blink 定义闪烁的文本。 7、direction: 文本方向取值:ltr 默认。文本方向从左到右。 rtl 文本方向从右到左。 3、字体属性1、font-family:字体类型楷体、黑体、宋体等2、font-style:设置是否倾斜3、font-weight:设置字体的粗细取值:[100,900]正常:400加粗:7004、font-size:字体大小4、列表属性(不常用)1、list-style-image 将图象设置为列表项标志。 2、list-style-type 设置列表项标志的类型

5、表格属性1、width:宽2、height:高3、border:边框4、text-align 属性设置水平对齐方式,比如左对齐、右对齐或者居中5、vertical-align 属性设置垂直对齐方式,比如顶部对齐、底部对齐或居中对齐:

6、轮廓属性(不常用)1、outline-color 设置轮廓的颜色。 2、outline-style 设置轮廓的样式。 取值:none 默认。定义无轮廓。 dotted 定义点状的轮廓。 dashed 定义虚线轮廓。 solid 定义实线轮廓。 double 定义双线轮廓。双线的宽度等同于 outline-width 的值。 groove 定义 3D 凹槽轮廓。此效果取决于 outline-color 值。 ridge 定义 3D 凸槽轮廓。此效果取决于 outline-color 值。 inset 定义 3D 凹边轮廓。此效果取决于 outline-color 值。 outset 定义 3D 凸边轮廓。此效果取决于 outline-color 值。

3、outline-width 设置轮廓的宽度。

 

7、CSS新增属性

CSS的注释方式:在标签下使用/*注释内容*/文字的尺寸em:自动适应尺寸,方便字体的放大或缩小1em=16px0.75em=12px

默认字体大小16pxpx:像素,表达字体大小,缩放的时候有点不好用为了网页的实用性,推荐字体大小单位em%:百分比表达字体大小italic和oblique的区别?体(italic)是一种简单的字体风格,对每个字母的结构有一些小改动,来反映变化的外观。与此不同,倾斜(oblique)文本则是正常竖直文本的一个倾斜版本。通常情况下,italic 和 oblique 文本在 web 浏览器中看上去完全一样。

 

》三HTML+CSS综合案例

 

网页中:多个空格会起到一个空格的作用,换行也会起到一个空格的作用

注释:java中的注释:1、单行注释 eg://注释2、多行注释 eg:/*多行注释*/3、文档注释 eg:/**文档注释*/HTML中的注释:1、CSS中的注释:只出现在或css文件中1、/*CSS注释*/JavaScript中的注释:只出现在或js文件中1、单行注释 eg://单行注释2、多行注释 eg:/*多行注释*/

 

1、JS是什么?JavaScript:脚本语言,运行浏览器让HTML进行交互

JAVA和JS没任何关系

2、JS的作用是什么?1、获取和设置HTML元素2、动态改变页面3、校验、检测、对事件做出响应等4、获取浏览器、Cookie等信息

3、JS的引用方式?1、在引用

2、在引用eg:

3、引用外部js文件

js写在head和body的区别?head中,获取不到HTML元素,因为此时HTML还未加载完成(函数外)body中,可以获取HTML元素

4、JS的数据类型java的数据类型:1、基本数据类型:byte short int long float double char boolean2、引用数据类型:数组、枚举、类、集合、接口等

JS的数据类型:1、原始数据类型Undefined 、number、boolean、string、NULL原始就是声明之后直接赋值而不通过new来创建var v=12;var v=true;var v="aaa";2、引用数据类型Number\Boolean\String\内置类型就是通过new 创建的额类型都属于引用类型

js中的typeof&instanceof 区别? typeof:主要用来显示原始类型,如果显示引用类型无论什么类型都为Object 格式:typeof 变量名称 eg: typeof v1

instanceof:主要用来验证引用类型,返回值为boolean类型 格式: 变量名称 instanceof 引用数据类型 返回true或flase eg: v1 instanceof Boolean

例如:

var v1=new Number(2);

document.write("类型:"+(typeof v1));//类型:objectdocument.write("类型:"+(v1 instanceof Boolean));//类型:false

5、JS的基本语法

JS的语法规则:1、区分大小写2、变量可以声明也可以不声明3、出现在标签内部或js文件中4、定义函数需要使用关键字function5、函数可以有参数和返回值6、JS内置了很多对象可以直接使用

1、变量格式:var 变量名称[=值]js的变量可以不声明直接使用var v;v=12;t=11;

变量命名规则:1、变量对大小写敏感(y 和 Y 是两个不同的变量) 2、变量必须以字母或下划线开始 3、不能是关键字

JS中的变量全局变量:声明在函数外的变量或者是函数内不带var的变量局部变量:声明在函数内的变量且带有var,作用域在函数内部

变量如果在函数内部不使用var进行声明,那么默认为全局变量如果使用var进行声明那么就属于局部变量

2、运算符java的运算符:算术、比较、赋值、逻辑、位、三目、字符串连接运算符JS运算符差不多需要特别注意的:1、==和===的区别==只比较内容(number)===比较内容和类型

例:x=5;运算符 描述 例子 == 等于 x==8 为 false === 全等(值和类型) x===5 为 true;x==="5" 为 false

1.1 逻辑运算符&&和||和! 逻辑运算符 逻辑运算符用于测定变量或值之间的逻辑。

给定 x=6 以及 y=3,下表解释了逻辑运算符:

运算符 描述 例子 && and (x < 10 && y > 1) 为 true || or (x==5 || y==5) 为 false ! not !(x==y) 为 true

2、js也支持三目运算符X?Y:Z

程序结构:1、顺序结构2、分支结构3、循环结构3、分支语句1、if(条件)2、switch

4、循环4.1for语句格式:for(表达式1;表达式2;表达式3) {循环体}执行过程:先执行表达式1再验证表达式2true则执行循环体接着执行表达式3再执行表达式2true继续false结束4.2while语句格式:while(表达式) { 循环体; }4.3do/while语句格式:do{ 循环体;}while(表达式);

 

6、JS的消息框js主要提供了三种消息框 1、普通警告框 alert("内容"); 2、确认框 confirm("内容")会返回一个boolean值,如果点击"确定"返回true,反之false 3、提示框 prompt("提示内容","默认值");会返回提示框中的输入框的内容

7、JS函数也就是java中的方法提高代码的复用格式:

function 函数名称([参数名]) {

//代码块 [return 返回值] //return 返回值 可有可没有 }

例:

function show1(){ document.write("OK");}

8、JS事件就是HTML的事件属性事件属性的值一般都是JS函数常用事件:onclick 单击ondblclick 双击onkeydown:键盘键按下onmouseout 鼠标移出 onmouseover 鼠标进入onblur 失去焦点onfocus 获取焦点onchange 内容变化onselect 选择onsubmit 提交-表单onload 加载完

 

 

9、JS常用对象

 

10、JS之Window、History 、Location

 

11、JS的DOM

二级联动

 

12、JS综合案例点名、抽奖、贪吃蛇、瀑布流等

 

》四

 

注释:java中的注释:1、单行注释 eg://注释2、多行注释 eg:/*多行注释*/3、文档注释 eg:/**文档注释*/HTML中的注释:1、CSS中的注释:只出现在或css文件中1、/*CSS注释*/JavaScript中的注释:只出现在或js文件中1、单行注释 eg://单行注释2、多行注释 eg:/*多行注释*/

 

1、JS是什么?JavaScript:脚本语言,运行浏览器让HTML进行交互

JAVA和JS没任何关系

2、JS的作用是什么? 2.1、获取和设置HTML元素 2.2、动态改变页面 2.3、校验、检测、对事件做出响应等 2.4、获取浏览器、Cookie等信息

3、JS的引用方式? 3.1、在引用 eg:

3.2、在引用

3.3、引用外部js文件

js写在head和body的区别? head中,获取不到HTML元素,因为此时HTML还未加载完成(函数外) body中,可以获取HTML元素

4、JS的数据类型 java的数据类型: 1、基本数据类型:byte short int long float double char boolean 2、引用数据类型:数组、枚举、类、集合、接口等

JS的数据类型:1、原始数据类型 Undefined 、number、boolean、string、NULL 原始就是声明之后直接赋值而不通过new来创建 var v=12; var v=true; var v="aaa"; 2、引用数据类型Number\Boolean\String\内置类型就是通过new 创建的额类型都属于引用类型

js中的typeof&instanceof 区别? typeof:主要用来显示原始类型,如果显示引用类型无论什么类型都为Object 格式:typeof 变量名称 instanceof:主要用来验证引用类型,返回值为boolean类型 格式: 变量名称 instanceof 引用数据类型 返回true或flase

5、JS的基本语法

JS的语法规则: 1、区分大小写 2、变量可以声明也可以不声明 3、出现在标签内部或js文件中 4、定义函数需要使用关键字function 5、函数可以有参数和返回值 6、JS内置了很多对象可以直接使用

1、变量 格式:var 变量名称[=值] js的变量可以不声明直接使用 var v; v=12; t=11;

变量命名规则: 1、变量对大小写敏感(y 和 Y 是两个不同的变量) 2、变量必须以字母或下划线开始 3、不能是关键字

JS中的变量 全局变量:声明在函数外的变量或者是函数内不带var的变量 局部变量:声明在函数内的变量且带有var,作用域在函数内部 变量如果在函数内部不使用var进行声明,那么默认为全局变量 如果使用var进行声明那么就属于局部变量

2、运算符java的运算符:算术、比较、赋值、逻辑、位、三目、字符串连接运算符 JS运算符差不多 需要特别注意的: 1、==和===的区别 ==只比较内容(number) ===比较内容和类型 2、js也支持三目运算符 X?Y:Z

程序结构: 1、顺序结构 2、分支结构 3、循环结构 3、分支语句 1、if(条件) 2、switch

4、循环 4.1for语句 格式:for(表达式1;表达式2;表达式3) {循环体} 执行过程: 先执行表达式1再验证表达式2true则执行循环体接着执行表达式3再执行表达式2true继续false结束 4.2while语句 格式:while(表达式) { 循环体; } 4.3do/while语句 格式:do{ 循环体; }while(表达式);

 

6、JS的消息框js主要提供了三种消息框 6.1、普通警告框 alert("内容"); 6.2、确认框 confirm("内容") 会返回一个boolean值,如果点击"确定"返回true,反之false 6.3、提示框 prompt("提示内容","默认值"); 会返回提示框中的输入框的内容

7、JS函数也就是java中的方法 提高代码的复用 格式: function 函数名称([参数名]) {

//代码块 [return 返回值] }

 

8、JS事件就是HTML的事件属性事件属性的值一般都是JS函数常用事件: onclick 单击 ondblclick 双击 onkeydown:键盘键按下 onmouseout 鼠标移出 onmouseover 鼠标进入 onblur 失去焦点 onfocus 获取焦点 onchange 内容变化 onselect 选择 onsubmit 提交-表单 onload 加载完

 

 

9、JS常用对象JS是面向对象的编程语言9.1Date日期类获取浏览器的时间(本地电脑的时间)常用方法: getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。 1 3 getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。 1 3 getMonth() 从 Date 对象返回月份 (0 ~ 11)。 1 3 getFullYear() 从 Date 对象以四位数字返回年份。 1 4 getYear() 请使用 getFullYear() 方法代替。 1 3 getHours() 返回 Date 对象的小时 (0 ~ 23)。 1 3 getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。 1 3 getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。 1 3 getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。

 

JS中的定时器: 1、setTimeout:设置延迟执行的方法和延迟时间 参数说明: 1、要重复执行的方法 2、延迟的时间,毫秒 返回值: 1、当前定时器的标记(为了停止) 2、clearTimeout:停止重复执行的方法 参数说明: 1、定时器开始的标记重复间隔执行方法、计时器、定时刷新等9.2Number数字原始类型数字对应的引用类型常用方法: valueOf 返回一个 Number 对象的基本数字值。 toFixed 把数字转换为字符串,结果的小数点后有指定位数的数字。 toString 把数字转换为字符串,使用指定的基数。 9.3Math算术运算类常用的算术运算常用方法: abs(x) 返回数的绝对值。 floor(x) 对数进行下舍入。 pow(x,y) 返回 x 的 y 次幂。 random() 返回 0 ~ 1 之间的随机数。 1 3 round(x) 把数四舍五入为最接近的整数。 9.4String字符串类常用的字符串的引用类型常用属性: length 字符串的长度 常用方法: charAt() 返回在指定位置的字符。 1 3 charCodeAt() 返回在指定的位置的字符的 Unicode 编码。 concat() 连接字符串。 substr() 从起始索引号提取字符串中指定数目的字符。 1 4 substring() 提取字符串中两个指定的索引号之间的字符。 toLowerCase() 把字符串转换为小写。 1 3 toUpperCase() 把字符串转换为大写。 split() 把字符串分割为字符串数组。 indexOf() 检索字符串。 lastIndexOf() 从后向前搜索字符串。 match() 找到一个或多个正在表达式的匹配。 1 4 replace() 替换与正则表达式匹配的子串。 1 4 search() 检索与正则表达式相匹配的值。

 

String的substr()和substring的区别?在截取的起始索引都为正数或0的话,没有区别如果截取的开始索引为负数,那么substr从要截取的字符串.length+负数索引处开始而substring则把负数作为0处理简而言之:substr负数的话倒着截取,substring从0截取

9.5Array数组类存储多个变量的引用类型,且长度可变9.1数组的使用: 9.1.1、创建数组对象三种方式: 9.1.1.1:new Array(); 9.1.1.2:new Array(长度); 9.1.1.3:new Array(元素);9.2常用属性 length:获取数组的长度9.3常用方法 concat() 连接两个或更多的数组,并返回结果。 1 4 join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 1 4 pop() 删除并返回数组的最后一个元素 1 5.5 push() 向数组的末尾添加一个或更多元素,并返回新的长度。 1 5.5 reverse() 颠倒数组中元素的顺序。 1 4 shift() 删除并返回数组的第一个元素 1 5.5 slice() 从某个已有的数组返回选定的元素 1 4 sort() 对数组的元素进行排序 splice() 删除元素,并向数组添加新元素。

注意:1、java中的数组和JS中数组不一样2、JS中数组的sort方法按照字母的升序进行排列,如果是数字进行排序需要定义排序函数(2个参数)3、slice方法,参数说明: 第一个参数:指定索引,删除和新增的索引 第二个参数:删除的元素个数 可以为0 第三个参数:新增的元素内容,可以有多个

9.6Regexp正则类校验、匹配、替换等字符串的操作JS中的正则语法:/正则语法/属性9.6.1正则中的语法 9.6.1.1:正则语法 跟java中一样 . + * ? [] {} \d \D \w \D \b \B等 9.6.1.2:正则属性 i 执行对大小写不敏感的匹配。 g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 m 执行多行匹配。 9.6.2正则类的常用方法 1、exec:执行正则验证,返回匹配的内容,字符串索引停留在最后一次匹配的索引处 2、test:执行正则验证,返回true(验证成功)或flase9.6.3String类中支持正则验证的方法 1、match:匹配,支持全局匹配(可以返回匹配到的所有的内容) 2、search:查找,从前往后查找是否符合正则的内容(不支持全局,第一次出现的) 3、replace:替换,参数说明:第一个参数:字符串或正则表达式,第二个参数:字符串、规定的符合、函数 4、split:切割

10、JS的全局函数可以在任何一个网页中直接使用常用函数: isNaN() 检查某个值是否是数字。 1 3 Number() 把对象的值转换为数字。 1 parseFloat() 解析一个字符串并返回一个浮点数。 1 3 parseInt() 解析一个字符串并返回一个整数。 1 3 String() 把对象的值转换为字符串。 encodeURI() 把字符串编码为 URI。 decodeURI() 解码某个编码的 URI。

10、JS的DOMDocument:文档通过DOM可以获取并操作HTML的元素10.1DOM获取HTML标签对象的方式 10.1.1:通过ID 返回的是一个HTML元素对象 document.getElementById("id值"); 10.1.2:通过name 返回的是网页网页中所有此name值的HTML元素数组 document.getElementsByName("name值"); 10.1.3:通过HTML标签名称 返回的是网页中所有此标签的元素数组 document.getElementsByTagName("name值");10.2DOM创建HTML元素 10.2.1、通过元素的innerHTML属性添加 10.2.2、通过document的createElement方法创建并通过appenChild添加到指定元素下 方法说明: 1、createElement:创建元素,参数说明:1、元素名称 2、appenChild:添加子元素,参数说明:1、要添加的子元素的对象

10.3DOM设置HTML属性 1、通过对象的style类设置 2、通过对象的setAttribute设置 setAttribute方法说明 参数: 1、属性名称 2、属性的值

11、JS之BOM浏览器对象,操作浏览器Window、History 、Location 11.1Window窗口 1、open方法,创建或打开新的窗口 open(URL,name,features,replace): 参数说明: 1、要打开的url 2、名称,标记窗口 3、窗口特征属性,常用的值:width\height\left\top等 4、替换,boolean类型,true:在当前窗口打开,false新建一个窗口11.2History浏览器的历史记录 常用属性:length:历史记录的数量 常用方法: back() 加载 history 列表中的前一个 URL。 forward() 加载 history 列表中的下一个 URL。 go() 加载 history 列表中的某个具体页面。 需要参数:要打开的历史记录的网页

11.3Location网址信息 常用方法: 1、assign() 加载新的文档。 2、reload() 重新加载当前文档。 3、replace() 用新的文档替换当前文档。 注意:assign和replace的区别?assign只是在当前窗口中打开新的网址,所以可以后退replace将当前显示的网页的内容替换为新的内容11.4Navigator获取浏览器信息常用属性: appName 返回浏览器的名称。 appVersion 返回浏览器的平台和版本信息。

JS重点:1、函数2、事件3、对象4、DOM

 

 

JS综合:1、验证码2、注册页面校验3、浮动窗4、二级联动5、贪吃蛇6、点名

H5的面板canvans绘制流程:1、获取对应的对象var cvn=document.getElementById("id名称");2、获取Context对象var cn=cvn.getContext("2d");3、设置样式cn.fileStyle="颜色";4、绘制cn.fillRect(x,y,width,height):绘制矩形参数说明: 4.1x:左上角的x坐标 4.2y:左上角的y坐标 4.3width:宽度 4.4height:高度moveTo:移动lineTo:绘制线arc:绘制圆

Web前端:HTML:描述网页特点:固定标签不区分大小写属性的值必须双引号

网页:

重点记忆的标签:form表单diva\img\textarea\hr\ol\ul\table

H5:videoaudiocanvas离线数据库(SQLITE)CSS:样式表美化网页的1、引用方式:内嵌、内部、外部2、格式:选择器{属性名称:值}3、选择器:标签、类(.)、id(#)、派生、属性4、常用的属性:背景、字体、文字、盒子(边框、外边距、内边距)、列表、浮动、定位JS:浏览器脚本语言动态交互HTML和CSS1、基本语法2、内置对象:Array\String\Math\Date\RegExp3、函数:function 函数名称([参数]){ [return 返回值]}4、属性事件:onclick\onchange\onsubmit\onmouseover\onmouseout5、JS之DOM:getElementById/getElementsByName/getElementsByTagName/createElement6、JS之BOM:Window\History\Location

 

》五MySQL

数据存储的方式:1、非持久性存储就是会随着程序的关闭而消失的存储存储在内存中数组和集合2、持久性存储就是存储在硬盘上IO流和数据库

一、数据库:存储数据的仓库好处:1、效率高2、容差率低3、稳定性4、备份和恢复

二、数据库涉及的概念:数据库:DataBase,db文件,存储在磁盘上,按照一定的规则进行数据的处理,可以让用户共享数据管理系统:DataBase Management System,DBMS就是操作数据库的软件

市场主流数据流:SQL Server、Oracle、MySQL、DB2等,移动端数据库:SQLITE

三、数据库的安装与卸载MySQL的安装:按照图解,无脑下一步MYSQL的卸载:1、打开服务,停止mysql的服务2、打开控制面板->程序->mysql卸载3、在C盘和安装盘下,搜索mysql,将搜索到的删除4、打开注册表,搜索mysql,将找到的全部删除

四、打开数据的方式打开:1、开始-所有程序-mysql直接输入密码2、在系统变量path上添加mysql的安装目录(C:\Program Files\MySQL\MySQL Server 5.5\bin)先打开cmd再输入:mysql [-h主机地址] -u 用户名 -p 会提示输入密码:

五、MySQL数据库的组成5.1数据库服务器就是数据库安装所在的机器,可以供别人访问5.2数据库一般来说一个应用程序对应一个数据库切记:进入数据库软件之后,要选择数据库或创建数据库5.3表---对应的是类一个数据库会对应多个表,表是存储数据表的组成:1、表名同一个数据库的表名不能重复2、字段:域、属性、表头、列名规定该列表示的意思同一表中列名不可重复3、数据表中记录的一条条数据

my.ini:MySQL的配置信息六、SQLSQL:Structure Query Language:结构化查询语言专门用在操作关系型数据库的语言任何关系型数据库都支持SQL,但是每门数据库都有细微的差别

SQL语句分类:DDL(*)(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等; DML(**)(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);增删改 DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别; DQL(*****)(Data Query Language):数据查询语言,用来查询记录(数据)。查询(select) 注意:SQL语句必须以;结尾

七、SQL语句sql语句不区分大小写 7.1DDL数据定义语句包含的关键字:7.1 CREATE:新建可以新建数据库、表7.1.1创建数据库格式: CREATE database [ if NOT EXISTS] 名称 [CHARACTER SET 编码格式] [COLLATE 比较方式];

创建一个编码格式为utf8的数据库create database db_study01 ;//默认编码格式create database db_study02 character set utf8 collate utf8_general_ci;//创建数据库编码格式utf8比较方式对应的

7.1.2创建表的格式:CREATE table [ if NOT EXISTS] 名称 (字段名称 数据类型,……) [CHARACTER SET 编码格式] [COLLATE 比较方式];

创建一张user表create table user (id int,name varchar(20),age int);

7.2ALTER:修改可以修改数据库的编码和表的字段7.2.1修改数据库格式:ALTER database 名称 [character set 编码][cllate 比较格式];

修改数据库mydb2的编码格式为gbkalter database mydb2 character set gbk; 7.2.2修改数据库表的格式:ALTER table 名称 [ADD|CHANGE|DROP|MODIFY] 字段名称 [新名称] [数据类型]

为user表新增一个字段password 字符串32alter table user add password varchar(32);alter table user add test varchar(32);为user表中的name字段重命名为usernamealter table user change name username varchar(20);删除user表中的test字段alter table user drop test;修改user表中username字段的长度为30alter table user modify username varchar(30);

修改user的表名为user1rename table user to user1;

7.3DROP删除可以删除数据库或表7.3.1删除数据库格式: DROP database [ if EXISTS] 名称;7.3.2删除数据表格式: DROP table 名称;

删除数据库mydb4drop database if exists mydb4;删除test3表drop table if exists test3;

DML语句:主要是对表中的数据进行新增、修改、删除操作7.4INSERT新增语句格式:INSERT INTO 表名[(字段名称)] values(值1,值2);

为user表新增数据insert into user (id,username,password) values(2,'贾金山','8888');insert into user (id,username,password,flag) values(5,'战旗','838',1);insert into user (id,username,password,flag) values(6,'战旗','838',1);insert into user (id,username,password,flag) values(7,'战旗','838',1);insert into user (id,username,password,flag) values(8,'战旗','838',1);//简写形式insert into user values(4,'曹怡',"123456");insert into user(username,id,password) values('王星',5,"123");7.5UPDATE修改语句格式:UPDATE 表名 SET 字段名称=值[多个字段] [where 条件]

修改id为2的用户名字为金星update user set username='金星' where id=2;修改id为3的用户的名字和密码update user set username='网警',password="654321" where id=3;修改user中所有的密码为123456update user set password='123456';

 

7.6DELETE删除语句删除表中的数据格式:DELETE FROM 表名 [where 条件];

删除user中名称为王星的人delete from user where username='王星';

开发中的删除:1、真删除直接使用delete语句删除指定的数据2、假删除使用update 修该指定字段

为user表新增一字段,flag标记是否有效,0有效1删除alter table user add flag int;update user set flag=0;select * from user where flag=0;update user set flag=1 where id=4;

DQL语句:数据查询语句,关键字:select7.7SELECT查询语句主要用来查询数据格式:SELECT *|字段名称|函数 from 表名 [where 条件] [order by 字段名称] [group by 字段名称][having 条件][limit 限制]

7.7.1**在查询语句中表示当前表的所有字段(顺序为建表时字段顺序)7.7.2where条件:常用的条件符合: 1、=、、!=、、= 2、and:并且,同时满足 3、or:或者,满足其一 4、in (值,……):对应的字段的值再()里,一般不连续的多个值 5、between A and B:在A和B之间,[A,B] 6、IS NULL:为空 7、NOT:不 8、子查询

查询user表中所有信息select * from user;等价于select id,username,password,flag from user;查询有效的名字select username from user where flag=0;查询id大于1小于6的人select * from user where id1;等价select * from user where id between 2 and 5;查询id为4或者id为8select * from user where id=4 or id=8;查询id不为6的人select * from user where id!=6;等价select * from user where id6;查询id为2或5或6的人select * from user where id=2 or id=5 or id=6;等价select * from user where id in (2,5,6);

八、数据库的备份和恢复8.1数据的备份在cmd中,输入:mysqldump -u 用户名 -p 要备份的数据库 >路径/文件名称.sql8.2数据的恢复需要进入到Mysql创建数据库并使用数据库source 要恢复的sql文件的路径;

 

 

查看当前的所有数据库:show databases;查看指定数据库的创建语句show create database 数据库名称;查看数据库的编码格式show variables like 'character%';查看mySQL的支持的编码 show character set;查看对应编码的比较集 show collation;查看数据库的所有表名show tables;查看数据库中建表语句show create table 表名;

MySQL数据类型:INT 数字类型(4个字节)SMALLINT 数字(2个字节)BIGINT 数字(4个字节)DATE 日期TIME 时间DATETIME 日期时间VARCHAR(长度) 字符串TEXT 文本BLOB 二进制FLOAT 浮点型DOUBLE 双精度

 

数据库基本操作:1、创建数据库(create)2、选择数据(use)3、创建表(create)4、操作表数据(insert\delete\update\select)

 

》六

 

where 条件:=\\\!=\>=or:或者and:并且between A and B:在A和B之间in (值):在……内部is null:为nullnot:不select的标准格式:select *|字段列表|聚合函数 from 表名 [where 条件] [group by 字段] [having 字段][order by 字段 ASC|DESC][limit 起始索引,数量]]

一、模糊查询like:模糊查询的关键字_:1个字符%:任意个字符

1.1以XX开头格式:select *|字段 from 表名 where 字段 like 'XX%';

查询商品表中名字以华为开头的select * from goods where name like '华为%';查询商品表中名字以华为开头的且后面就一个字符的商品select * from goods where name like '华为_' ;

1.2以XX结尾格式:select *|字段 from 表名 where 字段 like '%XX';

查询商品表中价格以9结尾的select * from goods where price like '%9';查询商品表中价格为三位数且以9结尾select * from goods where price like '__9';等价于select * from goods where price like '%9' and price >99 and price order by --->limit

七、数据完整性约束条件:主键、唯一约束、自增、不为null、默认值、外键等

7.1主键:唯一标记,不可为null,不能重复任何表必须有主键

添加主键的方式: 1、create table (字段 primary key) 2、create table (字段,primary key(字段名称,字段名称)) 3、alter table 表名 add primary key(字段名称);

//delete from student where no =(select no from student limit 5,1);

delete from student where no=17000506;//添加主键为noalter table student add primary key(no);

create table grade(id int,name varchar(20),primary key(id));

7.2unique:唯一约束 ,不能重复,可以为null(多个)create table test1(id int unique );

7.3auto_increment:自动增长,每次递增1,一般主键使用create table test2(id int primary key auto_increment,msg varchar(20) unique);

7.4not null:不为null

create table test3(id int not null);

7.5default:默认值create table test4(id int primary key auto_increment,psw varchar(6) not null default '123456');insert into test4(psw) values(default);insert into test4(psw) values(null);

7.6FOREIGN KEY :外键外键:一个表中的某个字段的值必须为另张表中的主键的值,这时我们可以使用外键约束作用:当新增数据时,如果当前的外键的值在另张表的主键的值不存在,就报错CONSTRAINT 外键名称(外键表中的名称) foreign key(当前表中的外键) references 另张表名称(主键名称)外键的添加方式: 1、create table 表名(字段,外键,CONSTRAINT 外键名称(外键表中的名称) foreign key(当前表中的外键) references 另张表名称(主键名称)); 2、ALTER TABLE 表名ADD CONSTRAINT 外键名称FOREIGN KEY(当前表中的外键) REFERENCES 另张表名称(主键名称));

create table student (sid int primary key auto_increment,name varchar(20),fk_cid int,CONSTRAINT fk_student_cid foreign key(fk_cid) references class (cid));insert into student(name,fk_cid) values('小贾',1);

八、多表关系:8.1一对一 2表数据一一对应8.2一对多 2表数据,存在一对多8.3多对多 2表数据,存在多对多的关系

九、三大范式阐述如何创建表并定义之间联系9.1第一大范式:确定列的原子性就是每列的内容各不相同,要划分为最小单元9.2第二大范式确保有主键主要用于区分每条数据,并定位9.3第三大范式表与表之间通过主键关联主键唯一

功能单一原则:表描述的或存储的数据单一关联通过主键

十、多表查询主要用来查询多张表1、合并结果集UNION :合并2个查询的结果,要求2个查询的列的个数和列的数据类型必须相同,会消除重复的数据UNION ALL:合并2个查询的结果,要求2个查询的列的个数和列的数据类型必须相同,不会消除重复的数据

2、内部连接查询inner join on:内部连接格式:select * from 表1 inner join 表2 on 表1字段=表2字段查询2个表的数据,内部连接的形式select * from mytest1 inner join mytest2 on mytest1.id=mytest2.id2;

3、外部连接查询左外联:left outer join on格式:select * from 表1 left join 表2 on 表1字段=表2字段左联就是表1为主表,表一数据都有,表2有就显示,没有就是显示为null右外联:right outer join on格式:select * from 表1 left join 表2 on 表1字段=表2字段右联就是表2为主表,表二数据都有,表1有就显示,没有就显示为null

左联查询2表select * from mytest1 t1 left join mytest2 t2 on t1.id=t2.id2;右联查询2表select * from mytest1 t1 right join mytest2 t2 on t1.id=t2.id2;等价于select * from mytest2 t2 left join mytest1 t1 on t1.id=t2.id2;

4、连接查询查询2个表中所有数据的组合结果select * from mytest1,mytest2;产生的结果集:笛卡尔积结果的数量:表1的数量*表2的数量

十一、内置函数abs:取绝对值bin:十进制转换二进制ceiling:向上取整floor:向下取整rand:随机数:0.0-1.0(不包含)now:现在日期+时间current_date:现在的日期current_time:现在时间instr(字符串,要查找的内容):查询对应的索引ucase:转换为大写lcase:转换为小写replace(字符串,原来的值,新的值):替换substring(字符串,开始索引,长度):截取

十二、杂谈1、索引:提高查询的效率通过索引快速进行查询,速度会提高2、视图:为比较复杂的结果集创建一个虚拟的表格式:create view 名称 as select * from 表名;3、触发器:一张表操作时,会对另外的表页进行操作格式:delimiter $修改当前的结束符为$(默认的结束;)create trigger 触发器名称 before|after insert|delete|update on 表名主 for each row begin要执行的sql语句例如:insert into 表名被(字段名称) values(new.表名主字段);end $

有2张表,user和mylog现在要求:新增用户时,默认会记录一条日志

delimiter $create trigger t_test after insert on user for each rowbegininsert into myLog(msg,time) values(new.name,current_date());end $

4、快速备份新表create table 新表名称 select * from 旧表

其他数据库:select * into 新表名 from 旧表;但是MySQL不支持

 

MySQL:数据库重点内容:一、七大SQL语句1、CREATE2、ALTER3、DROP4、INSERT5、UPDATE6、DELETE7、SELECTwhere\group by \having\order by \limit二、约束条件主键、唯一、非null、default、自增、外键三、多表查询:内联、外联、合并四、聚合函数AVG\MAX\MIN\SUM\COUNT

根据个人情况进行记忆:1、内置函数now\rand\floor\substring\ifnull2、索引索引提高操作数据库的效率3、触发器为某张表加自动操作

 

》七

 

一、JDBC:Java Data Base Connectivity java语言操作数据库的API是由类和接口组成的,然后交给数据库厂商来实现的,所以想操作数据库,需要下载对应数据库的驱动jar

JDBC涉及的类和接口:1、DriverManager:驱动管理器2、Connection:连接接口3、Statement:操作SQL接口4、ResultSet:结果集5、PreparedStatement:操作SQL类,防止SQL注入,推荐使用

二、使用JDBC的步骤:1、导入jar2、动态加载驱动(注册驱动)Class.forName("com.maysql.jdbc");3、获取连接对象Connection conn=DriverManager.getConnection("JDBC:mysql://主机IP:3306/数据库名称",用户名,密码);4、获取操作SQL对象Statement stmt=conn.createStatement();5、执行SQLstmt.execute(SQL);//执行任何SQL语句。返回boolean类型,是否为select语句stmt.executeUpdate(SQL);//执行非select语句,返回受影响的行数stmt.executeQuery(SQL);//执行select语句,返回查询的结果集ResultSet6、获取结果集ResultSet rs=stmt.executeQuery(sql);7、关闭rs.close();stmt.close();conn.close();

三、JDBC类或接口的说明:3.1DriverManager:驱动管理类 管理数据库驱动 常用方法: static Connection getConnection(String url) 建立到给定数据库 URL 的连接。 static Connection getConnection(String url, Properties info) 建立到给定数据库 URL 的连接。 static Connection getConnection(String url, String user, String password) 建立到给定数据库 URL 的连接。

3.2Connection:数据库连接接口 附加连接到指定的数据库 常用方法: createStatement:获取Statement对象

3.3Satement:操作SQL接口 将指定的sql语句发送到数据库,并获取结果 常用方法: 1、boolean execute(sql) 执行任何SQL语句,返回值true:select语句,这时可以通过getResultSet(),false:非select语句 2、int executeUpdate(sql) 执行非select语句,返回操作的行数,如果为DDL语句返回0 3、ResultSet executeQuery(sql) 执行select语句,返回结果集 4、ResultSet getResultSet() 获取查询的结果,配合execute使用

3.4ResultSet:结果集 记录查询的结果数据 常用方法: 1、boolean next:获取下一行数据 ,返回值:true:下一行有数据,false:没数据 2、first:返回到第一行 3、last:返回最后一行 4、getInt:获取整型 5、getLong:获取长整型 6、getFloat:获取浮点型 7、getDouble:获取双精度浮点型 8、getString:获取字符串 9、getBytes:获取二进制 10、getDate:获取日期 11、getTime:获取时间

注意:getXXX方法为获取指定列索引或列名称的值切记列索引从1开始3.5PreparedStatement:防止SQL注入的操作SQL对象 防止SQL注入,效率高 常用方法: setXXX(index,value):设置对应sql语句的第index个参数对应的值为value executeQuery:执行select语句 接收的SQL语句: sql语句 where 字段=?

四、封装数据库操作1、在src下创建xxx.properties 将需要用到的变量存储 键值对形式2、创建工具类 实现对数据库的操作:增删改查3、使用

五、SQL注入就是sql语句根据输入进来的数据进行拼接,通过sql关键字造成不正确的结果例如:' or 1=1 or '如何防止这种行为出现呢,就是使用PreparedStatement代替StatementPreparedStatement的好处:1、防止SQL注入2、优化查询3、减少查询次数,Statement会频繁的查询数据库,可能会造成缓冲区的溢出

额外:1、JAVASE加载第三方jar: 1、创建文件夹lib 2、拷贝jar到lib文件夹 3、build path将对应的jar加载到应用程序2、HashTable和HashMap的区别? 1、父类不一样 HashMap基于Map HashTable基于陈旧的Dictionary 2、contains方法不一样 HashMap:containsKey,containsValue HashTable:contains---等价于containsValue 3、线程安全 HashMap:不安全,不能用在多线程并发中,效率高 HashTable:安全,效率低

3、Properties:持久性属性集类 主要用来存储和读取配置文件,以.properties结尾

自学Properties类的使用

4、单元测试@Test:标记这是一个测试方法测试方法要求: 1、public修饰 2、无返回值 3、无参数

5、工具类设计原则方便别人,麻烦自己内部方法一般都是静态方法考虑尽量全面

6、可变参数格式:数据类型... 参数名称、参数可以有0个或多个出现在方法的声明中,只能在参数末尾在方法内部,当作数组使用

 

@Override:标记这个方法为重写

 

》八

 

温故: Web项目使用JDBC Web项目导入jar包的方式:直接将jar复制到WebContent\WEB-INF\lib

通过jdbc创建以下表: b_account:账户表 id 账号 16位,字符串 name 姓名 50位 money 余额 createtime 开户时间 updatetime 最后一次更新时间

b_log:流水日志表 id 序号 a_id 账号 money 钱 存钱,取钱- msg 备注信息 time 交易时间 type 类型 1:开户 2:存钱 3:取钱 4:测试 注意:数据库设计的时候,最好写出一份设计文档,标记表的意义

一、Transaction:事务1.1事务是什么?事务就是保证多条数据操作要么都成功,要么都失败,确保数据的完整性其实就是将一组相同逻辑的操作放在一起进行操作,全部都成功或都失败主要用在:多条数据的操作的一致性

1.2事务如何使用?(***重要,记住)数据库指令: 1、start transaction:开启事务 2、rollback:回滚,取消本次操作 3、commit:提交,确定本次操作JAVA代码中使用:JDBC 1、通过connection.setAutoCommit(false)设置开启事务,true不开启,false开启事务 2、在try语句块的结尾:connection.commit:提交 3、在catch中connection.rollback:回滚事务练习:1、请自己创建任意表,通过JDBC实现事务的操作

 

1.3事务的特性(ACID) 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。(例:全部发生或全部不发生)  一致性(Consistency)事务必须使数据库从一个一致性状态变换到另外一个一致性状态。(例:从一起生到一起死) 隔离性(Isolation) 事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务, 不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。(例:犯错误被关进不同的小黑屋) 持久性(Durability) 持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的, 接下来即使数据库发生故障也不应该对其有任何影响。(例:淘宝买东西确认付款,一旦确认付款就无法退钱) (助记: 一位科学家偷了国家的“原子弹”(例:全部发生或全部不发生),领导开会“一致”(例:从一起生到一起死)同意将他逮捕,警察抓到他把他进行“隔离”(例:犯错误被关进不同的小黑屋),法院判处他“持久性”(例:淘宝买东西确认付款,一旦确认付款就无法退钱)蹲监)

1.4事务的隔离性隔离性就是设置多个线程并发访问数据时的一种权限如果没有隔离性:可能会引起:脏读、不可重复读、虚读

SQL事务的隔离级别: 1、Serializable:可避免脏读、不可重复读、虚读情况的发生。(串行化) 2、Repeatable read:可避免脏读、不可重复读情况的发生。MySQL默认 3、Read committed:可避免脏读情况发生。SQL Server |Oracle 4、Read uncommitted:最低级别,以上情况均无法保证。(读未提交) 设置事务的隔离性: set transaction isolation level 设置事务隔离级别 查询当前数据库的事务的隔离性: select @@tx_isolation 查询当前事务隔离级别

串行化:按照一个个的事务的先后顺序执行

 

类和对象类方法和实例方法全局变量和局部变量

变量的生命周期1、类变量--静态属性:类第一次加载就声明,类销毁的时候跟着销毁2、成员变量--实例属性:对象创建的时候,对象被销毁的时候3、局部变量--定义在代码块内部的就是局部变量,作用域:当前代码块java中括号:{}:代码块,类的内容、方法、静态代码块、构造等[]:数组():方法:泛型

方法的定义和调用接口和类的区别

 

》九

 

一、连接池1.1连接池是什么?连接池就是管理数据库连接对象保证连接对象的数量,进而提升操作数据库的效率

主要是并发访问时,会产生n个连接对象,这些都会对数据库服务器产生很大的压力,所以需要合理的使用数据库连接池,以减轻这种压力

1.2连接池的工作原理集合存储连接对象,根据需要进行连接对象的创建、获取、销毁

1.3DBCP连接池 常用类: BasicDataSourceFactory.createDataSource(Properties):通过配置文件获取连接池对象使用时,需要导入jar和对应的配置文件

1.4C3P0连接池 常用类: ComboPooledDataSource:这是DataSource的子类,直接创建该类对象获取数据库连接池,加载默认配置文件

使用时,需要导入jar和对应的配置文件

二、JDBC工具类Dbutils2.1QueryRunner:执行数据库的增删改查 常用方法: 1、update:执行非select语句 2、batch:批处理,同时处理多条相同的语句 3、query:执行SELECT语句

query方法都需要ResultSetHandler接口对象 该接口就一个方法: handle:转换,参数:查询结果集,返回值类型:泛型

一般常用默认的实现类: 1、ArrayHandler:将查询结果的第一行数据,的每个字段存储到数组中并返回 2、ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。 3、BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中 4、BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里 5、ColumnListHandler:将结果集中某一列的数据存放到List中。 6、KeyedHandler(name):将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的key

三、特殊的数据类型的对应: PreparedStatement ps; 1.DATA,TIME,TIMESTAMP date,time,datetime 存:ps.setDate(i,d); ps.setTime(i,t); ps.setTimestamp(i, ts); 取:rs.getDate(i); rs.getTime(i); rs.getTimestamp(i); 2.CLOB  text 存:ps.setCharacterStream(index, reader, length); ps.setString(i, s); 取:reader = rs. getCharacterStream(i); reader = rs.getClob(i).getCharacterStream(); string = rs.getString(i); 3.BLOB  blob 存:ps.setBinaryStream(i, inputStream, length); 取:rs.getBinaryStream(i); rs.getBlob(i).getBinaryStream(); Project项目,一般都会框架三层架构:1、显示层---H5或JSP2、业务逻辑层---Servlet3、数据层----实体类和数据库

外到内:1、显示层:前端、Swing、main2、逻辑层:service:处理业务逻辑3、数据层: 1、entity/model:实体映射类 2、dao:操作数据库

Bean类:1、私有属性2、公有get和set方法3、无参构造函数

三、JDBC&数据库

获取刚刚自增的id值:select last_insert_id()

四、Properties:持久性属性集类主要用来存储或加载配置信息

常用方法: 1、load:加载指定的配置文件 2、store:存储配置信息 3、setProperties:设置要存储的属性 4、getProperties:获取配置的属性的值

1、前端2、MySQL3、Servlet4、Ajax+JQuery

 

》十

 

一、Web程序的分类:1、C/S:Client/Server:客户端服务器请求流程:客户端程序--->服务器--->数据库服务器2、B/S:Browser/Server:浏览器服务器请求流程:浏览器---服务器----数据库服务器

常用服务器:1、Tomcat:免费,开源APACHE公司2、WebLogic:BEA公司支持JAVAEE标准规范3、WebSphere:IBM公司支持JAVAEE标准规范

 

二、Tomcat目录:都是英文目录1.1TomCat:服务器APACHE:一家强大公司基本上提供了web开发的一整套工具TomCat服务器就是Apache下的一个服务器 特点: 1、开源 2、免费 3、兼容性

1.2TomCat目录: bin:可执行 webApps:发布项目 work:运行的工作目录 docs:文档

1.3运行TomCat: 1、在bin目录下找到startup.bat启动服务器 2、在浏览器输入:localhost:8080,能打开就是启动成功

1.4在Eclipse中配置Tomcat window-->preferences-->server-->runtime Environments->add->选择TomCat安装目录->完成

1.5发布项目到TomCat中 1、选择项目,右键export 2、选择war,选择导出的路径和名称 3、将war文件放到TomCat的WebApps下 4、启动Tomcat 5、访问:localhost:8080/war文件名/

二、Servlet2.1Servlet是什么?Servlet就是sun提供的运行在服务器上的API每一个Servlet都是独立的应用可以实现:获取Web浏览器或客户端发送来的信息并且响应信息

2.2Servlet的使用创建方式: 1、实现Servlet接口 需要实现方法: 1、init:初始化 2、service:服务 3、destroy:销毁 4、servletConfig:获取默认配置 5、servletInfo:获取Servlet信息

2、继承GenericServlet类 需要实现的方法: 1、service:服务 3、继承HttpServlet类---直接new Servlet 需要实现的方法: 1、doGet:处理get请求 2、doPost:处理post请求

Servlet如果想让外界使用,必须注册(配置注册还是注解注册)

2.3Servlet生命周期生命周期: 1、init:初始化 初始化一些默认信息 2、service:服务 获取请求和响应 3、destroy:销毁 销毁一些信息Servlet的生命主要是为了服务器优化

Thread生命周期: 1、新建 2、就绪 3、运行 4、阻塞 5、死亡

 

2.3Servlet的注册:Servlet可以设置外界访问的名称 1、xml中注册(Servlet3.0之前) 在项目的web.xml中使用固定标签: //标记这是一个Servlet 外界访问的名字 Servlet实现类名称 外界访问的名字 /匹配 2、注解进行注册(Servlet3.0(包含)之后) @WebServlet("/外界访问名字")

配置外界访问的名称 MyS2 配置Servlet的类名 MyServlet 配置外界访问的名称 MyS2 /*.do

 

2.4Servlet的线程安全Servlet引擎采用多线程进行对用户的处理并发时,存在线程安全。尽量使用局部变量,非得是全局时,注意加锁

SingleThreadModel:单线程模型对于Servlet采用单线程进行。但是会产生多个Servlet对象在Servlet2.4之后都已经过时

2.5ServletConfig配置信息获取Servlet的配置信息 常用方法: 1、getInitParameter:获取配置信息 2、getServletContext:获取Web全局对象

ServletContext:Web应用对象可以设置过滤器、事件、Servlet、路径等 getRealPath:获取真实路径,发布路径

 

Eclipse和MyEclipse

 

》十一

 

一、Request:请求获取客户端或浏览器的请求内容1.1HttpServletRequestHttp协议的请求对象服务器会为每一次的请求创建对应的request和response对象请求对象包含的信息: 1、请求行 2、请求头 3、消息正文想要获取客户端信息,那么就使用request

1.2请求行可以获取请求的方法、查询的内容、协议、资源等常用方法: getMethod方法返回HTTP请求消息中的请求方式。 getRequestURI方法返回请求行中的资源名部分。 getQueryString 方法返回请求行中的参数部分。 getServletPath方法返回Servlet的名称或Servlet所映射的路径。

1.3请求的网络信息可以获取远程或服务器或本机的网络信息 常用方法: getRemoteAddr方法返回发出请求的客户机的IP地址 getRequestURL方法返回客户端发出请求时的完整URL

1.4请求头信息获取header数据 常用方法: getHeader:获取指定key的值 getHeaderNames:获取header的所有的键名称 getContentType:获取内容的类型MIME类型 getContentLength:获取内容的长度 getCharacterEncoding:获取编码格式

referer:请求头属性记录上一次的网址

1.5请求方法:1、get:请求,获取特点: 1、效率高 2、大小限制,一般为1kb 3、不安全,参数信息随着url进行传输 4、中文乱码,参数随着url传输而url编码格式为ISO8859-1(不支持中文)

get乱码产生原因:首先输入的内容会按html页面的编码格式进行在进行传输的时候url传输,而url编码格式iso8859-1所以内容由页面的编码格式转换为iso8859-1get乱码的解决:在doGet方法中首先将内容按照iso8859-1转换为字节数组然后再通过HTML页面的编码格式将字节数组转换为字符串String msg=request.getParameter("name");if(msg!=null){ msg=new String(msg.getBytes("ISO8859-1"),"UTF-8");}

对安全性要求不高就推荐使用Get如果对安全性要求较高,推荐使用post

2、post:请求,发送一般是传递数据到服务器特点: 1、效率低 2、大小无限制 3、安全性相对较高,参数以流的形式 4、中文乱码好解决

默认请求为get请求

1.6获取表单内容表单的内容想提交到服务器,需要为标签设置name属性,其中name的值就是键\\等都是可以提交的

隐藏域:用户看不见,但是可以提交数据图片:可以提交点击的坐标,而且还能默认提交下拉框也是可以传递

表单提交时,防止用户操作太快,一般会进行提交校验,只让提交一次

1.7获取参数信息获取表单请求的参数信息常用方法: 1、getParameter:获取指定key的值 2、getParameterValues:获取指定key的多个值(多选) 3、getParameterNames:获取所有的参数名称 4、getParameterMap:获取所有的参数值

RandomAccessFile:随机读取文件类唯一一个具有读取和写入的类

 

 

二、Response:响应对客户端或浏览器进行数据的响应

2.1响应状态码就是服务响应的状态码2开头:成功 200全部成功,206部分成功3开头:重定向 需要请求另外的网址4开头:错误,客户端或浏览器错误5开头:错误,服务端错误

2.2设置消息头设置响应的消息头常用方法: 1、setHander:设置消息头 2、addHander:添加消息头 3、setContentType:设置正文类型 4、setCharacterEncoding:设置响应的编码格式

2.3响应内容向客户端或浏览器回复信息常用方法: 1、getWriter:打印输出字符流 print或println 2、getOutputStream:输出字节流,非文本内容

2.4跳转 常用跳转分为2种: 1、重定向 客户端跳转 response.sendRedirect("跳转的网址"); 特点: 1、可以跳转到任何一个网页 2、地址栏改变 3、不可携带request和response 4、客户端进行2次请求

2、转发 服务端跳转 request.getRequestDispatcher("当前Web的网页").forward(request, response); request.getRequestDispatcher("当前Web的网页").include(request, response);

特点: 1、只能跳转到当前项目的网页 2、地址栏不变 3、可以携带request和response 4、客户端请求1次 forward&include的区别? forward:可以对Response进行修改状态码和消息头 include:不可以

 

》十二

 

数据交互格式:1、HTML2、JSON3、XML都是跨平台、跨网络、跨编程语言

一、XML1.1Extensible Markup Language:可扩展的标记语言是一种通用型数据交互的格式

与HTML的区别?HTML:不同点:1、固定标签2、语法不严谨:可以有结束,也可以没有3、不区分大小写

相同点:4、属性的值必须使用双引号5、标签可以嵌套XML:不同点:1、自定义标签2、语法严谨:标签有开始就必须有结束3、区分大小写

相同点:4、属性的值必须双引号5、标签可以嵌套

1.2XML语法

XML具有严谨的语法语法规则:1、自定义标签2、区分大小写3、标签有开始必须有结束4、只有一个根节点5、标签可以嵌套6、标签命名,以字母、数字、下划线组成,以字母开头7、属性的值必须使用双引号

1.3XML组成xml由2部分组成 1、前导区 固定格式: 描述此文档为xml文档,标记版本号,编码格式 2、数据区 只能以根标签和结尾 根标签:唯一 1.4XML解析目前常用解析:1、dom:标准,java支持2、sax:java支持3、dom4j:民间方式,第三方jar4、pull:谷歌5、xpath:对xml元素进行查询

1.4.1DOM解析XMLjava支持,将整个文档读取完只会再开始解析解析步骤:1、创建解析工厂2、创建解析器3、设置解析文档并获取文档对象4、获取根节点5、依次获取子节点并遍历

xml中的节点和元素Node:xml中的任何内容主要包括:标签(文档标签、元素标签)、文本内容Element:元素继承的Node就是可以拥有子标签和属性、值的节点

元素就是对象节点就是属性

 

 

1.4.2SAX解析实时解析,边读取边解析使用步骤:1、创建DeafultHander的子类:定义解析模板2、创建解析工厂3、创建解析器4、设置解析文档并开始解析5、获取解析结果

创建自定义的DeafultHander需要注意的方法:1、startDocument:开始文档,无参2、endDocument:结束文档,无参3、startElement:开始标签参数说明: 1、命名空间 2、本地名称 3、标签名称 4、属性集4、endElement:结束标签参数说明: 1、命名空间 2、本地名称 3、标签名称5、character:文本内容参数说明: 1、字符数组 2、起始索引 3、长度1.3Dom for JavaDom4J:解析xml的方式使用步骤: 1、创建解析器 SAXReader reader=new SAXReader(); 2、设置解析文件并获取文档对象 Document document=reader.read("students.xml"); 3、获取根元素 Element root=document.getRootElement(); 4、依次获取所有的子元素 elements 5、获取元素的属性或内容 element.attributeValue("属性名称"):获取属性的内容 element.getStringValue():获取元素的内容 6、获取结果 Entity List1.4XPATH主要用来进行查询xml文档的节点信息也可以用来解析

二、JSON2.1JSON目前互联网使用最为广泛的一种数据交互的格式跨平台、跨网络、跨编程语言

json语法符合:{}:对象[]:数组:连接属性名称和值的""属性名称或字符串类型的值,多个属性或元素JSON就是由上述的语法符合组成的字符串JSON可以用来描述数组或对象

{"no":1,"name":"张三"}{"stu":{"no":1,"name":"张三"}}[{"no":1,"name":"张三"}][1,2,3]{"list":[{"no":1,"name":"张三"},{"no":1,"name":"张三"}]}

2.2解析方式1、JSON官方JSONArray:解析数组 []常用方法: length:元素个数 getXXX(index):获取指定索引的元素对象

JSONObject:解析对象 {}常用方法: keys:获取所有的属性名称 getXXX:获取指定属性名称的值 optXXX:获取指定属性名的值 putXXX:添加指定的属性遇到{用JSONObject,遇到[用JSONArray

2、Gson谷歌要求JSON字符串的数据关系必须为类的映射其实就是一个{}就是一个类Gson:类formJson:解析对应的json字符串解析对象:fromjson(json,类.class)解析数组:fromjson(json,new TypeToken)(){}.getType())

3、FASTJSON快速解析要求类与json字符串相匹配JSON:工具类静态方法:1、parserObject(json,类.class):解析对象2、parserArray(json,类.class):解析数组

注意:Gson、fastjson都是对类的要求:字符串中有几个{}就有几个类,({}中有几个属性类就几个属性)

 

XML会解析JSON会解析

 

》十三

 

流按照功能划分:1、节点流:直接操作数据的流文件流、内存流2、过滤流:操作流的流

一、导入文件内容到数据库1、通过流获取要导入的内容2、获取数据,并按照格式进行切割3、添加到数据库

create table citycode(id int primary key auto_increment,code int unique,name varchar(20),s_name varchar(20),f_name varchar(20),time datetime);

 

二、JSP2.1JSP:Java Server Pages就是一个页面:可以写HTML标签还可以java代码

简化的Servlet弥补Servlet的不足

JSP最终就会转换为ServletJSP页面中写的HTML标签或JSP语法最终都是在对应的饿service方法通过输出流写出

JSP语法::定义方法、创建全局变量等,这里面的代码最终在jsp对应的类中,方法外部起作用:调用内置对象,java语句等代码,这里的代码最终在jsp对应的类的service方法中:显示对应变量的值

2.2JSP的组成: 1、JSP模板元素:就是jsp页面的HTML 2、JSP表达式:主要就是在界面显示数据,切记不可有; 格式: 3、JSP脚本片段:只能出现java代码,严格准守java语法规则,可以调用内置对象、输出内容、创建局部变量等 格式: 4、JSP声明:声明全局变量或方法,这里的代码块会出现在service方法的外部,类的内部 格式: 5、JSP注释:JSP的注释并不就会输出到页面 格式:

 

三指

九对四域2.3三大指令指令:告诉JSP引擎页面的信息格式:2.3.1page告诉JSP引擎当前页面的信息格式:常用属性:language:语言import:导包contentType:正文类型,MIME类型和编码格式session:会话 值为boolean类型,true:有,false:没有errorPage:错误页 值:为错误页面的urlisErrorPage:是否需要异常对象2.3.2include加载其他html\文件、jsp等格式:这种加载称为静态加载

2.3.4taglib引用标签库,常常结合着JSTL使用格式:作用:在JSP页面中导入JSTL标签库。替换jsp中的java代码片段。

2.4九大隐式对象九大隐式对象就是根据配置会默认创建的对象以下为常用内置对象: 2.4.1request:请求对象---HttpServletRequest 2.4.2response:响应对象--HttpServletResponse 2.4.3session:会话---HttpSession 2.4.4out:输出字符流对象---PrintWriter 2.4.5pagecontext:页面域对象---PageContext 2.4.6page:this---当前jsp产生的Servlet对象 2.4.7application:全局域对象---ServletContext 2.4.8execption:异常----Throwable 2.4.9config:配置----ServletConfig

2.5域域就是根据作用域不同而划分的对象,可以携带属性数据常用的域: 1、application:全局,整个Web应用,建议少用 存储的生命周期最为悠久,只有网站停止运行才销毁 2、session:会话,每一个用户的访问都是一个会话 使用最为广泛,一般用来做,存储登陆信息、购物车 3、pagecontext:页面对象,整个页面有效,用的不多 4、request:每次请求 主要记录请求的信息,使用最为广泛一般使用域setAttribute(key,value):设置属性,对应的key存在就修改,不存在就是添加 value:可以是自定义类对象getAttribute(key):获取指定key的值

 

》十四

 

一、JSP元素也称为JSP动作格式:常用: 1、include 作用:动态包含其他页面,可以传递参数 格式:

动态包含和静态包含的区别? 动态包含:jsp元素 1、格式: 2、加载时机,运行到此处的时候加载,每个jsp都会产生java文件 3、传递参数 静态包含:jsp指令 1、格式: 2、刚开始就加载,只会产生当前的java文件,其他是将最后的静态页面加载到当前页面 3、不传递参数

注意:如果一个jsp页面被加载到其他页面使用,建议直接写标签或jsp语法

2、forward 作用:实现页面的跳转,其实就是请求转发 格式: 可以携带参数 注意:部分情况该标签双标签,必须有参数,单标签不需要 3、param 作用:在使用include或forward时传递出参数 格式:

 

二、ELEL:Expression Language:EL表达式,简化JSP表达式格式:${域中的属性名称|param.参数名称|cookie.名称}显示结果开发常用EL做以下事情:1、获取请求参数的值:${param.参数名称}2、获取域中属性的内容:${XXXScope.属性名称}3、获取Cookie中的内容:${cookie.名称}

${dog.name}${dog["name"]}

三、JSTLJSTL:Java Server Pages Standard Tag Library:JSP标准标签库在Eclipse中需要导入jar包myEclipse不需要

使用步骤:1、导入jar包2、在JSP文档使用3、在文档中使用JSTL标签直接

常用标签:

四、Cookie会话状态,存储HTTP请求或响应过程的信息将信息保存在客户端的磁盘

获取Cookie:request.getCookies新增Cookie:response.addCookie

五、Session

 

六、回顾Servlet:java运行在服务器的api主要功能:获取浏览器或客户端的请求,回应数据

Servlet的创建方式: 1、HttpServlet 2、GeneralServlet 3、ServletServlet的生命周期: 1、init:初始化 2、service:服务 3、destroy:销毁Servlet的注册方式: 1、使用注解@WebServlet 2、使用xml配置Servlet使用步骤:1、创建Servlet类2、重写对应的方法doGet、doPost、service3、注册 注解的形式4、运行在服务器5、访问

HttpServletRequest:请求

HTTP协议的消息组成:1、请求行:获取方式、协议类型、路径等2、请求头:获取正文类型、编码格式、刷新等3、请求内容:参数或属性

请求属性:可以存储各种数据类型getAttribute:获取指定key的属性值setAttribute:设置属性removeAttribute:移除属性

请求参数:只能存储字符串getParameter:获取指定参数的值getParameterValues:获取指定参数的所有值。checkbox

跳转:常用的跳转方式:1、客户端跳转:重定向response.sednRect("页面路径")不可传递request2、服务端跳转:请求转发request.getRequestDispatcher("页面路径").forward(request,response);request.getRequestDispatcher("页面路径").include(request,response);

中文乱码:get如果乱码:iso8859-1---->utf-8

 

HttpServletResponse:响应

回复信息: 1、response.getWriter:字符流 2、response.getOutputStream:字节流

设置消息头: 1、setContentType("text/html;") 2、setContentLength:设置内容的大小设置状态响应码: 1、setStatue()

常用的网络数据交互格式:1、HTML2、XML3、JSON

JSON解析:{}:对象[]:数组

根据对应的json字符串创建类,从里往外创常用解析技术:1、JSON源生JSONObject:getXXX(key)

JSONArray:getXXX(index)length():长度

2、Gsongson.fromJson(json,Class):解析对象gson.fromJson(json,new TypeToken(){}.getType()):解析数组3、FastJsonJSON.parserObject(json,Class)JSON.parserArray(json,Class)

XML:可扩展的标记语言常用解析: 1、DOM 区分:Node和Element 2、SAX 自定义DefaultHandler 3、DOM4J SAXReader 4、XPATH selectNodes/selectSingleNode

 

JSP:Java Server Page就是HTML和Servlet的组合

重点::声明 :操作 :显示

一、JSP语法: 1、:定义属性、方法 2、:操作内置对象 3、:显示数据

二、JSP组成: 1、JSP模板元素:HTML标签 2、JSP代码片段: 3、JSP表达式: 4、JSP声明: 5、JSP注释:三、JSP的指令:就是JSP引擎起作用的时就加载 1、page:页面信息 2、include:加载其他页面 3、taglib:使用JSTL表达式 格式:四、JSP内置对象: 1、request:请求对象 2、response:响应对象 3、session:会话 4、application:全局 5、pageContext:当前页面信息 6、exception:异常 7、out:输出 8、page:当前对应的Servlet对象 9、config:servlet配置信息五、JSP域对象各个对象的作用域不同从大到小:1、application:整个Web应用2、session:会话,一个客户端的3、request:请求4、pageContext:当前页面

六、EL表达式简化的JSP表达式格式:${名称} 作用:1、获取请求参数2、获取域的内容3、获取cookie的内容

七、JSTLJSP标准标签库结合指令

分类:1、核心库2、格式化库3、数据库4、函数库5、XML库

常用:核心库:常用标签::输出:设置:移除:条件:多条件:循环

Web中的状态:1、Cookie:本地状态是将信息存储到本地Cookie ck=new Cookie(key,v);ck.setMaxAge(秒):有效期:0删除ck.setPath("/"):当前Web

response.addCookie()//添加Cookierequest.getCookies:获取Cookie

可以记录用户名或免登陆等2、Session:会话服务器状态是将信息存储到服务器内存JSP:session内置对象Servlet:HttpSession session=request.getSession();session.setAttribute():存储数据session.getAttribute:获取数据session.setMaxInactiveInterval:设置Session最大空闲时间

 

Lambda表达式简化格式:接口就一个方法的实现类的简化格式:(需要重新的抽象方法的参数)->代码块

本周重点:会用Servlet进行获取数据和响应数据会解析XML\JSON会使用JSP会使用Cookie\Session

 

》十五

 

回顾:Tomcat:服务器Servlet:java语言运行在服务器的api作用:1、获取浏览器或客户端的请求信息2、对浏览器或客户端进行信息的响应HttpServletRequest:请求getXXXX:获取HttpServletResponse:响应setXX:设置getOutputStream:获取输出字节流getWriter:输出字符流

JSP:Java对Servlet和HTML的整合页面

符号:声明使用显示

 

三大指令:page\include\taglib四大域:就是根据作用域的不同而区分,主要存储数据从大到小:application--->session---->request---->pageContext九大对象:requestresponsesessionpagepageContextapplicationexceptionconfigout三元素include\forward\param

EL:表达式----代替作用:1、获取请求参数2、获取域中属性3、获取cookie格式:${ }

JSTL:标准标签库----代替使用步骤:1、导入jar包2、在jsp使用taglib标记3、使用标签

核心库:c

JSP和Servlet区别?开发中:JSP主要用来接收服务器数据并显示Servlet主要用来进行逻辑处理

三跨数据格式:HTMLXMLJSON

CookieSession

 

内容:一、反射反射:就是程序运行时,动态获取类的信息的行为

反射作用:1、获取类的属性、方法、注解等2、执行私有的属性或方法

Class:字节码类

Class对象的创建方式:1、类名.class2、对象名.getClass3、Class.forName(类名全称)

常用方法:getFields:获取所有public字段getDeclaredFields:获取本类的所有字段不包含继承getDeclaredField:获取指定字段名称的字段对象getMethods:获取所有的public方法getDeclaredMethods:获取本类所有的方法,不包含继承getDeclaredMethod:获取指定方法名称,形式参数的方法对象getDeclaredAnnotations() :获取当前类的注解newInstance:创建对应类的对象

Method类:常用方法: getAnnotations:获取方法上的注解 invoke:执行方法 setAccessible:设置是否忽略访问校验Filed类:常用方法: set:设置属性的值 get:获取属性的值 setAccessible:设置是否忽略访问校验 getAnnotations:获取字段上的注解

Object

二、注解注解就是为机器添加的注释,主要为了简化开发

元注解:就是修饰注解的注解开发中定义注解的时候会使用元注解四大元注解:@Target 表示该注解用于什么地方,可能的值在枚举类 ElemenetType 中设置注解的使用范围@Retention 表示在什么级别保存该注解信息。可选的参数值在枚举类型 RetentionPolicy 中@Documented 将此注解包含在 javadoc 中 ,它代表着此注解会被javadoc工具提取成文档。在doc文档中的内容会因为此注解的信息内容不同而不同。相当与@see,@param 等@Inherited 允许子类继承父类中的注解

创建注解步骤:1、创建注解对象,@interface 1、标记注解的使用范围和有效期 2、定义属性,记录注释内容2、使用注解 1、要在注解的使用范围之内使用3、解析注解 1、通过反射获取注解的内容使用

开发中主要是使用别人家的注解

3、泛型就是引用类型的占位符,避免了转型jdk5.0之后出现的

26个大写字母都可以

记住:泛型无论在哪使用,都必须声明格式:使用:字母

使用方式:1、泛型类或接口类名2、泛型方法 返回值 方法名称(形式参数){

}

主要用来开发工具类、框架

基本要求:反射:会获取类中的信息注解:使用注解时,可以大概猜出源码流程泛型:要求会使用

开发实例:1、模拟Gson解析2、模拟QueryRunner的查询

 

》十六

 

一、文件上传用户通过网页将选择的图片上传到服务器1、Servlet负责接收请求来的文件信息并保存到服务器2、HTML/JSP负责用户选择文件并上传到对应的Servlet

服务器将文件存储在META-INFWEB-INF这些下面的时候,浏览器无法访问如果存在WebContent下可以访问

使用Apache的jar包实现文件的上传

文件上传步骤:1、创建jsp或html页面注意使用表单,一定要设置表单的enctype="multipart/form-data属性表示是文件上传的表单2、创建Servlet3、重写doPost方法4、运行

涉及到的类:1、DiskFileItemFactory:文件工厂,主要用来创建上传对象常用方法:setRepository:设置上传的临时文件夹

2、ServletFileUpload:上传类静态方法:isMultipartContent验证是否有file标签常用实例方法: setHeaderEncoding:设置编码格式 setFileSizeMax:设置文件总大小 setSizeMax:设置总大小 parseRequest:获取当前请求中的所有参数信息

3、FileItem:文件对象常用方法: 1、isFormField:验证是否为非file标签 2、getName:获取文件名称 3、getInputStream:获取文件内容

二、文件下载不需要任何jar包

主要记忆的是以下消息头:1、user-agent:获取浏览器类型2、content-disposition:设置文件名称,值:ttachment;filename=文件名3、setContentType:设置正文内容的MIME类型4、setContentLengthLong:设置正文的字节个数

使用步骤:1、获取要下载的文件路径2、验证文件是否存在3、设置消息头4、创建流,读取内容并返回5、运行

三、事件事件:就是一组行为实现了事件接口的类就叫监听器事件的使用步骤:1、创建类实现对应的xxxListener2、重写方法3、配置事件4、运行

注册事件的方式:1、xml配置在web.xml中使用监听器的类名2、注解配置在监听器的类上使用@WebListener就可以

创建方式:1、自定义类,实现接口,配置事件2、直接new Listener

常用事件:1、ServletContext:ServletContextListener:监听创建或销毁ServletContextAttributeListener:监听属性的新增、修改、删除

2、HttpSession:HttpSessionListener:监听创建或销毁HttpSessionAttributeListener:监听属性的新增、修改、删除HttpSessionBindingListener:监听属性为对象的新增、删除

3、ServletRequest:ServletRequestListener:监听创建、销毁ServletRequestAttributeListener:监听属性的新增、修改、删除

 

12306的Session失效的效果10秒无交互,失效

思路:要不要保存所有的Session保存在什么地方怎么验证失效定时验证

 

重点:文件上传&下载

 

》十七

 

File类:FileNameFilterFileFilter

Listener:监听,域的变化

Servlet过滤器Filter接口:会对每一次的请求进行过滤使用步骤:1、创建Filter类2、重写对应的方法3、配置

Filter接口中的方法:1、init:初始化参数说明:FilterConfig:过滤器的配置信息 常用方法: getInitParameter:获取配置的参数的值

2、doFilter:过滤重要方法,进行条件的筛选,是否允许放行参数说明: 1、request:请求对象 2、response:响应对象 3、chain:过滤器通行对象

3、destroy:销毁

FilterChain:就是调用下一个链

常用方法:doFilter:继续请求参数说明: 1、request:请求对象 2、response:响应对象

Filter的注册方式:1、xml配置在web.xml下使用 myf1 org.qf.study1.MyFilter2

myf1 /MyServlet1

2、注解@WebFilter:配置过滤器注解的常用属性: 1、urlPatterns:设置要过滤的资源 /* 所有 /Servlet名称 /xxx.jsp 2、initParams:设置过滤器的配置信息

注解注册和xml注册的区别?1、注解方便,xml麻烦2、注解无法设置过滤器的顺序(是根据过滤器的名称的字符串顺序进行的)xml配置可以设置,是根据的先后顺序进行加载的

在开发中,get传递中文,一般都乱码url编码为ISO8859-1,而这种编码不支持中文

过滤器的常用:1、使用过滤器实现get的自动转码步骤:1、创建过滤器2、在doFilter的方法中验证请求方式3、get请求需要将请求参数的内容的编码格式都转换 重写请求对象的参数内容:HttpServletRequestWrapper4、重写获取参数值的方法 1、getParameter 2、getParameterMap 3、getParameterValues

2、自动登录

 

 

具有登录功能的网页设计数据库搭框架

 

Md5:加密,不可逆目前使用最广泛,因为简单

 

AjaxJQuery项目

 

》十八

 

同步:单线程:代码会从上到下进行,会引起阻塞异步:多线程:开启多个线程,各个互不影响

2个子线程分别运行。如何在主线程中获取2个子线程的结束?

一、Ajax:Asynchronous JavaScript And XML局部刷新网页的技术

1、核心对象:XMLHttpRequest获取方式://根据浏览器的不同创建Ajax对象function getXMLRequest(){ var xttp; if(window.XMLHttpRequest){//当前浏览器支持直接创建ajax对象 xttp=new XMLHttpRequest(); }else{//支持IE5\6 xttp=new ActiveXObject("Microsoft.XMLHTTP"); } return xttp;}

2、常用属性: readyState:类型short;只读 取值说明: 就绪状态码 说 明 0 XMLHttpRequest对象没有完成初始化即:刚刚创建。 1 XMLHttpRequest对象开始发送请求调用了open方法,但还没有调用send方法。请求还没有发出 2 XMLHttpRequest对象的请求发送完成send方法已经调用,数据已经提交到服务器,但没有任何响应 3 XMLHttpRequest对象开始读取响应,还没有结束收到了所有的响应消息头,但正文还没有完全收到 4 XMLHttpRequest对象读取响应结束一切都收到了

responseText:类型String;只读,服务器返回内容:一般为普通字符串或json字符串 responseXML:类型Document;只读,服务器返回内容:xml文档格式 status:类型short;只读,服务器的状态响应码 常用取值说明: 状态码 说 明 200 服务器响应正常 400 无法找到请求的资源 403 没有访问权限 404 访问的资源不存在 500 服务器内部错误

一般都需要验证readyState=4 并且 status=2003、常用方法: open(method,URL,async) 建立与服务器的连接method参数指定请求的HTTP方法,典型的值是GET或POST,URL参数指请求的地址,async参数指定是否使用异步请求,其值为true或false send(content) 发送请求content参数指定请求的参数 setRequestHeader(header,value) 设置请求的头信息

4、事件属性: onreadystatechange:指定回调函数,获取服务器响应内容的函数 值为函数,用来处理服务器响应内容

5、使用步骤: 1、获取XMLHttpRequest对象------new XMLHttpRequest() 2、设置回调函数-------onreadystatechange 3、打开连接-----------open 4、设置请求头---------setRequestHeader 5、发送---------------send

 

登陆

练习:

1、开发注册页面要求: 1、自己写Servlet(2个,一个负责验证用户名是否存在,另一个负责添加用户) http://localhost:8080/Web_Day18_AutoLogin/checkname http://localhost:8080/Web_Day18_AutoLogin/register 2、写一个HTML页面,完成注册功能。 就是普通的html页面,没有使用表单 3、Ajax实现用户名是否存在,实现注册 通过Ajax传输数据并接受

2、分页步骤:1、完成Servlet,接受当前页码和每页显示的数据2、通过Ajax请求Servlet

JS解析JSON数据:通常使用JSON.parse进行解析有点类似JSON源生解析

 

3、搜索根据商品名称实现模糊搜索只需在Servlet添加参数,商品名称html中通过JS控制

 

》十九

 

一、jQuery简化JS的使用jQuery:就是一个轻量级的JS库简化JS的使用目的:写的更少,做的更多

需要引入jQuery库免费、开源

1.2jQuery的格式:$("选择器").行为(参数);解释: 1、$:jQuery的标记 2、选择器:类似CSS选择器 3、行为:操作对知道的元素进行的操作

页面加载完成之后,调用 $(document).ready(function(){

});等价于:window.onload=function(){

}

1.3jQuery的选择器:常用选择器: 1、标签选择器:直接写HTML标签名称 2、class:为HTML标签使用class属性的值,.类名 3、id:为HTML标签使用id属性的值,#id名

注意:选择器可以混合使用,只需记得每种的格式

1.4jQuery的行为/操作 行为可以是事件、文档、样式、属性、效果

1.4.1事件:对应的就是HTML标签的事件属性事件的的参数都是函数 常用事件: ready:加载完触发 click:点击触发 change:内容改变触发 blur:失去焦点触发 focus:获取焦点触发 dblclick:双击触发

1.4.2文档操作Html的内容,参数一般为要设置的文本内容,不带参数就是得到 html:内部的HTML内容----innerHTML val:input标签的value属性 append:追加,在当前的选择器的元素内部追加 after:添加,在当前选择器元素的后面添加 before:添加,在当前选择器元素的前面添加 remove:移除

1.4.3样式就是为HTML元素设置CSS属性 常用行为: css:设置对应标签的属性 参数: 1、css属性敏成功 2、css属性的值 取值说明: 1、没有:获取属性的中 2、具体的值:设置属性的值 3、函数:必须返回当前属性的值

1.4.4属性改变HTML的标签属性 常用: attr():设置或获取对应的属性 toggleClass:新增或删除class属性,不存在就新增,存在就删除 removeAttr:移除属性

1.4.5效果特效1、显示和隐藏 hide:隐藏 参数说明: 1、没有参数:就是立即执行 2、1个参数:就是在指定的毫秒之内隐藏完毕 3、2个参数:就是在指定的毫秒之内隐藏完毕,并回调指定的函数

show:显示 参数说明: 1、没有参数:就是立即执行 2、1个参数:就是在指定的毫秒之内显示完毕 3、2个参数:就是在指定的毫秒之内显示完毕,并回调指定的函数 toggle:显示或隐藏 参数说明: 1、没有参数:就是立即执行 2、1个参数:就是在指定的毫秒之内执行完毕 3、2个参数:就是在指定的毫秒之内执行完毕,并回调指定的函数

2、透明度就是可见的清晰度范围:[0.0,1.0]其中:0.0看不见1.0完全可见常用: fadeTo:改变透明度 参数说明: 1、速度 2、透明度 3、回调函数

3、自定义动画可以自己指定属性的变化 常用: animate:设置动画 参数说明: 1、属性内容:json数据,可以同时设置多个属性变化 2、动画持续时间

1.5jQuery的Ajax就是jQuery对象Ajax技术进行了封装,简化常用:1、load:使用方式:$(选择器).load(url,data,callback)一般都是直接使用会默认将返回结果设置到对应的选择器

2、ajax:使用方式: $.ajax(json格式数据):参数为{属性名称:值} 常用的名称: url:要请求的路径 data:参数 method:方式 success:成功的回调方法 error:错误的回调方法3、get:get请求使用方式: $.get(url,data,callback)4、post:post请求使用方式: $.post(url,data,callback)

 

 

 

练习:使用jQuery对输入框的内容进行校验

 

课下:设计模式:建造者模式链式编程

 

 

二、总结

1、前端HTML:超文本标记语言在浏览器中显示数据格式:

语法格式: 1、固定标签 2、标签嵌套 3、属性的值必须双引号 4、成对出现 5、不区分大小写

常用标签:div\form\p\a\img\input\ul\ol\select\textarea\hr\br\table\tr\td\th\span\h1\label\frameset\frame常用属性:width\height\src\href\border\align\style\id\class\name\action\method\enctype\checked\disabled常用事件:onload\onclick\ondblclick\onfocus\onblur\onchange\onmouseout\onmouseover\onsubmit\onselect

CSS:层叠样式表美化HTML

格式:选择器{属性名称:值}

引用方式:1、外部:link3、内部:在head使用4、内嵌:在标签中使用style属性

选择器:1、标签:标签名称{}2、class::.类名3、id:#id名称4、属性:[属性名称=值]

常用属性: 1、背景:backgroundXXX 2、文本:textXXX 3、字体:fontXXX 4、盒子模型 1、borderXXX:边框 2、marginXXX:外边距 3、paddingXXX:内边距 5、列表:list-style-type 6、位置: 1、float:浮动 2、position:定位

JS:JavaScript:浏览器脚本语言动态交互HTML

引用方式:1、外部js文件:2、head内部:3、body内部:

JS语法:1、数据类型: 原始类型:字符串、数字、boolean 引用类型:2、变量:可变的量格式:var 变量名称[=值];

js的变量可以不声明直接使用

3、运算符:算术、比较、赋值、逻辑、位、三目、字符串连接

4、分支语句 if else switch

breakreturn5、循环语句 for for in while do\while

6、函数格式:function 函数名称(参数名称){

[return 返回值]}

7、全局函数 1、isNaN 2、Number 3、String 4、parseInt 5、parseFloat

8、内置对象 1、Number 2、String 3、Math: floor random round 4、Array 创建数组 可以改变长度 常用属性: length 常用方法: sort:排序

5、Regex 正则表达式 以/正则规则/ Regex Pattern

常用字符串的: matchs:匹配 split:切割 replace:替换

6、window 7、Date

9、document 常用方法: 1、getElementById 2、getElementsByTagName 3、getElementsByName 4、createElement 5、setAttribute 6、appendChild

value src innerHTML href

2、数据库MySQL:数据库存储数据的仓库SQL:结构化查询语言分类:1、DDL:数据库定义语言:create\drop\alter2、DML:数据库操作语言:insert\update\delete3、DCL:数据库控制语言:用户、安全等4、DQL:数据库查询语言:select

七大语句:create table/databasealter table/databasedrop table/database

insert into 表名(字段) values(值)update 表名 set delete from 表名 select 字段 from 表名 [where] [order by] [group by] [having] [limit]

约束条件:1、主键 2、唯一3、非null4、默认5、外键

条件:and\or= != >=likeinbetween andIS NULLIS NOT NULL

聚合函数:MAXMINSUMAVGCOUNT

函数:nowrandommd5

多表操作:1、内联:inner join2、左外连:left out join3、右外连:right out join4、笛卡尔积:select * from 表1,表2

触发器:自动新增、修改、删除等

事务:保证操作的一致性start transaction:开启事务commit:提交事务rollback:回滚事务

事务特性:A原子性C一致性I隔离性 防止脏读、幻度、虚度等D持久性

JDBC:java操作数据库的接口

使用步骤:1、导入数据库驱动jar2、动态加载3、连接4、获取操作SQL对象5、执行SQL6、销毁

DriverManager:驱动管理Connection:连接Statement:操作SQLPreparedStatement:防SQL注入操作SQLResultSet:结果集

连接池:存储数据库连接的池子管理数据库的连接

常用的数据库连接池:1、C3P02、DBCP

QueryRunner:工具类常用方法: 1、update 2、query

BeanHander:将结果从ResultSet中转换为实体对象 BeanListHander:将结果从ResultSet中转换为list

3、后端Tomcat:服务器免费、不要钱

目录:bin:可执行lib:第三方jarconfig:配置文件webapps:发布的Web应用work:工作空间temp:临时文件log:日志

可以运行我们的Servlet&JSP

 

Servlet:java语言编写的运行在服务器的api获取请求数据响应数据Servlet创建方式:1、实现Servlet接口 重写方法: init destroy service2、继承GenericServlet 重写: service3、继承HttpServlet 重写: doGet doPost

配置Servlet: 1、xml配置 在web.xml下使用: 名称 类名 名称 匹配规则

2、注解 @WebServlet()

使用步骤:1、创建Servlet2、重写方法doGet、doPost3、配置4、发布

Request:请求

常用方法: getParameter:获取指定key的值 getParameterValues:获取指定key的所有值 getParameterNames:获取所有的Key getParameterMap:获取所有的Key和对应的值 getAttribute:获取指定Key的属性 setAttribute:新增属性或修改属性 removeAttribute:移除属性 getMethod:获取请求方式 getRemoteAddr:获取远程IP

属性和参数的区别?属性可以存储对象参数不可以

Response:响应 常用: getOutputStream:获取输出字节流:响应数据 getWriter:获取输出字符流:响应数据 setCharacterEncoding:设置内容的编码格式 setContentType:设置内容的类型 setHeader:设置消息头

跳转:1、客户端跳转 重定向2、服务端的跳转 请求转发

请求行:自动携带消息头:浏览器、服务器识别

请求的组成:请求行请求消息头请求内容

 

JSP:Java Server Pagejava根据Servlet和HTML结合创建可以在浏览器直接访问,底层运行转化为诶Servlet

符号::声明:操作:显示

三大指令:格式:1、page:导入包、标记文档类型等2、include:静态加载其他页面3、taglib:标记JSTL标签库

 

九大对象:内置,默认创建1、request2、response3、application4、session5、page6、pageContent7、out8、exception9、config

 

四大域:application----ServletContext作用域:整个Web范围session----HttpSession作用域:客户访问产生,默认30分钟无响应销毁request---HttpServletRequest作用域:发起请求默认产生,也可以转发pageContext---ServletContent作用域:当前页面

都有以下方法: getAttribute setAttribute removeAttribute

三元素:1、include:动态加载其他页面2、forward:跳转其他页面3、param:携带参数

 

EL表达式:简化jsp 格式:${域中属性名称|param.参数名称|cookie}

 

JSTL:标准标签库简化jsp-- c:outc:setc:forEachc:choosec:ifc:remove

Cookie:将信息保存在客户的电脑上,硬盘

request.getCookies:获取所有Cookieresponse.addCookie:添加Cookie

记住账号

Session:将信息保存在服务器,内存

request.getSession

保存登录账号等

数据格式:特点:三跨:跨平、跨网络、跨编程语言

1、HTML:浏览器2、JSON:[]数组{}对象常用解析: 1、JSON源生 JSONObject:解析对象 JSONArray:解析数组 2、Gson gson.fromJson:解析json数据 gson.toJson:将对象转换为JSON字符串 3、fastjson JSON.parseObject:解析对象 JSON.parseArray:解析数组3、XML

作用:1、配置文件2、传送数据

常用解析: 1、Dom源生解析 区分元素和节点 2、SAX 自定义DeafultHeader 3、DOM4j SAXReader 4、XPATH 查询

4、技术

1、注解反射泛型注解:为代码添加的注释一般为解决特殊情况准备的比如:json特殊的属性名称

 

创建注解:1、创建@interface2、创建属性3、使用注解4、解析注解

反射:动态获取类的信息

作用:1、获取类的信息:属性、方法、注解、构造器等2、执行私有属性或方法

Class类

泛型:用来占位的字母

引用类型占位,避免转型

结合反射使用

切记:泛型也得先声明才可以使用这就是声明

文件上传&下载文件上传使用第三方:1、页面需要有file标签2、设置表单的enctype="muilpart/form-data"3、在对应的Servlet获取FileItem4、创建保存路径5、流的读取和写出

Listener:事件就是获取application\session\request等变化的接口

注册方式:1、xml2、注解@WebListener

监听器:就是实现了Listener接口的类创建或销毁、属性内容的变化

Filter:过滤器可以对每一次的请求和响应作出过滤

注册方式:1、xml在web.xml下使用: 名称 类名 名称 匹配规则

2、注解@WebFilter(ulrPatterns={})

注解的执行顺序按照字符串顺序xml是按照先后顺序执行

生命周期:1、init2、doFilter继续必须使用chain.doFilter

3、destroy

作用1、自动转码2、自动登录

 

Ajax:异步局部刷新可以对网页的局部内容进行请求服务器病显示返回结果

结果数据格式:1、字符串2、JSON3、xml

 

XMLHttpRequest:Ajax的核心对象new XMLHttpRequest();

常用属性:1、readyState:读取状态 0初始化 1打开链接 2发生请求 3未接收完全 4全部OK2、status:服务器返回的状态响应码 200:OK 404:未发现:要么服务器宕机、要么服务器将页面删除了、要么url路径写错了 403:没有权限 500:服务器错误

事件属性:onreadystatechange:读取状态变化事件对应的值:回调函数

常用方法:1、open:打开链接2、setRequestHeader:设置消息头3、send:发送

 

使用步骤:1、创建XMLHttpRequest对象2、设置回调函数3、打开链接4、设置请求头5、发送信息

jQuery:简化JS就是对JS进行了封装

详情看上面

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有