1.一周学习内容

DBUtils 实现crud 操作
DbUtils :提供如关闭连接、装载JDBC驱动程序等常规工作的工具类,里面的所有方法都是静态的。主要方法如下:

  • public static void close(…) throws java.sql.SQLException: DbUtils类提供了三个重载的关闭方法。这些方法检查所提供的参数是不是NULL,如果不是的话,它们就关闭Connection、Statement和ResultSet。
  • public static void closeQuietly(…): 这一类方法不仅能在Connection、Statement和ResultSet为NULL情况下避免关闭,还能隐藏一些在程序中抛出的SQLException。
  • public static void commitAndClose(Connection conn)throws SQLException: 用来提交连接的事务,然后关闭连接
  • public static void commitAndCloseQuietly(Connection conn): 用来提交连接,然后关闭连接,并且在关闭连接时不抛出SQL异常。
  • public static void rollback(Connection conn)throws SQLException:允许conn为null,因为方法内部做了判断
  • public static void rollbackAndClose(Connection conn)throws SQLException
  • rollbackAndCloseQuietly(Connection)
  • public static boolean loadDriver(java.lang.String driverClassName):这一方装载并注册JDBC驱动程序,如果成功就返回true。使用该方法,你不需要捕捉这个异常ClassNotFoundException。

常用ResultSetHandler 接口和QueryRunner类

html css

相对路径:
相对于当前html页面所在地址
例如:
c:/demo/first.html中一周小节4 - 图1
则图片必须放在c:/demo/pic.jpg
c:/demo/first.html中一周小节4 - 图2
则图片必须放在c:/pic.jpg
超链接:
超链接显示内容
href属性:点击跳转作用,若无不能点击
target:空白页打开:_blank或当前页面打开 :_self 默认当前页面打开
name:设置锚点位置名字
超链接功能:
A超链接跳转:点击文字
B锚点设置和使用:
1位置设定:
2点击跳转锚点位置:
点击文字
列表
无序列表


  • 列表项

  • 列表项

  • 列表项


适合:1列或1行数据, 导航,新闻列表,菜单,列表标题
有序列表

  1. 列表项

  2. 列表项

  3. 列表项


定义列表

定义标题

定义描述

定义描述


适合:图文介绍,名词解释
————————————————————
表格
表格标签
行标签
单元格标签

格式:











表格标题
列名1列名2
第一行第一列第一行第二列
第二行第一列第二行第二列

优点:整齐,布局方便
缺点:层次深,所有数据加载完毕才能展示
适合:结构整齐,展示较少的数据
表单:


多行文本域:
列表框:
文件域: (需要在form中加属性enctype=”multipart/form-data”)
隐藏域:
只读:
禁用:

type: text文本,password密码,button普通按钮,submit提交按钮,image图片提交,reset重置按钮,radio单选,checkbox多选,file文件域,hidden隐藏域
域:


域标题




标注:

列表框:

注意:1.标签只要传值的都必须加属性name
2.点击按钮提交本form中的所有数据 可以不用加name
3.只读和隐藏可以传参 禁用不可以
——————————————————————-10.17
CSS
内部样式:








优先级:id选择器>类选择器>标签选择器
行内样式:<标签名 style=”color=red;font-size=12px”>
内部样式表:只能用于本页面
外部样式表:1.在页面外文件夹内新建一个CSS文件 把内部样式style标签里面的选择器写到CSS文件里
2.在本页head标签里加上

或者(一般不用)

优先级:行内样式>内部样式表>外部样式表(但是遵循就近原则)

后代选择器:
父选择器 子选择器{
样式名:样式值;
}
如:h3 strong{} 是定位到h3标签下的strong标签
1.两个标签之间用空格隔开
2.上面的h3 可以换成.class和#id
3.样式是子标签的样式,而且该选择器所选中的标签必须是父选择器选中的标签之内
交集选择器:
选择器1选择器2{
样式名:样式值;
}
如:h3.class{} 是定位到有class属性的h3标签
1.中间不能有空格
2.上面的.class可以换成#id
3.标签名是标签选择器定义的标签名同时添加class=类选择器定义的类名才能拥有该样式
并集选择器:
选择器1,选择器2{
样式名:样式值;
}
如:h3,.class,#id 是定位到有所有h3标签和class和id
1.中间用逗号隔开
2.选择器1和选择器2二者都享有该样式
注意:选择器标签属性小写,属性后面加“:”(不加等号!不加等号!不加等号!),“;”分割两个属性
不能用中文符号
类名id名用英语,不能数字开头,取名有意义
外部样式表.css文件中不用写style标签。
p标签不能放在div标签里面
超链接自带颜色属性 h1自带字体属性会阻断继承性
注释:html里面
CSS 里面/ /

盒模型

在CSS中,”box model”这一术语是用来设计和布局时使用,然后在网页中基本上都会显示一些方方正正的盒子。我们称为这种盒子叫盒模型。
盒模型有两种:标准模型和IE模型。我们在这里重点讲标准模型。

盒模型示意图

一周小节4 - 图3

盒模型的属性

width:内容的宽度
height: 内容的高度
padding:内边距,边框到内容的距离
border: 边框,就是指的盒子的宽度
margin:外边距,盒子边框到附近最近盒子的距离

如果让你做一个宽高402*402的盒子,您如何来设计呢?
答案有上万种,甚至上一种。

盒模型的计算

如果一个盒子设置了padding,border,width,height,margin(咱们先不要设置margin,margin有坑,后面课程会讲解)

盒子的真实宽度=width+2padding+2border
盒子的真实宽度=height+2padding+2border

那么在这里要注意看了。标准盒模型,width不等于盒子真实的宽度。
另外如果要保持盒子真实的宽度,那么加padding就一定要减width,减padding就一定要加width。真实高度一样设置。

padding

padding:就是内边距的意思,它是边框到内容之间的距离
另外padding的区域是有背景颜色的。并且背景颜色和内容的颜色一样。也就是说background-color这个属性将填充所有的border以内的区域

padding的设置

padding有四个方向,分别描述4个方向的padding。
描述的方法有两种
1、写小属性,分别设置不同方向的padding

1
2
3
4
padding-top: 30px;
padding-right: 30px;
padding-bottom: 30px;
padding-left: 30px;

2、写综合属性,用空格隔开

1
2
3
4
5
6
7
8
9
10
11
/上 右 下 左/
padding: 20px 30px 40px 50px ;

/上 左右 下/
padding: 20px 30px 40px;

/ 上下 左右/
padding: 20px 30px;

/上下左右/
padding: 20px;

一些标签默认有padding

比如ul标签,有默认的padding-left值。
那么我们一般在做站的时候,是要清除页面标签中默认的padding和margin。以便于我们更好的去调整元素的位置。
我们现在初学可以使用通配符选择器

1
2
3
4
*{
padding:0;
margin:0;
}

But,这种方法效率不高。
所以我们要使用并集选择器来选中页面中应有的标签(不同背,因为有人已经给咱们写好了这些清除默认的样式表,reset.css)

border(边框)

边框

border:边框的意思,描述盒子的边框
边框有三个要素: 粗细 线性样式 颜色

1 border: solid

如果颜色不写,默认是黑色。如果粗细不写,不显示边框。如果只写线性样式,默认的有上下左右 3px的宽度,实体样式,并且黑色的边框。

按照3要素来写border

1
2
3
4
5
6
7
border-width: 3px;
border-style: solid;
border-color: red;
/*
border-width: 5px 10px;
border-style: solid dotted double dashed;
border-color: red green yellow;

按照方向划分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
border-top-width: 10px;
border-top-color: red;
border-top-style: solid;

border-right-width: 10px;
border-right-color: red;
border-right-style: solid;

border-bottom-width: 10px;
border-bottom-color: red;
border-bottom-style: solid;

border-left-width: 10px;
border-left-color: red;
border-left-style:solid;
上面12条语句,相当于 bordr: 10px solid red;

另外还可以这样

1
2
3
4
border-top: 10px solid red;
border-right: 10px solid red;
border-bottom: 10px solid red;
border-left: 10pxb solid red;
border:none;
border:0;
表示border没有设置样式。

使用border来制作小三角

1
2
3
4
5
6
7
8
/小三角 箭头指向下方/
div{
width: 0;
height: 0;
border-bottom: 20px solid red;
border-left: 20px solid transparent;
border-right: 20px solid transparent;
}

margin

margin:外边距的意思。表示边框到最近盒子的距离.

1
2
3
4
5
6
7
8
/表示四个方向的外边距离为20px/
margin: 20px;
/表示盒子向下移动了30px/
margin-top: 30px;
/表示盒子向右移动了50px/
margin-left: 50px;

margin-bottom: 100px;

标准文档流

什么是标准文档流

宏观的将,我们的web页面和ps等设计软件有本质的区别,web 网页的制作,是个“流”,从上而下 ,像 “织毛衣”。而设计软件 ,想往哪里画东西,就去哪里画
标准文档流下 有哪些微观现象?

1.空白折叠现象

多个空格会被合并成一个空格显示到浏览器页面中。img标签换行写。会发现每张图片之间有间隙,如果在一行内写img标签,就解决了这个问题,但是我们不会这样去写我们的html结构。这种现象称为空白折叠现象。


2.高矮不齐,底边对齐

文字还有图片大小不一,都会让我们页面的元素出现高矮不齐的现象,但是在浏览器查看我们的页面总会发现底边对齐


3.自动换行,一行写不满,换行写

如果在一行内写文字,文字过多,那么浏览器会自动换行去显示我们的文字。

块级元素和行内元素
学习的初期,我们就要知道,标准文档流等级森严。标签分为两种等级:

  • 行内元素
  • 块级元素

比如h1标签和span,同时设置宽高,来看浏览器效果,那么你会发现:

行内元素和块级元素的区别:(非常重要)
行内元素:

  • 与其他行内元素并排;
  • 不能设置宽、高。默认的宽度,就是文字的宽度。

块级元素:

  • 霸占一行,不能与其他任何元素并列;
  • 能接受宽、高。如果不设置宽度,那么宽度将默认变为父亲的100%。

块级元素和行内元素的分类:
在以前的HTML知识中,我们已经将标签分过类,当时分为了:文本级、容器级。
从HTML的角度来讲,标签分为:

  • 文本级标签:p、span、a、b、i、u、em。
  • 容器级标签:div、h系列、li、dt、dd。

PS:为甚么说p是文本级标签呢?因为p里面只能放文字&图片&表单元素,p里面不能放h和ul,p里面也不能放p。

现在,从CSS的角度讲,CSS的分类和上面的很像,就p不一样:

  • 行内元素:除了p之外,所有的文本级标签,都是行内元素。p是个文本级,但是是个块级元素。
  • 块级元素:所有的容器级标签都是块级元素,还有p标签。

    块级元素和行内元素的相互转换

    我们可以通过display属性将块级元素和行内元素进行相互转换。display即“显示模式”。

    块级元素可以转换为行内元素:

    一旦,给一个块级元素(比如div)设置:
    display: inline;
    那么,这个标签将立即变为行内元素,此时它和一个span无异。inline就是“行内”。也就是说:

  • 此时这个div不能设置宽度、高度;

  • 此时这个div可以和别人并排了

    行内元素转换为块级元素:

    同样的道理,一旦给一个行内元素(比如span)设置:
    display: block;
    那么,这个标签将立即变为块级元素,此时它和一个div无异。block”是“块”的意思。也就是说:

  • 此时这个span能够设置宽度、高度

  • 此时这个span必须霸占一行了,别人无法和他并排
  • 如果不设置宽度,将撑满父亲

标准流里面的限制非常多,导致很多页面效果无法实现。如果我们现在就要并排、并且就要设置宽高,那该怎么办呢?办法是:移民!脱离标准流
css中一共有三种手段,使一个元素脱离标准文档流:

  • (1)浮动
  • (2)绝对定位
  • (3)固定定位

浮动

浮动是css里面布局最多的一个属性,也是很重要的一个属性。
float:表示浮动的意思。它有四个值。

  • none: 表示不浮动,默认
  • left: 表示左浮动
  • right:表示右浮动

看一个例子
html结构:

1
2
3


路飞学城

css样式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.box1{
width: 300px;
height: 300px;
background-color: red;
float:left;
}
.box2{
width: 400px;
height: 400px;
background-color: green;
float:right;
}
span{
float: left;
width: 100px;
height: 200px;
background-color: yellow;
}
  1. <br />我们会发现,三个元素并排显示,.box1和span因为是左浮动,紧挨在一起,这种现象贴边。.box2盒子因为右浮动,所以紧靠着右边。

那么浮动如果大家想学好,一定要知道它的四大特性
1.浮动的元素脱标
2.浮动的元素互相贴靠
3.浮动的元素由”子围”效果
4.收缩的效果

浮动元素脱标

脱标:就是脱离了标准文档流
看例子

1
2
3
4
小红

小黄

小马哥
小马哥
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
.box1{
width: 200px;
height: 200px;
background-color: red;
float: left;

}
.box2{
width: 400px;
height: 400px;
background-color: yellow;

}
span{
background-color: green;
float: left;
width: 300px;
height: 50px;
}

效果:红色盒子压盖住了黄色的盒子,一个行内的span标签竟然能够设置宽高了。
原因1:小红设置了浮动,小黄没有设置浮动,小红脱离了标准文档流,其实就是它不在页面中占位置了,此时浏览器认为小黄是标准文档流中的第一个盒子。所以就渲染到了页面中的第一个位置上。这种现象,也有一种叫法,浮动元素“飘起来了”,但我不建议大家这样叫。
原因2:所有的标签一旦设置浮动,就能够并排,并且都不区分行内、块状元素,都能够设置宽高

浮动元素互相贴靠

看例子
html结构

1
2
3
1


2

3

css样式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.box1{
width: 100px;
height: 400px;
float: left;
background-color: red;
}
.box2{
width: 150px;
height: 450px;
float: left;
background-color: yellow;
}
.box3{
width: 300px;
height: 300px;
float: left;
background-color: green;
}

效果发现:
如果父元素有足够的空间,那么3哥紧靠着2哥,2哥紧靠着1哥,1哥靠着边。
如果没有足够的空间,那么就会靠着1哥,如果再没有足够的空间靠着1哥,自己往边靠

浮动元素字围效果

html结构:

1
2
3
4
5
6

一周小节4 - 图4


这里面放超多东西


css样式:

1
2
3
4
5
6
7
8
9
10
*{
padding: 0;
margin: 0;
}
div{
float: left;
}
p{
background-color: #666;
}

效果发现:所谓字围效果,当div浮动,p不浮动,div遮盖住了p,div的层级提高,但是p中的文字不会被遮盖,此时就形成了字围效果。

浮动元素紧凑效果

收缩:一个浮动元素。如果没有设置width,那么就自动收缩为文字的宽度(这点跟行内元素很像)
html结构:


alex

css样式:
div{
float: left;
background-color: red;
}
大家一定要谨记:关于浮动,我们初期一定要遵循一个原则,永远不是一个盒子单独浮动,要浮动就要一起浮动。另外,有浮动,一定要清除浮动,

为什么要清除浮动

在页面布局的时候,每个结构中的父元素的高度,我们一般不会设置。(为什么?)
大家想,如果我第一版的页面的写完了,感觉非常爽,突然隔了一个月,老板说页面某一块的区域,我要加点内容,或者我觉得图片要缩小一下。这样的需求在工作中非常常见的。真想打他啊。那么此时作为一个前端小白,肯定是去每个地方加内容,改图片,然后修改父盒子的高度。那问题来了,这样不影响开发效率吗?答案是肯定的。
看一个效果:
html效果:









css样式:
{
padding: 0;
margin: 0;

}
.father{
width: 1126px;
/
子元素浮动 父盒子一般不设置高度/

/
出现这种问题,我们要清除浮动带来影响/
/
height: 300px;*/

}
.box1{
width: 200px;

height: 500px;
float: left;
background-color: red;
}
.box2{
width: 300px;
height: 200px;
float: left;
background-color: green;
}
.box3{
width: 400px;
float: left;
height: 100px;
background-color: blue;
}
.father2{
width: 1126px;
height: 600px;
background-color: purple;
}
效果发现:如果不给父盒子一个高度,那么浮动子元素是不会填充父盒子的高度,那么此时.father2的盒子就会跑到第一个位置上,影响页面布局。
那么我们知道,浮动元素确实能实现我们页面元素并排的效果,这是它的好处,同时它还带来了页面布局极大的错乱!!!所以我们要清除浮动
还好还好。我们有多种清除浮动的方法,在这里给大家介绍四种:

  1. 给父盒子设置高度
  2. clear:both
  3. 伪元素清除法
  4. overflow:hidden

    给父盒子设置高度

    这个方法给大家上个代码介绍,它的使用不灵活,一般会常用页面中固定高度的,并且子元素并排显示的布局。比如:导航栏

    clear:both

    clear:意思就是清除的意思。
    有三个值:
    left:当前元素左边不允许有浮动元素
    right:当前元素右边不允许有浮动元素
    both:当前元素左右两边不允许有浮动元素
    给浮动元素的后面加一个空的div,并且该元素不浮动,然后设置clear:both。
    html结构:

    1. <ul><br /> <li>Python</li><br /> <li>web</li><br /> <li>linux</li><br /> <!-- 给浮动元素最后面加一个空的div 并且该元素不浮动 ,然后设置clear:both 清除别人对我的浮动影响--><br /> <!-- 内墙法 --><br /> <!-- 无缘无故加了div元素 结构冗余 --><br /> <div class="clear"></div><br /> <br /> </ul><br /> <br /></div><br /><div class="box"><br /> <br /></div> <br />css样式 <br />*{<br /> padding: 0;<br /> margin: 0;<br /> }<br /> ul{<br /> list-style: none;<br /> <br /> }<br /> <br /> <br /> div{<br /> width: 400px;<br /> <br /> }<br /> <br /> <br /> div ul li {<br /> float: left;<br /> width: 100px;<br /> height: 40px;<br /> background-color: red;<br /> }<br /> .box{<br /> width: 200px;<br /> height: 100px;<br /> background-color: yellow;<br /> }<br /> .clear{<br /> clear: both;<br /> }

    伪元素清除法(常用)

    给浮动子元素的父盒子,也就是不浮动元素,添加一个clearfix的类,然后设置

.clearfix:after{
  1. /*必须要写这三句话*/<br /> content: '.';<br /> clear: both;<br /> display: block;<br />}<br />新浪首页推荐伪元素清除法的写法

content: “.”;
display: block;
height: 0;
clear: both;
visibility: hidden

overflow:hidden(常用)

overflow属性规定当内容溢出元素框时发生的事情。
说明:
这个属性定义溢出元素内容区的内容会如何处理。如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机制。因此,有可能即使元素框中可以放下所有内容也会出现滚动条。

有五个值:

描述
visible 默认值。内容不会被修剪,会呈现在元素框之外。
hidden 内容会被修剪,并且其余内容是不可见的。
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit 规定应该从父元素继承 overflow 属性的值。

margin的用法

margin塌陷问题

当时说到了盒模型,盒模型包含着margin,为什么要在这里说margin呢?因为元素和元素在垂直方向上margin里面有坑。
我们来看一个例子:
html结构:

1
2
3
4



css样式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
*{
padding: 0;
margin: 0;
}
.father{
width: 400px;
overflow: hidden;
border: 1px solid gray;
}
.box1{
width: 300px;
height: 200px;
background-color: red;
margin-bottom: 20px;}
.box2{
width: 400px;
height: 300px;
background-color: green;
margin-top: 50px;
}


当给两个标准流下兄弟盒子 设置垂直方向上的margin时,那么以较大的为准,那么我们称这种现象叫塌陷。没法解决,我们称为这种技巧叫“奇淫技巧”。记住这种现象,在布局垂直方向盒子的时候主要margin的用法。
当我们给两个标准流下的兄弟盒子设置浮动之后,就不会出现margin塌陷的问题。

margin:0 auto;

  1. width: 780px;<br /> height: 50px;<br /> background-color: red;<br /> /*水平居中盒子*/<br /> margin: 0px auto;<br /> /*水平居中文字*/<br /> text-align: center;<br /> <br /> }<br />当一个div元素设置margin0 auto;时就会居中盒子,那我们知道margin:0 auto;表示上下外边距离为0,左右为auto的距离,那么auto是什么意思呢?<br />设置margin-left:auto;我们发现盒子尽可能大的右边有很大的距离,没有什么意义。当设置margin-right:auto;我们发现盒子尽可能大的左边有很大的距离。当两条语句并存的时候,我们发现盒子尽可能大的左右两边有很大的距离。此时我们就发现盒子居中了。

另外如何给盒子设置浮动,那么margin:0 auto失效。

使用margin:0 auto;注意点:
1.使用margin: 0 auto;水平居中盒子必须有width,要有明确width,文字水平居中使用text-align: center;
2.只有标准流下的盒子 才能使用margin:0 auto;
当一个盒子浮动了,固定定位,绝对定位(后面会讲),margin:0 auto; 不能用了
3.margin:0 auto;居中盒子。而不是居中文本,文字水平居中使用text-align: center;
另外大家一定要知道margin属性是描述兄弟盒子的关系,而padding描述的是父子盒子的关系

善于使用父亲的padding,而不是margin

image.png
如果让大家实现如图的效果,应该有不少的同学做不出来。
那么我们来看看这个案例,它的坑在哪里?
下面这个代码应该是大家都会去写的代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
*{
padding: 0;
margin: 0;
}
.father{
width: 300px;
height: 300px;
background-color: blue;
}
.xiongda{
width: 100px;
height: 100px;
background-color: orange;

margin-top: 30px;
}


image.png
因为父亲没有border,那么儿子margin-top实际上踹的是“流” 踹的是行,所以父亲掉下来了,一旦给父亲一个border发现就好了。
那么问题来了,我们不可能在页面中无缘无故的去给盒子加一个border,所以此时的解决方案只有一种。就是使用父亲的padding。让子盒子挤下来。

2.一周学习经验分享

html 和css 感觉像 Hbuilder 和 webstorm 你进去敲它会有很多提示,有的还会自动补全代码.借用工具的方便吧,上手会很快,实在不会可以把它上面提示的方法都试一遍,自己动手试一下很快就回了

3.一周学习不足与需要改进的地方

因为这个前端学过,当时学得还行,再加上工具之便利,所以有时会听得没那么认真.实际上我的js都忘光了.只是还没讲到,所以后面就希望收心.

4.一周学习状态

状态不佳,效果不错