javaweb基础

JavaWeb

HTML

html基础

bgcolor="#faebd7"设置颜色
onclick="alert('你好!');" 

可以直接设置事件响应后的代码。
button设置按钮
br 换行 
hr 水平线
<!DOCTYPE html><!--约束 声明-->
<html lang="zh_CN"><!--html标签表示html开始 lang="zh_CN"表示中文 html标签一般分为两部分:head和body-->
<head><!--表示头部信息 一般三部分:title标签,css样式,js代码-->
    <meta charset="UTF-8"><!--当前页面使用UTF-8字符集-->
    <title>Title</title><!--表示标题-->
</head>
<!--整个html标签显示的主页内容-->
<body bgcolor="#faebd7"><!--设置网页颜色-->
hello world
<button onclick="alert('鸣人不可一世')">按钮</button>
<br/>!!!!<br/>
<hr/>
</body>
</html><!--整个html页面的结束-->

font字体标签

font 标签是字体标签,它可以用来修改文本的字体,颜色,大小(尺寸) color 属性修改颜色 
face 属性修改字体 
size 属性修改文本大小
<font color="red" face="宋体" size="7">我是字体标签</font>

特殊字符

&lt;   --> 小于号
&gt;   --> 大于号
&nbsp  --> 空格

标题标签

<h1 align="left">标题一</h1>
<h2 align="center">标题二</h2>
<h3 align="right">标题三</h3>
<h4>标题四</h4>
<h5>标题五</h5>
<h6>标题六</h6>
<h7>标题七</h7>

最多六个标签,所以标题七就是默认文本大小

超链接

a 标签是 超链接 
href 属性设置连接的地址 
target 属性设置哪个目标进行跳转
_self 表示当前页面(默认值)
_blank 表示打开新页面来进行跳转
<a href="http://localhost:8080">百度</a><br/> <a href="http://localhost:8080" target="_self">百度_self</a><br/> <a href="http://localhost:8080" target="_blank">百度_blank</a><br/>

列表标签

ul是无序列表
ol是有序列表

type属性可以修改列表项前面的符号

li是列表项
<ul type="none"> 
	<li>赵四</li> 
	<li>刘能</li> 
	<li>小沈阳</li> 
	<li>宋小宝</li> 
</ul>

img标签

img 标签是图片标签,用来显示图片 
src 属性可以设置图片的路径
width 属性设置图片的宽度 
height 属性设置图片的高度 
border 属性设置图片边框大小 
alt 属性设置当指定路径找不到图片时,用来代替显示的文本内容
在 JavaSE 中路径也分为相对路径和绝对路径. 相对路径:从工程名开始算 绝对路径:盘符:/目录/文件名 在 web 中路径分为相对路径和绝对路径两种 相对路径: . 表示当前文件所在的目录 .. 表示当前文件所在的上一级目录 文件名 表示当前文件所在目录的文件,相当于 ./文件名 ./ 可以省略 绝对路径: 正确格式是: http://ip:port/工程名/资源路径 错误格式是: 盘符:/目录/文件名

表格标签

table 标签是表格标签
border 设置表格标签
width 设置表格宽度
height 设置表格高度
align 设置表格相对于页面的对齐方式
cellspacing 设置单元格间距 
tr 是行标签 
th 是表头标签 
td 是单元格标签 
align 设置单元格文本对齐方式 
b 是加粗标签
<table align="center" border="1" width="300" height="300" cellspacing="0"> 
<tr>
		<th>1.1</th>
		<th>1.2</th>
		<th>1.3</th>
</tr> 
	<tr>
		<td>2.1</td>
		<td>2.2</td>
		<td>2.3</td>
</tr>
	<tr>
		<td>3.1</td>
		<td>3.2</td>
		<td>3.3</td>
	</tr> 
</table>

表格跨行跨列

colspan 属性设置跨列 
rowspan 属性设置跨行
<table width="500" height="500" cellspacing="0" border="1">
	<tr>
		<td colspan="2">1.1</td> 
		<td>1.3</td> 
		<td>1.4</td> 
		<td>1.5</td>
</tr>
	<tr>
		<td rowspan="2">2.1</td>
		<td>2.2</td> 
		<td>2.3</td> 
		<td>2.4</td>
		<td>2.5</td> 
</tr> 
	<tr>
		<td>3.2</td>
		<td>3.3</td> 
		<td>3.4</td>
		<td>3.5</td>
</tr>
	<tr>
		<td>4.1</td>
		<td>4.2</td>
		<td>4.3</td>
		<td colspan="2" rowspan="2">4.4</td>
</tr>
	<tr>
		<td>5.1</td>
		<td>5.2</td>
		<td>5.3</td>
	</tr>
</table> 

ifarme标签

ifarme 标签它可以在一个 html 页面上,打开一个小窗口,去加载一个单独的页面.

ifarme 和 a 标签组合使用的步骤: 

在 iframe 标签中使用 name 属性定义一个名称 

在 a 标签的 target 属性上设置 iframe 的 name 的属性值
<body>
我是一个页面
<ifarme src="3.标题标签.html" width="500" height="400" name="abc"></ifarme>
<ul>
    <li><a href="hello.html" target="abc">hello.html</a></li>
    <li><a href="biaoge.html" target="abc">biaoge.html</a></li>
    <li><a href="kuahanglie.html" target="abc">kuahanglie.html</a></li>
</ul>
</body>

表单格式化

表单就是 html 页面中,用来收集用户信息的所有元素集合.然后把这些信息发送给服务器

form 标签就是表单 
input type=text 是文件输入框
value 设置默认显示内容
input type=password 是密码输入框 
input type=radio 是单选框 
name 属性可以对其进行分组
checked="checked"表示默认选中
input type=checkbox 是复选框 
input type=reset 是重置按钮 
value 属性修改按钮上的文本 
input type=submit 是提交按钮
value 属性修改按钮上的文本 
input type=button 是按钮 
value 属性修改按钮上的文本
input type=file 是文件上传域
input type=hidden 是隐藏域 
当我们要发送某些信息,而这些信息,不需要用户参与,就可以使用隐藏域(提交的 时候同时发送给服务器) select 标签是下拉列表框 option 标签是下拉列表框中的选项 selected="selected"设置默认选中 textarea 表示多行文本输入框 (起始标签和结束标签中的内容是默认值) rows 属性设置可以显示几行的高度 cols 属性设置每行可以显示几个字符宽度
<body>
<form>
    <h1 align="center">用户注册</h1>
    <table align="center">
<tr>
    <td>用户名称:<td>
    <td><input type="text" value="000000"><br/><td>
</tr>
<tr>
    <td>用户密码:<td>
    <td><input type="password" value="abc"><br/><td>
</tr>
<tr>
    <td>确认密码:<td>
    <td><input type="password" value="abc"><br/><td>
</tr>
<tr>
    <td> 性别:<td>
    <td><input type="radio" name="sex">男<input type="radio" name="sex" checked="checked">女<br/><td>
</tr>
<tr>
    <td>兴趣爱好:<td>
    <td><input type="checkbox" checked="checked">Java<input type="checkbox" checked="checked">c++<input type="checkbox" checked="checked">python<br/><td>
</tr>
<tr>
    <td>国籍:<td>
    <td>
    <select>
    <option>--请选择国籍--</option>
    <option selected="selected">中国</option>
    <option>美国</option>
    <option>俄罗斯</option>
    </select><br/>
    <td>
</tr>
<tr>
    <td>自我评价:<td>
    <td><textarea rows="10" clos="20"></textarea><br/><td>
</tr>
<tr>
    <td> <input type="reset" value="重置"><td>
    <td align="center"><input type="submit"><td>
</tr>
    </table>
</form>
</body>

表单提交细节

form 标签是表单标签 
action 属性设置提交的服务器地址 
method 属性设置提交的方式 
GET(默认值)或 POST 表单提交的时候,数据没有发送给服务器的三种情况:
1、表单项没有 name 属性值 
2、单选、复选(下拉列表中的 option 标签)都需要添加 value 属性,以便发送给服务器
3、表单项不在提交的 
form 标签中 GET 请求的特点是: 
1、浏览器地址栏中的地址是:action 属性[+?+请求参数] 请求参数的格式是:name=value&name=value 
2、不安全 
3、它有数据长度的限制 
POST 请求的特点是:
1、浏览器地址栏中只有 action 属性值 
2、相对于 GET 请求要安全
3、理论上没有数据长度的限制
<body>
<form action="http://localhost:8080" method="post">
    <input type="hidden" name="action" value="login">
    <h1 align="center">用户注册</h1>
    <table align="center">
<tr>
    <td>用户名称:<td>
    <td><input type="text" name="username" value="000000"><br/><td>
</tr>
<tr>
    <td>用户密码:<td>
    <td><input type="password" name="password" value="abc"><br/><td>
</tr>
<tr>
    <td>确认密码:<td>
    <td><input type="password" value="abc"><br/><td>
</tr>
<tr>
    <td> 性别:<td>
    <td><input type="radio" name="sex" value="boy">男<input type="radio" name="sex" checked="checked" value="girl">女<br/><td>
</tr>
<tr>
    <td>兴趣爱好:<td>
    <td><input type="checkbox" checked="checked" value="ja">Java
    <input type="checkbox" checked="checked" value="cpp">c++
    <input type="checkbox" checked="checked" value="py">python
    <br/><td>
</tr>
<tr>
    <td>国籍:<td>
    <td>
    <select name="country">
    <option value="none">--请选择国籍--</option>
    <option value="cn" selected="selected">中国</option>
    <option value="as" >美国</option>
    <option value="el" >俄罗斯</option>
    </select><br/>
    <td>
</tr>
<tr>
    <td>自我评价:<td>
    <td><textarea name="desc" rows="10" clos="20"></textarea><br/><td>
</tr>
<tr>
    <td> <input type="reset" value="重置"><td>
    <td align="center"><input type="submit"><td>
</tr>
    </table>
</form>
</body>

其他标签

div 标签 默认独占一行 
span 标签 它的长度是封装数据的长度 
p 段落标签 默认会在段落的上方或下方各空出一行来

CSS

CSS与HTMl结合一

第一种: 
在标签的 style 属性上设置”key:value value;”,修改标签样式。
<div style="border: 1px solid red;">div 标签 1</div> <div style="border: 1px solid red;">div 标签 2</div> <span style="border: 1px solid red;">span 标签 1</span> <span style="border: 1px solid red;">span 标签 2</span>

问题:这种方式的缺点?

​ 1.如果标签多了。样式多了。代码量非常庞大。

​ 2.可读性非常差。

​ 3.Css 代码没什么复用性可方言。

CSS与HTMl结合二

在 head 标签中,
使用 style 标签来定义各种自己需要的 css 样式。
格式如下: 
xxx {Key : value value; }
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--style 标签专门用来定义 css 样式代码-->
    <style type="text/css">
        /* 需求 1:分别定义两个 div、span 标签,分别修改每个 div 标签的样式为:边框 1 个像素,实线,红色。*/
        div{
            border: 1px solid red;
        }
        span{
            border: 1px solid red;
        }
    </style>
</head>
    <body>
     <div>div 标签 1</div>
     <div>div 标签 2</div>
     <span>span 标签 1</span>
     <span>span 标签 2</span>
    </body>

问题:这种方式的缺点。

​ 1.只能在同一页面内复用代码,不能在多个页面中复用 css 代码。

​ 2.维护起来不方便,实际的项目中会有成千上万的页面,要到每个页 面中去修改。工作量太大了。

CSS与HTMl结合三

把 css 样式写成一个单独的 css 文件,再通过 link 标签引入即可复用。
使用 html 的 <link rel="stylesheet" type="text/css" href="./styles.css" /> 标签 导入 css 样 式文件。
css 文件内容:
div{border: 1px solid yellow; }
span{border: 1px solid red; }
html 文件代码:
<!DOCTYPE html>
<html lang="en">
<head> 
<meta charset="UTF-8">
<title>Title</title> 
<!--link 标签专门用来引入 css 样式代码--> 
<link rel="stylesheet" type="text/css" href="1.css"/> </head>
<body>
<div>div 标签 1</div>
<div>div 标签 2</div>
<span>span 标签 1</span>
<span>span 标签 2</span>
</body>
</html>

标签名选择器

标签名选择器的格式是:
标签名{ 
属性:值;
}
标签名选择器,可以决定哪些标签被动的使用这个样式
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        div{
            border: 1px solid red;
            color:blue;
            font-size: 20px;
        }
        span{ 
            border: 5px dashed blue; 
            color: yellow;
            font-size: 20px; 
        }
    </style>
</head>
<body>
    <div>标签 1</div>
    <div>div 标签 2</div>
    <span>span 标签 1</span>
    <span>span 标签 2</span>
</body>

id选择器

id 选择器的格式是:
#id 属性值{ 属性:值; }
id 选择器,可以让我们通过 id 属性选择性的去使用这个样式
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        #id002{
            border: 1px solid red;
            color:blue;
            font-size: 20px;
        }
        #id001{
            border: 5px dashed blue;
            color: yellow;
            font-size: 20px;
        }
    </style>
</head>
<body>
<div id="id001">标签 1</div>
<div id="id002">div 标签 2</div>
</body>

class类型选择器

class 类型选择器的格式是: 
.class 属性值{ 属性:值; }
class 类型选择器,可以通过 class 属性有效的选择性地去使用这个样式
<head> 
<meta charset="UTF-8"> 
<title>class 类型选择器</title>
<style type="text/css"> 
.class01{ 
color: blue;
font-size: 30px;
border: 1px solid yellow;
}
.class02{
color: grey;
font-size: 26px;
border: 1px solid red;
}
</style>
</head>
<body>
<div class="class02">div 标签 class01</div>
<div class="class02">div 标签</div>
<span class="class02">span 标签 class01</span> <span>span 标签 2</span>
</body>

组合选择器

组合选择器的格式是: 
选择器 1,选择器 2,选择器 n{
属性:值;
} 
组合选择器可以让多个选择器共用同一个 css 样式代码
<head>
<meta charset="UTF-8"> 
<title>class 类型选择器</title> 
<style type="text/css"> 
.class01 , #id01{ 
color: blue; 
font-size: 20px;
border: 1px yellow solid;
}
</style>
</head> 
<body>
<div id="id01">div 标签 class01</div> <br />
<span >span 标签</span> <br/>
<div>div 标签</div> <br/>
<div>div 标签 id01</div>
<br/> </body>

CSS常用样式

1、字体颜色 color:red; 
颜色可以写颜色名如:black, blue, red, green 等 
颜色也可以写 rgb 值和十六进制表示值:如 rgb(255,0,0),#00F6DE,如果写十六进制值必 须加#
2、宽度width:19px; 宽度可以写像素值:19px; 也可以写百分比值:20%; 
3、高度height:20px; 高度可以写像素值:19px; 也可以写百分比值:20%; 
4、背景颜色 background-color:#0F2D4C 
5、字体样式: color:#FF0000;字体颜色红色 font-size:20px; 字体大小 
6、红色 1 像素实线边框 border:1px solid red; 
7、DIV 居中 margin-left: auto; margin-right: auto;
8、文本居中: text-align: center;
9、超连接去下划线 text-decoration: none; 
10、表格细线 table {
border: 1px solid black; /*设置边框*/ 
border-collapse: collapse; /*将边框合并*/ 
}td,th {
border: 1px solid black; /*设置边框*/
} 
11、列表去除修饰 ul { list-style: none; }
<head>
<meta charset="UTF-8">
<title>06-css 常用样式.html</title>
<style type="text/css">
div{
color: red; border: 1px yellow solid; width: 300px; height: 300px; background-color: green; font-size: 30px; margin-left: auto; margin-right: auto; text-align: center;
}
table{
border: 1px red solid; border-collapse: collapse; 
}
td{
border: 1px red solid;
}a{
text-decoration: none;
}ul{ 
list-style: none; }
</style>
</head> 
<body> 
<ul>
<li>11111111111</li>
<li>11111111111</li>
<li>11111111111</li> 
<li>11111111111</li> 
<li>11111111111</li> 
</ul> 
<table>
<tr>
<td>1.1</td>
<td>1.2</td>
</tr> 
</table>
<a href="http://www.baidu.com">百度</a>
<div>我是 div 标签</div>
</body>

JavaScript

JavaScript html 代码的结合方式

只需要在 head 标签中,或者在 body 标签中, 使用 script 标签 来书写 JavaScript 代码

<script type="text/javascript">
// alert 是 JavaScript 语言提供的一个警告框函数。
// 它可以接收任意类型的参数,这个参数就是警告框的提示信息
alert("hello javaScript!");
</script>

JavaScript html 代码的结合方式

使用 script 标签引入 单独的 JavaScript 代码文件

<!--现在需要使用 script 引入外部的 js 文件来执行 src 属性专门用来引入 js 文件路径(可以是相对路径,也可以是绝对路径) script 标签可以用来定义 js 代码,也可以用来引入 js 文件 但是,两个功能二选一使用。不能同时使用两个功能 -->
<script type="text/javascript" src="1.js">
</script>
<script type="text/javascript">
alert("国哥现在可以帅了"); 
</script>

变量

JavaScript 的变量类型:
	数值类型: number 
	字符串类型: string 
	对象类型: object 
	布尔类型: boolean
	函数类型: function 
JavaScript 里特殊的值: undefined 未定义,
所有 js 变量未赋于初始值的时候,默认值都是 undefined.
null 空值
NaN 全称是:Not a Number  非数字、非数值。
JS 中的定义变量格式:
var 变量名; var 变量名 = 值;
关系运算
等于: == 等于是简单的做字面值的比较 
全等于: === 除了做字面值的比较之外,还会比较两个变量的数据类型
逻辑运算
且运算: && 
或运算: || 
取反运算: ! 
在 JavaScript 语言中,所有的变量,都可以做为一个 boolean 类型的变量去使用。
0 、null、 undefined、””(空串) 都认为是 false;
&& 且运算。
有两种情况: 
第一种:当表达式全为真的时候。返回最后一个表达式的值。 
第二种:当表达式中,有一个为假的时候。返回第一个为假的表达式的值 || 或运算
第一种情况:当表达式全为假时,返回最后一个表达式的值 
第二种情况:只要有一个表达式为真。
就会把回第一个为真的表达式的值 并且 && 与运算 和 ||或运算 有短路。 
短路就是说,当这个&&或||运算有结果了之后 。后面的表达式不再执行

数组

JS 中 数组的定义: 
格式:
var 数组名 = []; // 空数组 
var 数组名 = [1 , ’abc’ , true]; // 定义数组同时赋值元素
<script type="text/javascript">
var arr = [true,1]; // 定义一个空数组 
// alert( arr.length ); 
// 0 arr[0] = 12;
// alert( arr[0] );//12
// alert( arr.length ); // 0
// javaScript 语言中的数组,只要我们通过数组下标赋值,那么最大的下标值,就会自动的给数组做扩容操作,但读取操作不会
arr[2] = "abc"; alert(arr.length); //3
// alert(arr[1]);// undefined
// 数组的遍历
for (var i = 0; i < arr.length; i++)
{ alert(arr[i]); }
</script>

函数

函数定义一
第一种,可以使用 function 关键字来定义函数。 
使用的格式如下:
function 函数名(形参列表)
{ 函数体 }
在 JavaScript 语言中,如何定义带有返回值的函数? 
只需要在函数体内直接使用 return 语句返回值即可!
<script type="text/javascript"> // 定义一个无参函数 function fun()
{ alert("无参函数 fun()被调用了"); }
// 函数调用===才会执行 
// fun();
function fun2(a ,b)
{ alert("有参函数 fun2()被调用了 a=>" + a + ",b=>"+b); }
// fun2(12,"abc");
// 定义带有返回值的函数
function sum(num1,num2)
{ var result = num1 + num2; return result; }
alert( sum(100,50) );
</script>
函数定义二
使用格式如下:
var 函数名 = function(形参列表) { 函数体 }
<script type="text/javascript"> 
var fun = function () { alert("无参函数"); }
// fun();
var fun2 = function (a,b)
{ alert("有参函数 a=" + a + ",b=" + b); }
// fun2(1,2);
var fun3 = function (num1,num2) { return num1 + num2; }
alert( fun3(100,200) ); 
</script>

注:在 Java 中函数允许重载。但是在 JS 中函数的重载会直接覆盖掉上一次的定义

arguments 隐形参数(只在 function 函数内)

就是在 function 函数中不需要定义,但却可以直接用来获取所有参数的变量。我们管它叫隐形参数。

隐形参数特别像 java 基础的可变长参数一样。

public void fun( Object … args );

可变长参数其他是一个数组。

那么 js 中的隐形参数也跟 java 的可变长参数一样。操作类似数组

自定义对象

对象的定义: 
var 变量名 = new Object(); // 对象实例(空对象) 
变量名.属性名 = 值; // 定义一个属性 
变量名.函数名 = function(){} // 定义一个函数 
对象的访问: 变量名.属性 / 函数名();
<script type="text/javascript"> 
var obj = new Object(); 
obj.name = "华仔"; obj.age = 18;
obj.fun = function () 
{ alert("姓名:" + this.name + " , 年龄:" + this.age); }
// 对象的访问: 
// 变量名.属性 / 函数名(); 
// alert( obj.age ); 
obj.fun(); 
</script>

{}花括号形式的自定义对象

对象的定义:
var 变量名 = { // 空对象
属性名:值, // 定义一个属性 
属性名:值, // 定义一个属性
函数名:function(){} // 定义一个函数 };
对象的访问: 
变量名.属性 / 函数名();
var obj = {
name:"国哥", age:18, fun : function () 
{ alert("姓名:" + this.name + " , 年龄:" + this.age); 
} };
// 对象的访问: // 变量名.属性 / 函数名();
alert(obj.name); 
obj.fun();

js 中的事件

事件是电脑输入设备与页面进行交互的响应。我们称之为事件。

常用的事件:
onload 加载完成事件: 页面加载完成之后,常用于做页面 js 代码初始化操作 
onclick 单击事件: 常用于按钮的点击响应操作。
onblur 失去焦点事件: 常用用于输入框失去焦点后验证其输入内容是否合法。
onchange 内容发生改变事件: 常用于下拉列表和输入框内容发生改变后操作 
onsubmit 表单提交事件: 常用于表单提交前,验证所有表单项是否合法。 
事件的注册又分为静态注册和动态注册两种:
什么是事件的注册(绑定)? 
其实就是告诉浏览器,当事件响应后要执行哪些操作代码,叫事件注册或事件绑定。
静态注册事件:通过 html 标签的事件属性直接赋于事件响应后的代码,这种方式我们叫静态注册。 
动态注册事件:是指先通过 js 代码得到标签的 dom 对象,然后再通过 dom 对象.事件名 = function(){} 这种形式赋于事件 响应后的代码,叫动态注册。 
动态注册基本步骤: 
1、获取标签对象 
2、标签对象.事件名 = fucntion(){}
onload加载完成事件
静态注册事件
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
    function onloadFun(){
        alert("静态注册事件,所有的执行代码");
    }
    </script>
</head>
<body onload="onloadFun()">

</body>
动态注册事件
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
    window.onload=function(){
        alert("动态注册事件,所有的执行代码");
    }
    </script>
</head>
<body>

</body>
onlick单击事件
静态单击事件
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function onclickFun(){
            alert("静态注册onclick事件");
        }
    </script>
</head>
<body>
<button onclick="onclickFun()">按钮1</button>
<button>按钮2</button>
</body>
动态单击事件
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        window.onload=function () {
            var btnobj=document.getElementById("btn01");
            btnobj.onclick = function () {
                alert("动态单击事件");
            }
        }
    </script>
</head>
<body>
<button">按钮1</button>
<button id="btn01">按钮2</button>
</body>**onblur** **失去焦点事件** 
onblur 失去焦点事件
静态失去焦点事件
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
    function onblurFun(){
        console.log("静态注册失去焦点事件");
    }
    </script>
</head>
<body>
用户名:<input type="text" onblur="onblurFun()"><br/>
密码:<input type="password"><br/>
</body>
动态失去焦点事件
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
    window.onload=function () {
        var passwordobj=document.getElementById("password");
        passwordobj.onclick=function () {
            console.log("动态注册失去焦点事件");
        }
    }
    </script>
</head>
<body>
用户名:<input type="text"><br/>
密码:<input id="password" type="password"><br/>
</body>
onchange 内容发生改变事件
内容静态改变事件
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function onchangeFun() {
            alert("女神已经改变了");
        }
        </script>
</head>
<body>
    请选择你心中的女神:
    <!--静态注册 onchange 事件-->
<select onchange="onchangeFun();">
    <option>--女神--</option>
    <option>芳芳</option>
    <option>佳佳</option>
    <option>娘娘</option>
</select>

</body>
内容动态改变事件
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        window.onload = function () {
        //1 获取标签对象
        var selObj = document.getElementById("sel01");
        // 2 通过标签对象.事件名 = function(){}
        selObj.onchange = function () { alert("男神已经改变了"); } }
        </script>
</head>
<body>
    请选择你心中的男神:
    <select id="sel01">
        <option>--男神--</option>
        <option>国哥</option>
        <option>华仔</option>
        <option>富城</option>
    </select>
</body>
onsubmit 表单提交事件
表单静态提交事件
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" >
        // 静态注册表单提交事务
        function onsubmitFun(){
        // 要验证所有表单项是否合法,如果,有一个不合法就阻止表单提交
        alert("静态注册表单提交事件----发现不合法");
        return false; }
        </script>
</head>
<body>
<!--return false 可以阻止 表单提交 -->
<form action="http://localhost:8080" method="get" onsubmit="return onsubmitFun();">
    <input type="submit" value="静态注册"/>
</form>
</body>
表单动态提交事件
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" >
        window.onload = function () {
            //1 获取标签对象
        var formObj = document.getElementById("form01");
        // 2 通过标签对象.事件名 = function(){}
        formObj.onsubmit = function () {
            // 要验证所有表单项是否合法,如果,有一个不合法就阻止表单提交
        alert("动态注册表单提交事件----发现不合法");
        return false; } }
        </script>
</head>
<body>
<!--return false 可以阻止 表单提交 -->
    <form action="http://localhost:8080" id="form01">
        <input type="submit" value="动态注册"/>
    </form>>
</body>

DOM模型

DOM 全称是 Document Object Model 文档对象模型

大白话,就是把文档中的标签,属性,文本,转换成为对象来管理

document对象
Document 对象的理解: 
第一点:Document 它管理了所有的 HTML 文档内容。 
第二点:document 它是一种树结构的文档。有层级关系。 
第三点:它让我们把所有的标签 都 对象化 
第四点:我们可以通过 document 访问所有的标签对象。 

什么是对象化?? 我们已经学过面向对象。请问什么是对象化? 
举例: 有一个人有年龄:18 岁,性别:女,名字:张某某 我们要把这个人的信息对象化怎么办! 

Class Person {
private int age; 
private String sex;
private String name; 
}

那么 html 标签 要 对象化 怎么办?

<body>
<div id="div01">div01</div> 
</body>

模拟对象化,相当于: 
class Dom{
private String id; // id 属性
private String tagName; //表示标签名
private Dom parentNode; //父亲
private List<Dom> children; // 孩子结点
private String innerHTML; // 起始标签和结束标签中间的内容 
}
document对象方法介绍
getElementById
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" >
        /** 需求:当用户点击了较验按钮,要获取输出框中的内容。然后验证其是否合法。<br/> * 验证的规则是:必须由字母,数字。下划线组成。并且长度是 5 到 12 位。 * */
        function onclickFun() {
            // 1 当我们要操作一个标签的时候,一定要先获取这个标签对象。
        var usernameObj = document.getElementById("username");
        // [object HTMLInputElement] 它就是 dom 对象
        var usernameText = usernameObj.value;
        // 如何 验证 字符串,符合某个规则 ,
        // 需要使用正则表达式技术
        var patt = /^\w{5,12}$/;
        /* test()方法用于测试某个字符串,是不是匹配我的规则 , * 匹配就返回 true。不匹配就返回 false.  */
        var usernameSpanObj = document.getElementById("usernameSpan");
        // innerHTML 表示起始标签和结束标签中的内容
        // innerHTML 这个属性可读,可写
        usernameSpanObj.innerHTML = "国哥真可爱!";
        if (patt.test(usernameText)) {
            //alert("用户名合法!");
            usernameSpanObj.innerHTML = "用户名合法!";
            usernameSpanObj.innerHTML = "<img src=\"right.png\" width=\"18\" height=\"18\">"; }
        else { // alert("用户名不合法!");
            usernameSpanObj.innerHTML = "用户名不合法!";
            usernameSpanObj.innerHTML = "<img src=\"wrong.png\" width=\"18\" height=\"18\">"; }
        }</script>
</head>
<body>
用户名:<input type="text" id="username" value="wzg"/>
<span id="usernameSpan" style="color:red;"></span>
<button onclick="onclickFun()">较验</button>
</body>
getElementsByName
<body>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        // 全选
        function checkAll() {
            // 让所有复选框都选中
            // document.getElementsByName();是根据 指定的 name 属性查询返回多个标签对象集合
            // 这个集合的操作跟数组 一样
            // 集合中每个元素都是 dom 对象
            // 这个集合中的元素顺序是他们在 html 页面中从上到下的顺序
            var hobbies = document.getElementsByName("hobby");
            // checked 表示复选框的选中状态。如果选中是 true,不选中是 false
            // checked 这个属性可读,可写
            for (var i = 0; i < hobbies.length; i++){
                hobbies[i].checked = true; }
        }
            // 全不选
            function checkNo() {
                var hobbies = document.getElementsByName("hobby");
                // checked 表示复选框的选中状态。如果选中是 true,不选中是 false
                // checked 这个属性可读,可写
                for (var i = 0; i < hobbies.length; i++){
                    hobbies[i].checked = false; }
            }
                // 反选
                function checkReverse() {
                    var hobbies = document.getElementsByName("hobby");
                    for (var i = 0; i < hobbies.length; i++) {
                        hobbies[i].checked = !hobbies[i].checked;
                    }
                    // if (hobbies[i].checked) {
                    // hobbies[i].checked = false;
                    // }else {
                    // hobbies[i].checked = true; // }
}
    </script>
</head>
<body>
兴趣爱好:
<input type="checkbox" name="hobby" value="cpp" checked="checked">C++
<input type="checkbox" name="hobby" value="java">Java
<input type="checkbox" name="hobby" value="js">JavaScript<br/>
<button onclick="checkAll()">全选</button>
<button onclick="checkNo()">全不选</button>
<button onclick="checkReverse()">反选</button> </body>
</body>
getElementsByTagName
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script type="text/javascript"> 
    // 全选 
    function checkAll() { 
        // document.getElementsByTagName("input"); 
    // 是按照指定标签名来进行查询并返回集合 
    // 这个集合的操作跟数组 一样 
    // 集合中都是 dom 对象 
    // 集合中元素顺序 是他们在 html 页面中从上到下的顺序。 
    var inputs = document.getElementsByTagName("input"); 
    for (var i = 0; i < inputs.length; i++){ 
        inputs[i].checked = true; } 
    }
</script>
</head> 
<body> 
兴趣爱好:<input type="checkbox" value="cpp" checked="checked">C++ 
<input type="checkbox" value="java">Java
<input type="checkbox" value="js">JavaScript
<br/> <button onclick="checkAll()">全选</button>
</body>
createElement
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        window.onload = function () {
        // 现在需要我们使用 js 代码来创建 html 标签,并显示在页面上
        // 标签的内容就是:<div>国哥,我爱你</div>
        var divObj = document.createElement("div");// 在内存中 <div></div>
        var textNodeObj = document.createTextNode("国哥,我爱你");// 有一个文本节点对象 #国哥,我 爱你
        divObj.appendChild(textNodeObj);// <div>国哥,我爱你</div>
        divObj.innerHTML = "国哥,我爱你";// <div>国哥,我爱你</div>,但,还只是在内存中
        // 添加子元素
        document.body.appendChild(divObj); }
    </script>
</head>
</head>
<body>

</body>
节点的常用属性和方法

节点就是标签对象

方法: 通过具体的元素节点调用
getElementsByTagName() 方法,获取当前节点的指定标签名孩子节点 appendChild( oChildNode ) 方法,可以添加一个子节点,oChildNode 是要添加的孩子节点 

属性:
childNodes 属性,获取当前节点的所有子节点 firstChild 属性,获取当前节点的第一个子节点
lastChild 属性,获取当前节点的最后一个子节点
parentNode 属性,获取当前节点的父节点 
nextSibling 属性,获取当前节点的下一个节点 
previousSibling 属性,获取当前节点的上一个节点
className 用于获取或设置标签的 
class 属性值
innerHTML 属性,表示获取/设置起始标签和结束标签中的内容 innerText 属性,表示获取/设置起始标签和结束标签中的文本

正则表达式

后续补上 插个眼

jQuery

jQuery介绍

jQuery,顾名思义,也就是 JavaScript 和查询(Query),它就是辅助 JavaScript 开发的 js 类库。

jQuery 核心思想!!!

它的核心思想是 write less,do more(写得更少,做得更多),所以它实现了很多浏览器的兼容问题。

jQuery 流行程度

jQuery 现在已经成为最流行的 JavaScript 库,在世界前 10000 个访问最多的网站中,有超过 55%在使用

jQuery。

jQuery 好处!!!

jQuery 是免费、开源的,jQuery 的语法设计可以使开发更加便捷,例如操作文档对象、选择 DOM 元素、

制作动画效果、事件处理、使用 Ajax 以及其他功能

jQuery初体验

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
//..是查找上一级目录
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">

	//使用$()代替window.onload
	$(function(){
		//使用选择器获取按钮对象,随后绑定单击响应函数
		$("#btnId").click(function(){
			//弹出Hello
			alert('Hello');
		});
	});

</script>


</head>
<body>

	<button id="btnId">SayHello</button>

</body>

常见问题?

1、使用 jQuery 一定要引入 jQuery 库吗?

是,必须

2、jQuery 中的$到底是什么?

它是一个函数

3、怎么为按钮添加点击响应函数的?

1、使用 jQuery 查询到标签对象

2、使用标签对象.click( function(){} );

jQuery的核心函数

$ 是 jQuery 的核心函数,能完成 jQuery 的很多功能。
$()就是调用$这个函数
1、传入参数为 [ 函数 ] 时: 表示页面加载完成之后。
相当于 window.onload = function(){} 
2、传入参数为 [ HTML 字符串 ] 时: 会对我们创建这个 html 标签对象 
3、传入参数为 [ 选择器字符串 ] 时:
$(“#id 属性值”); id 选择器,根据 id 查询标签对象
$(“标签名”);标签名选择器,根据指定的标签名查询标签对象
$(“.class 属性值”); 类型选择器,可以根据 class 属性查询标签对象
4、传入参数为 [ DOM 对象 ] 时: 会把这个 dom 对象转换为 jQuery 对象

jQuery 对象和 dom 对象区分

什么是 jQuery 对象,什么是 dom 对象
Dom 对象 
1.通过 getElementById()查询出来的标签对象是 Dom 对象
2.通过 getElementsByName()查询出来的标签对象是 Dom 对象
3.通过 getElementsByTagName()查询出来的标签对象是 Dom 对象
4.通过 createElement() 方法创建的对象,是 Dom 对象 
DOM 对象 Alert 出来的效果是:[object HTML 标签名 Element] 

jQuery 对象
5.通过 JQuery 提供的 API 创建的对象,是 JQuery 对象
6.通过 JQuery 包装的 Dom 对象,也是 JQuery 对象 
7.通过 JQuery 提供的 API 查询到的对象,是 JQuery 对象
jQuery 对象 Alert 出来的效果是:[object Object]
jQuery 对象的本质
jQuery 对象是 dom 对象的数组 + jQuery 提供的一系列功能函数
jQuery 对象和 Dom 对象使用区别
jQuery 对象不能使用 DOM 对象的属性和方法 

DOM 对象也不能使用 jQuery 对象的属性和方法
Dom 对象和 jQuery 对象互转 (重点)
1、dom对象转化为jQuery对象

	1、先有 DOM 对象 

	2、$( DOM 对象 ) 就可以转换成为 jQuery 对象 

2jQuery对象转为dom对象

	1、先有 jQuery 对象 

	2、jQuery 对象[下标]取出相应的 DOM 对象

jQuery **选择器(**重点)

基本选择器
<head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Untitled Document</title>
      <style type="text/css">
         div, span, p {
             width: 140px;
             height: 140px;
             margin: 5px;
             background: #aaa;
             border: #000 1px solid;
             float: left;
             font-size: 17px;
             font-family: Verdana;
         }
         div.mini {
             width: 55px;
             height: 55px;
             background-color: #aaa;
             font-size: 12px;
         }

         div.hide {
             display: none;
         }
      </style>
      <script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
      <script type="text/javascript">

            //1.选择 id 为 one 的元素 "background-color","#bbffaa"
               $(function() {
                  $("#btn1").click(function () {
                     //css()方法可以设置和获取样式
                     $("#one").css("background-color","#bbffaa")
                  })
            //2.选择 class 为 mini 的所有元素
                  $("#btn2").click(function () {
                     $(".mini").css("background-color","#bbffaa")
                  })
            //3.选择 元素名是 div 的所有元素
                  $("#btn3").click(function () {
                     $("div").css("background-color","#bbffaa")
                  })
            //4.选择所有的元素
                  $("#btn4").click(function () {
                     $("*").css("background-color","#bbffaa")
                  })
                  //5.选择所有的 span 元素和id为two的元素
                  $("#btn5").click(function () {
                     $("span,#two").css("background-color","#bbffaa")
                  })
               })
      </script>
   </head>
   <body>
<!--   <div>
      <h1>基本选择器</h1>
   </div>  -->
      <input type="button" value="选择 id 为 one 的元素" id="btn1" />
      <input type="button" value="选择 class 为 mini 的所有元素" id="btn2" />
      <input type="button" value="选择 元素名是 div 的所有元素" id="btn3" />
      <input type="button" value="选择 所有的元素" id="btn4" />
      <input type="button" value="选择 所有的 span 元素和id为two的元素" id="btn5" />
      <br>
      <div class="one" id="one">
         id 为 one,class 为 one 的div
         <div class="mini">class为mini</div>
      </div>
      <div class="one" id="two" title="test">
         id为two,class为one,title为test的div
         <div class="mini" title="other">class为mini,title为other</div>
         <div class="mini" title="test">class为mini,title为test</div>
      </div>
      <div class="one">
         <div class="mini">class为mini</div>
         <div class="mini">class为mini</div>
         <div class="mini">class为mini</div>
         <div class="mini"></div>
      </div>
      <div class="one">
         <div class="mini">class为mini</div>
         <div class="mini">class为mini</div>
         <div class="mini">class为mini</div>
         <div class="mini" title="tesst">class为mini,title为tesst</div>
      </div>
      <div style="display:none;" class="none">style的display为"none"的div</div>
      <div class="hide">class为"hide"的div</div>
      <div>
         包含input的type为"hidden"的div<input type="hidden" size="8">
      </div>
      <span class="one" id="span">^^span元素^^</span>
   </body>
层级选择器
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		<style type="text/css">
			div, span, p {
			    width: 140px;
			    height: 140px;
			    margin: 5px;
			    background: #aaa;
			    border: #000 1px solid;
			    float: left;
			    font-size: 17px;
			    font-family: Verdana;
			}
			
			div.mini {
			    width: 55px;
			    height: 55px;
			    background-color: #aaa;
			    font-size: 12px;
			}
			
			div.hide {
			    display: none;
			}			
		</style>
		<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			$(document).ready(function(){
				//1.选择 body 内的所有 div 元素 
				$("#btn1").click(function(){
					$("body div").css("background", "#bbffaa");
				});

				//2.在 body 内, 选择div子元素  
				$("#btn2").click(function(){
					$("body>div").css("background", "#bbffaa");
				});

				//3.选择 id 为 one 的下一个 div 元素 
				$("#btn3").click(function(){
					$("#one+div").css("background", "#bbffaa");
				});

				//4.选择 id 为 two 的元素后面的所有 div 兄弟元素
				$("#btn4").click(function(){
					$("#two~div").css("background", "#bbffaa");
				});
			});
		</script>
	</head>
	<body>	
	
<!-- 	<div>
		<h1>层级选择器:根据元素的层级关系选择元素</h1>
		ancestor descendant  :
		parent > child 		   :
		prev + next 		   :
		prev ~ siblings 	   :
	</div>	 -->
		<input type="button" value="选择 body 内的所有 div 元素" id="btn1" />
		<input type="button" value="在 body 内, 选择div子元素" id="btn2" />
		<input type="button" value="选择 id 为 one 的下一个 div 元素" id="btn3" />
		<input type="button" value="选择 id 为 two 的元素后面的所有 div 兄弟元素" id="btn4" />
		<br><br>
		<div class="one" id="one">
			id 为 one,class 为 one 的div
			<div class="mini">class为mini</div>
		</div>
		<div class="one" id="two" title="test">
			id为two,class为one,title为test的div
			<div class="mini" title="other">class为mini,title为other</div>
			<div class="mini" title="test">class为mini,title为test</div>
		</div>
		<div class="one">
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini"></div>
		</div>
		<div class="one">
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini" title="tesst">class为mini,title为tesst</div>
		</div>
		<div style="display:none;" class="none">style的display为"none"的div</div>
		<div class="hide">class为"hide"的div</div>
		<div>
			包含input的type为"hidden"的div<input type="hidden" size="8">
		</div>
		<span id="span">^^span元素^^</span>
	</body>
过滤选择器
基本过滤选择器
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		<style type="text/css">
			div, span, p {
			    width: 140px;
			    height: 140px;
			    margin: 5px;
			    background: #aaa;
			    border: #000 1px solid;
			    float: left;
			    font-size: 17px;
			    font-family: Verdana;
			}
			
			div.mini {
			    width: 55px;
			    height: 55px;
			    background-color: #aaa;
			    font-size: 12px;
			}
			
			div.hide {
			    display: none;
			}			
		</style>
		<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			$(document).ready(function(){
				function anmateIt(){
					$("#mover").slideToggle("slow", anmateIt);
				}
				anmateIt();
			});
			
			$(document).ready(function(){
				//1.选择第一个 div 元素  
				$("#btn1").click(function(){
					$("div:first").css("background", "#bbffaa");
				});

				//2.选择最后一个 div 元素
				$("#btn2").click(function(){
					$("div:last").css("background", "#bbffaa");
				});

				//3.选择class不为 one 的所有 div 元素
				$("#btn3").click(function(){
					$("div:not(.one)").css("background", "#bbffaa");
				});

				//4.选择索引值为偶数的 div 元素
				$("#btn4").click(function(){
					$("div:even").css("background", "#bbffaa");
				});

				//5.选择索引值为奇数的 div 元素
				$("#btn5").click(function(){
					$("div:odd").css("background", "#bbffaa");
				});

				//6.选择索引值为大于 3 的 div 元素
				$("#btn6").click(function(){
					$("div:gt(3)").css("background", "#bbffaa");
				});

				//7.选择索引值为等于 3 的 div 元素
				$("#btn7").click(function(){
					$("div:eq(3)").css("background", "#bbffaa");
				});

				//8.选择索引值为小于 3 的 div 元素
				$("#btn8").click(function(){
					$("div:lt(3)").css("background", "#bbffaa");
				});

				//9.选择所有的标题元素
				$("#btn9").click(function(){
					$(":header").css("background", "#bbffaa");
				});

				//10.选择当前正在执行动画的所有元素
				$("#btn10").click(function(){
					$(":animated").css("background", "#bbffaa");
				});
				//14.选择没有执行动画的最后一个div
				$("#btn11").click(function(){
					$("div:not(:animated):last").css("background", "#bbffaa");
				});
			});
		</script>
	</head>
	<body>		
<!-- 	<div>
	:first 			
	:last 			
	:not(selector) 	
	:even 			
	:odd 			
	:eq(index)		 
	:gt(index) 		
	:lt(index) 		
	:header 		
	:animated 		
	</div> -->
		<input type="button" value="选择第一个 div 元素" id="btn1" />
		<input type="button" value="选择最后一个 div 元素" id="btn2" />
		<input type="button" value="选择class不为 one 的所有 div 元素" id="btn3" />
		<input type="button" value="选择索引值为偶数的 div 元素" id="btn4" />
		<input type="button" value="选择索引值为奇数的 div 元素" id="btn5" />
		<input type="button" value="选择索引值为大于 3 的 div 元素" id="btn6" />
		<input type="button" value="选择索引值为等于 3 的 div 元素" id="btn7" />
		<input type="button" value="选择索引值为小于 3 的 div 元素" id="btn8" />
		<input type="button" value="选择所有的标题元素" id="btn9" />
		<input type="button" value="选择当前正在执行动画的所有元素" id="btn10" />		
		<input type="button" value="选择没有执行动画的最后一个div" id="btn11" />
		
		<h3>基本选择器.</h3>
		<br><br>
		<div class="one" id="one">
			id 为 one,class 为 one 的div
			<div class="mini">class为mini</div>
		</div>
		<div class="one" id="two" title="test">
			id为two,class为one,title为test的div
			<div class="mini" title="other">class为mini,title为other</div>
			<div class="mini" title="test">class为mini,title为test</div>
		</div>
		<div class="one">
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini"></div>
		</div>
		<div class="one">
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini" title="tesst">class为mini,title为tesst</div>
		</div>
		<div style="display:none;" class="none">style的display为"none"的div</div>
		<div class="hide">class为"hide"的div</div>
		<div>
			包含input的type为"hidden"的div<input type="hidden" size="8">
		</div>
		<div id="mover">正在执行动画的div元素.</div>
	</body>
内容过滤选择器
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		<style type="text/css">
			div, span, p {
			    width: 140px;
			    height: 140px;
			    margin: 5px;
			    background: #aaa;
			    border: #000 1px solid;
			    float: left;
			    font-size: 17px;
			    font-family: Verdana;
			}
			
			div.mini {
			    width: 55px;
			    height: 55px;
			    background-color: #aaa;
			    font-size: 12px;
			}
			
			div.hide {
			    display: none;
			}			
		</style>
		<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			$(document).ready(function(){
				function anmateIt(){
					$("#mover").slideToggle("slow", anmateIt);
				}
	
				anmateIt();				
			});
			
			/** 
			:contains(text)   
			:empty 			  
			:has(selector) 	
			:parent 			
			*/
			$(document).ready(function(){
				//1.选择 含有文本 'di' 的 div 元素
				$("#btn1").click(function(){
					$("div:contains('di')").css("background", "#bbffaa");
				});

				//2.选择不包含子元素(或者文本元素) 的 div 空元素
				$("#btn2").click(function(){
					$("div:empty").css("background", "#bbffaa");
				});

				//3.选择含有 class 为 mini 元素的 div 元素
				$("#btn3").click(function(){
					$("div:has(.mini)").css("background", "#bbffaa");
				});

				//4.选择含有子元素(或者文本元素)的div元素
				$("#btn4").click(function(){
					$("div:parent").css("background", "#bbffaa");
				});
			});
		</script>
	</head>
	<body>		
		<input type="button" value="选择 含有文本 'di' 的 div 元素" id="btn1" />
		<input type="button" value="选择不包含子元素(或者文本元素) 的 div 空元素" id="btn2" />
		<input type="button" value="选择含有 class 为 mini 元素的 div 元素" id="btn3" />
		<input type="button" value="选择含有子元素(或者文本元素)的div元素" id="btn4" />
		
		<br><br>
		<div class="one" id="one">
			id 为 one,class 为 one 的div
			<div class="mini">class为mini</div>
		</div>
		<div class="one" id="two" title="test">
			id为two,class为one,title为test的div
			<div class="mini" title="other">class为mini,title为other</div>
			<div class="mini" title="test">class为mini,title为test</div>
		</div>
		<div class="one">
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini"></div>
		</div>
		<div class="one">
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini">class为mini</div>
			<div class="mini" title="tesst">class为mini,title为tesst</div>
		</div>
		<div style="display:none;" class="none">style的display为"none"的div</div>
		<div class="hide">class为"hide"的div</div>
		<div>
			包含input的type为"hidden"的div<input type="hidden" size="8">
		</div>
		<div id="mover">正在执行动画的div元素.</div>
	</body>
属性过滤选择器
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Untitled Document</title>
<style type="text/css">
div,span,p {
	width: 140px;
	height: 140px;
	margin: 5px;
	background: #aaa;
	border: #000 1px solid;
	float: left;
	font-size: 17px;
	font-family: Verdana;
}

div.mini {
	width: 55px;
	height: 55px;
	background-color: #aaa;
	font-size: 12px;
}

div.hide {
	display: none;
}
</style>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">
	/**
[attribute] 			
[attribute=value] 		
[attribute!=value] 		 
[attribute^=value] 		
[attribute$=value] 		
[attribute*=value] 		
[attrSel1][attrSel2][attrSelN]  
	
	
	*/
	$(function() {
		//1.选取含有 属性title 的div元素
		$("#btn1").click(function() {
			$("div[title]").css("background", "#bbffaa");
		});
		//2.选取 属性title值等于'test'的div元素
		$("#btn2").click(function() {
			$("div[title='test']").css("background", "#bbffaa");
		});
		//3.选取 属性title值不等于'test'的div元素(*没有属性title的也将被选中)
		$("#btn3").click(function() {
			$("div[title!='test']").css("background", "#bbffaa");
		});
		//4.选取 属性title值 以'te'开始 的div元素
		$("#btn4").click(function() {
			$("div[title^='te']").css("background", "#bbffaa");
		});
		//5.选取 属性title值 以'est'结束 的div元素
		$("#btn5").click(function() {
			$("div[title$='est']").css("background", "#bbffaa");
		});
		//6.选取 属性title值 含有'es'的div元素
		$("#btn6").click(function() {
			$("div[title*='est']").css("background", "#bbffaa");
		});
		
		//7.首先选取有属性id的div元素,然后在结果中 选取属性title值 含有'es'的 div 元素
		$("#btn7").click(function() {
			$("div[id][title='es']").css("background", "#bbffaa");
		});
		//8.选取 含有 title 属性值, 且title 属性值不等于 test 的 div 元素
		$("#btn8").click(function() {
			$("div[title!='test']").css("background", "#bbffaa");
		});
	});
</script>
</head>
<body>
	<input type="button" value="选取含有 属性title 的div元素." id="btn1" />
	<input type="button" value="选取 属性title值等于'test'的div元素." id="btn2" />
	<input type="button"
		value="选取 属性title值不等于'test'的div元素(没有属性title的也将被选中)." id="btn3" />
	<input type="button" value="选取 属性title值 以'te'开始 的div元素." id="btn4" />
	<input type="button" value="选取 属性title值 以'est'结束 的div元素." id="btn5" />
	<input type="button" value="选取 属性title值 含有'es'的div元素." id="btn6" />
	<input type="button"
		value="组合属性选择器,首先选取有属性id的div元素,然后在结果中 选取属性title值 含有'es'的 div 元素."
		id="btn7" />
	<input type="button"
		value="选取 含有 title 属性值, 且title 属性值不等于 test 的 div 元素." id="btn8" />

	<br>
	<br>
	<div class="one" id="one">
		id 为 one,class 为 one 的div
		<div class="mini">class为mini</div>
	</div>
	<div class="one" id="two" title="test">
		id为two,class为one,title为test的div
		<div class="mini" title="other">class为mini,title为other</div>
		<div class="mini" title="test">class为mini,title为test</div>
	</div>
	<div class="one">
		<div class="mini">class为mini</div>
		<div class="mini">class为mini</div>
		<div class="mini">class为mini</div>
		<div class="mini"></div>
	</div>
	<div class="one">
		<div class="mini">class为mini</div>
		<div class="mini">class为mini</div>
		<div class="mini">class为mini</div>
		<div class="mini" title="tesst">class为mini,title为tesst</div>
	</div>
	<div style="display: none;" class="none">style的display为"none"的div</div>
	<div class="hide">class为"hide"的div</div>
	<div>
		包含input的type为"hidden"的div<input type="hidden" value="123456789"
			size="8">
	</div>
	<div id="mover">正在执行动画的div元素.</div>
</body>
表单过滤选择器
<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Untitled Document</title>
		<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			$(function(){
				
				
		/**
		:input 		
		:text 		
		:password 	
		:radio 		
		:checkbox 	
		:submit 	
		:image 		
		:reset 		
		:button 	
		:file 		
		:hidden 	
		
		表单对象的属性
		:enabled 		
		:disabled 		
		:checked 		
		:selected 		
		*/
					
					
				//1.对表单内 可用input 赋值操作
				$("#btn1").click(function(){
					$(":text:enabled").val("New Value");
				});
				//2.对表单内 不可用input 赋值操作
				$("#btn2").click(function(){
					$(":text:disabled").val("New Value Too");
				});
				//3.获取多选框选中的个数  使用size()方法获取选取到的元素集合的元素个数
				$("#btn3").click(function(){
					alert($(":checkbox:checked").size())
				});
				//4.获取多选框,每个选中的value值
				$("#btn4").click(function(){
					var str = "";
					var eles = $(":checkbox:checked");
					console.log(eles);
					for(var i=0;i<eles.size();i++){
						str += "【"+$(eles[i]).val()+"】";
					}
					alert(str)
				});
				//5.获取下拉框选中的内容  
				$("#btn5").click(function(){
					var str = "";
					//注意这个选择器的特殊,因为select里面的option是真正的被选择项,
					//所以 :selected 选择器和 select[name='test']选择器的关系是子父关系
					//必须按照基本选择器选择后代的方法选
					var els = $("select option:selected");
					console.log(els);
					for(var i=0;i<els.size();i++){
						str += "【"+$(els[i]).val()+"】";
					}
					alert(str)
				});
			})	
		</script>
	</head>
	<body>
		<h3>表单对象属性过滤选择器</h3>
		 <button id="btn1">对表单内 可用input 赋值操作.</button>
  		 <button id="btn2">对表单内 不可用input 赋值操作.</button><br /><br />
		 <button id="btn3">获取多选框选中的个数.</button>
		 <button id="btn4">获取多选框选中的内容.</button><br /><br />
         <button id="btn5">获取下拉框选中的内容.</button><br /><br />
		 
		<form id="form1" action="#">			
			可用元素: <input name="add" value="可用文本框1"/><br>
			不可用元素: <input name="email" disabled="disabled" value="不可用文本框"/><br>
			可用元素: <input name="che" value="可用文本框2"/><br>
			不可用元素: <input name="name" disabled="disabled" value="不可用文本框"/><br>
			<br>
			
			多选框: <br>
			<input type="checkbox" name="newsletter" checked="checked" value="test1" />test1
			<input type="checkbox" name="newsletter" value="test2" />test2
			<input type="checkbox" name="newsletter" value="test3" />test3
			<input type="checkbox" name="newsletter" checked="checked" value="test4" />test4
			<input type="checkbox" name="newsletter" value="test5" />test5
			
			<br><br>
			下拉列表1: <br>
			<select name="test" multiple="multiple" style="height: 100px" id="sele1">
				<option>浙江</option>
				<option selected="selected">辽宁</option>
				<option>北京</option>
				<option selected="selected">天津</option>
				<option>广州</option>
				<option>湖北</option>
			</select>
			
			<br><br>
			下拉列表2: <br>
			<select name="test2">
				<option>浙江</option>
				<option>辽宁</option>
				<option selected="selected">北京</option>
				<option>天津</option>
				<option>广州</option>
				<option>湖北</option>
			</select>
		</form>		
	</body>

jQuery元素筛选

Tomcat

JavaWeb 的概念

a)什么是 JavaWeb

JavaWeb 是指,所有通过 Java 语言编写可以通过浏览器访问的程序的总称,叫 JavaWeb。

JavaWeb 是基于请求和响应来开发的。

b)什么是请求

请求是指客户端给服务器发送数据,叫请求 Request。

c)什么是响应*

响应是指服务器给客户端回传数据,叫响应 Response。

d)请求和响应的关系

请求和响应是成对出现的,有请求就有响应

web资源的分类

web 资源按实现的技术和呈现的效果的不同,又分为静态资源和动态资源两种。

静态资源:

html、css、js、txt、mp4 视频 , jpg 图片

动态资源:

jsp 页面、Servlet 程序

常用的 Web 服务器

Tomcat:由 Apache 组织提供的一种 Web 服务器,提供对 jsp 和 Servlet 的支持。它是一种轻量级的 javaWeb 容器(服务

器),也是当前应用最广的 JavaWeb 服务器(免费)。

Jboss:是一个遵从 JavaEE 规范的、开放源代码的、纯 Java 的 EJB 服务器,它支持所有的 JavaEE 规范(免费)。

GlassFish: 由 Oracle 公司开发的一款 JavaWeb 服务器,是一款强健的商业服务器,达到产品级质量(应用很少)。

Resin:是 CAUCHO 公司的产品,是一个非常流行的服务器,对 servlet 和 JSP 提供了良好的支持,

性能也比较优良,resin 自身采用 JAVA 语言开发(收费,应用比较多)。

WebLogic:是 Oracle 公司的产品,是目前应用最广泛的 Web 服务器,支持 JavaEE 规范,

而且不断的完善以适应新的开发要求,适合大型项目(收费,用的不多,适合大公司)。

Tomcat的使用

目录介绍

bin

专门用来存放 Tomcat 服务器的可执行程序

conf

专门用来存放 Tocmat 服务器的配置文件

lib

专门用来存放 Tomcat 服务器的 jar 包

logs

专门用来存放 Tomcat 服务器运行时输出的日记信息

temp

专门用来存放 Tomcdat 运行时产生的临时数据

webapps

专门用来存放部署的 Web 工程。

work

是 Tomcat 工作时的目录,用来存放 Tomcat 运行时 jsp 翻译为 Servlet 的源码,和 Session 钝化的目录。

启动Tomcat服务器

找到 Tomcat 目录下的 bin 目录下的 startup.bat 文件,双击,就可以启动 Tomcat 服务器。

如何测试 Tomcat 服务器启动成功???

打开浏览器,在浏览器地址栏中输入以下地址测试:

1、http://localhost:8080

2、http://127.0.0.1:8080

3、http://真实 ip:8080

另一种启动 tomcat 服务器的方式

1、打开命令行

2、cd 到 你的 Tomcat 的 bin 目录下

3、转换磁盘 c盘不用转(d: 回车)

4、敲入启动命令: catalina run

Tomcat 的停止

1、点击 tomcat 服务器窗口的 x 关闭按钮

2、把 Tomcat 服务器窗口置为当前窗口,然后按快捷键 Ctrl+C

3、找到 Tomcat bin 目录下的 shutdown.bat 双击,就可以停止 Tomcat 服务器

修改 Tomcat 的端口号

Mysql 默认的端口号是:3306

Tomcat 默认的端口号是:8080

找到 Tomcat 目录下的 conf 目录,找到 server.xml 配置文件。

(平时上百度:http://www.baidu.com:80

HTTP 协议默认的端口号是:80)

idea部署web项目到Tomcat

图片啥的太麻烦了 不弄了 一查就能查到

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值