---------------------- 路漫漫其修远兮,吾将上下而求索。学无止境!----------------------
正则表达式
是一种专门用于操作字符串的规则。通过一些符号来表示,简化对字符串的复杂操作。
弊端:阅读性差
常见操作:
1.匹配: String matches(regex)
2.查找: Pattern,Matcher
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(String);
while(m.find){
System.out.println9m.group);
}
3.切割:String split(regex);
4.替换:String replaceAll(regex,str);
eg:
String regex = "\\d{5,}";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(String);
while(m.find()){
String s = m.group();
s.replaceAll(regex,"#");//将符合规则的片段替换成#
}
网页爬虫:
通过网络以及io读取网页的源文件,并通过规则获取网页中符合规则的数据,比如mail爬虫:
String mailreg = "[a-zA-Z0-9_]{6,12}@[a-zA-Z0-9]+(\\.[a-zA-Z])+";
正则表达式中组的含义:
将部分规则进行封装以便于重用。\\num反向引用指定组
html:超文本标记语言
html中的数据都会封装在标签当中,因为可以通过改变标签中的属性值对封装在标签内的数据进行操作确定html的范围,<html></html>
<html>
<head></head>
<body></body>
</html>
head:该网页的属性信息,比如:标题。
body:网页显示的数据。
标签特点:对于数据进行封装,那么就有开始标签和结束标签,但是也有一些标签只体现单一更能,所以不需要结束标签,规范中要求 标签必须要结束,所以这样的标签在内部结束。
如:<br/> <hr/> <img/> <input/>
标签格式:<标签名.属性名="属性值">数据</标签名>
<标签名 属性名="属性值"/>
创建标签:
1.字体:<font>
<font size = "7" color="red" >数据<font/>
特殊部分:如果在页面显示一些特殊符号,需要进行转义。
<: <
>: >
&: &
空格:
标题:<h1><h2><h3><h4><h5><h6>
2.列表标签<dl></dl>
上层项目:<dt>
下层项目:<dd>
项目符号标签:<ul> <ol>这两个标签中的列表项都由<li>标签封装。
3.图像标签:<img>
<img src="" alt="图像说明文字"/>
4.表格标签:<table>
表格由行所组成,行由单元格组成。
表格中默认都有一个tbody标签。
标题标签:<caption>
<table border="1" bordercolor="red" width="60%" cellpadding="10"
cellspacing="0">
<tr>
<th></th>
<th></th>
</tr>
<tr>
<td></td>
<td></td>
</tr>
表格是常用的标签,用于对数据进行格式化。
5.超链接:<a>
<a href="http://www.baidu.com" target="_blank" title="这是什么样子的呢?">走进百度</a>
当被点击后,会启动引擎对应的解析程序。去查找指定主机。
a.先找本地主机的hosts文件。如果没有找到该主机对应的ip地址。
b.去公网DNS服务器上找相应的ip地址。
<a href="mailto:aa@164.com?subject=haha&cc=bb@163.com">联系我们<a/>
当点击超链接时,就会出现邮件相关联的解析程序,本机默认的是outlook。
超链接的另一个作用:
定位标记:
<a name="top">top位置</a>
<a href="#top">回到顶部</a>
6.表单标签:
该标签是可以和服务器端进行交互的。
<form>表单中的元素:
<input>:该标签因为type的值不同,所对应的组件也不一样。
type属性:
a.text:文本框,输入的文本可见
b.password:密码框,输入的文本不可见
c.radio:单选框。注意,要被选中,必须要给单选框定义一个属性name当有多个单选框时,只能有一个被选中,那么这些单选框的name值必须相同。
d.checkbox:复选框,当对多个数据进行同时选中时使用时。
e.file:文件组件,常用于附件、文件的上传。
f.hidden:隐藏组件,该组件不会在页面上显示,但是其定义的name和value可以提交到服务器端。
g.button:按钮组件,自定义一个按钮默认是没有任何效果的,可以通过注册事件为按钮添加事件。
h.reset:重置按钮,将组件中被操作的效果还原到初始状态。
i.submit:提交按钮,将组件中的数据提交到指定的目的地。
j:image图像组件,为了避免提交按钮的难看,可以通过image的src属性链接一个图片按钮完成提交效果。
下拉菜单:<select>
每一个下拉菜单都由option进行封装。
<select>
<option></option>
</select>
文本区域:<textarea>
表单组件通常都要定义name和value属性,因为要将数据发送到服务端,服务端只有知道了该name的值才可以对提交的数据进行分别获取。
form中常见的属性:
action:指定数据提交的目的地。
method:提交方式:两种提交方式get和post。get为默认。
get提交:会将提交的数据显示在地址栏上;提交数据的体积受地址栏的影响;对于敏感信息不安全。将提交信息封装在请求行,也就是http消息头之前。
post提交:不会将数据显示到地址栏;可以提交大体积数据;对于敏感信息安全。将提交信息封装在数据体,也就是http消息头之后的空行后。
对于服务端而言,表单提交尽量用post,因为涉及到编码问题。以为Tomcat服务端的默认编码是ISO8859-1:
对于post提交的中文,在服务端可以直接使用setCharacterEncoding("gbk")就可以解决。
对于get提交的中文,在服务器端只能通过ISO8859-1将数据编码一次,再通过指定的码表如GBK解码。
使用表单不一定要定义form标签。只有需要将数据提交到服务器端的时候才要定义form标签。
CSS层叠样式表
将网页中的样式分离出来,完全由css进行控制。增强样式表的复用性及可扩展性。
格式:选择器{属性名:属性值;属性名:属性值;...}
css和html代码相结合的四种方式:
1.每一个html标签都有一个style属性;
2.当页面有多个标签有相同样式时,可以进行复用。
<style>
css代码...
</style>
3.当有多个页面中的标签的样式相同时,还可以将样式单独封装成一个css文件。通过每个页面中定义
<style>
@import url("1.css");
</style>
4.通过html中head标签中的link标签连接一个css文件。
<link rel="stylesheet" href="1.css"/>
技巧:
为了提高相同的样式表的复用性以及可扩展性,可以将多个标签样式进行单独定义,并封装成css文件。p.css,div.css...在一个css文件中使用css的import将多个标签样式文件导入。然后在html页面上,使用link标签导入这个总的css文件即可。
1.cc
@import url("p.css");
@import url("div.css");
<link rel="stylesheet" href="1.css"/>
---------------------------------------------------------
选择器:其实就是样式要作用的标签容器。
当样式分离后,html作用在于用标签封装数据,然后将css加载到指定标签上。
选择器的基本分类:
1.标签选择器:其实就是html中的每一个标签名。
2.类选择器:其实就是每一个标签中class属性,用.的形式表示。主要来给css所使用,可以对不同的标签进行相同样式设定。
3.ID选择器:其实就是一个标签中ID属性,但是要保证ID唯一性,用#来标识。ID不仅可以被css所使用,还可以被javascript所使用。
选择器优先级:ID>class>标签
扩展选择器:
1.关联选择器,对标签中的标签进行样式设定。选择器 选择器..
2.组合选择器,对多个选择器进行相同样式定义。将多个选择器通过,隔开的形式。
3.伪元素选择器:其实就是元素的一种状态。
a:link :超链接被点前状态。
a:visited :超链接点击后状态。
a:hover :悬停在超链接上。
a:active :点击超链接时。
在定义这些状态时,有一个顺序:LVHA
p:first-letter
p:first-line
:focus :很遗憾,IE6不支持,但FF支持。
网页设计的时候。div+css。
div:行级区域
span:块级区域
p:行级区域。p中不要嵌套div
javascript
是Netscape公司语言,基于对象和事件驱动和java的不同之处。 与java的不同之处:
1.所属公司不一样,java是sun公司,现在是orcale公司。
2.js是基于对象,java是面向对象。
3.js是由浏览器解释并执行,java是由jvm解释并执行。
4.js是弱类型的语言,java是强类型。
5.js是非严谨的,java是严谨的。
javascript运行在客户端。 javascript与html结合方式:
1.通过定义<script></script>标签将js代码存入其中,并指定type属性。方便与浏览器启动指定的解析引擎。
2.也可以通过<script>标签,使用src属性连接一个指定的js文件进来。
javascript的基本语法:
1.变量。
通过var关键字定义变量,该变量可以赋予不同类型的常量。
var x=3;
x="abc";
特殊的常量 undefined
2.语句。
if,switch,while,do,while,for.
使用逻辑运算符进行布尔表达式连接的时候,需要是短路与和短路或。&&||。因为在js中,非0为true,0为false;非null为true,null为false。
js特有的语句:
with(对象){}:可以确定对象所使用的范围。在范围内,可以直接使用指定对象的属性和行为,用.简化对象的操作。
for(变量 in 对象){}:可以对对象的属性及行为进行遍历。
3.数组。
对于js的数组的特点:该数组的长度是可变的,类似与java中的集合。 该数组中可以存放的元素类型是可以不同的。
定格格式:
var arr = [3,true,"abc"];
var arr = new Array();//定义一个临时容器。
var arr = [[3,1,3],[2,4]];//二维数组
操作形式和java一样,都是通过for循环进行遍历,同时也使用了指针的思想。
4.函数。
通过function关键字定义函数。
a.一般函数:
格式:function 函数名(形式参数...){
执行语句;
return 返回值;
}
通常为了提高代码的复用性可以将代码封装成函数。 两个明确:
*.明确该功能实现后的结果。
*.该功能在实现过程中是否有未知内容参与运算。
b.动态函数:
使用function对象。
var show = new Function("x","y","return x+y");
动态函数的特点:可以将参数列表和方法作为参数传递。
c.匿名函数:
一般函数的简写形式。
function(){}
匿名函数通常可以用于事件的处理的, 如:
window.οnlοad= function(){
alert("onload over");
}
在函数使用时注意的地方:
function show(){
return "show run";
}
//下面两种方法都正确
var method = show();//show方法运行后的结果赋值给method变量。
var method = show;//将show指向的对象的地址赋值给method,那么method也指向了该对象。那么就可以使用method()的形式来调用这个方法。
javascript中的已定义好的一些对象。
1.String,Math,Date,Array,Function 这些对象都有一个属性叫做prototype原型。prototype可以获取指定的对象引用,可以通过该引用给已有的对象赋予一些新的功能。那么在使用该对象时,可以直接调用定义好的新功能。
function getMax(){
获取最大值;
}
Array.prototype.getMax=getMax;//这样就可以将getMax()方法添加到Array对象中。
2.常见的全局方法。
parseInt(numstr,[radix]);//将数字格式的字符串转成整数。如果指定了基数radix,那么numstr,就会按照执行基数进行转换。
---------------------- 路漫漫其修远兮,吾将上下而求索。学无止境!----------------------
我的博客:http://blog.csdn.net/helloxiaobi