前5天的上课笔记

html(网页)程序必须以<html>开始,以</html>结束。
html程序包含两部分<head></head>和<body></body>
标签:
字体标签:
文字标签<font color="" size="1-7">
注释标签<!-- -->
特殊字符&nbsp;(空格)
列表标签:
一般:
<dl>定义列表的范围</dl>
<dt>定义上层内容</dt>
<dd>定义下层内容</dd>


有序:
<ol>
<li>

</li>
</ol>


无序:
<ul type="disc(circle)(square)">
<li>
</li>
</ul>


图形标签:
<img src="图片路径" >
有属性:
width:图片宽度
height:图片的高度
border:图片的边框的粗细
alt: 显示在图片上面的内容
注意: 鼠标移动到图片上面,稍等片刻出现文字
      如果图片找不到,显示alt的内容
      这个属性在某些浏览器不能显示的

超链接标签:
<a herf="超链接的地址">显示在页面上的内容</a>
target:超链接的打开方式
  在默认的情况下,打开方式在当前的页面打开
target里面的值:_self,当前页面打开;   _blank,在新标签页打开


表格标签:
标题标签:
<caption>标题内容</caption>


<table></table>
有属性
border:设置表格线
bordercolor:设置表格线的颜色
cellspacing: 设置单元格之间的距离
cellpadding: 设置文字和单元格之间的距离
width: 设置表格的宽度
height:设置表格的高度


在<table>
<tr> //行
</td> //列(是一个个的单元格),有属性align(对其)left center right
<td>
</tr>
 </table>


合并单元格:
<td rowspan="跨行">
<td colspan="跨列">

表单标签:
<form action="提交的地址" methed="get"></form>
get和post提交,在默认情况下,提交方式是get提交
get提交方式会在地址栏携带数据,安全性很差
post提交方式地址栏不会携带数据,安全性比较高,数据在请求体里面(讲到http协议时候详细说)


输入项:
输入项必要有name属性(name最好不要是中文)
在单选输入项和复选输入项以及下拉选择输入项里面都需要有属性value,设置的值
(placeholder="虚的文字")
普通输入项 <input type="text"/>
  密码输入项 <input type="password"/>
  单选输入项 <input type="radio"/>
要求:单选输入项里面必须有name属性,同时name的属性值必须要相同
设置默认选中,使用属性 checked="checked"
复选输入项 <input type="checkbox"/>
要求:单选输入项里面必须有name属性,同时name的属性值必须要相同
设置默认选中,使用属性 checked="checked"
文件输入项,上传文件的。<input type="file"/>
隐藏项,这个值不会显示在页面上,但是提交表单也可以提交到服务器上
<input type="hidden"/>
普通按钮 <input type="button"/>
可以写value属性,设置输入项的默认值


下面的两个输入项不是使用input标签进行封装的
下拉选择输入项
* <select>
<option>AAAA</option>
<option>BBBB</option>
<option>CCCC</option>
</select>
使用属性 selected="selected" 默认选中


文本域
<textarea cols="10" rows="5"></textarea>


提交按钮和其他的按钮
提交按钮: <input type="submit"/>
使用图片进行提交:<input type="image" src="图片路径"/>


重置按钮:<input type="reset"/>
属性 value:设置重置按钮显示的内容
不是做清空表单输入项的操作,使表单输入项回到初始状态


CSS
使用css目的是:把网页的内容和样式进行分离,利用代码的维护。
css和html有四种结合方式
第一种:使用html标签里面的属性 style="css的代码"
* 代码 <div style="background-color:red;color:blue;">


第二种:使用html的标签 
<style type="text/css">
css的代码;
</style>
代码
<style type="text/css">
div {
background-color:red;
color:black;
}
</style>

第三种:使用html标签实现  link,写在head里面
首先创建css文件,在css文件里面写css代码
在html中使用link标签引入css文件
代码 <link rel="stylesheet" type="text/css" href="1.css"/>

第四种:使用html的style标签,在标签里面使用语句样式操作
首先创建css文件,在css文件里面写css代码
写style标签,在标签里面 @import url(css路径);


css的选择器
css优先级
在一般情况下,优先级是后加载的优先级高
格式规范:  属性名称1:属性值1;属性名称2:属性值2;
选择器:作用在哪个标签上(要对哪个标签里面的内容进行操作)
css有三个基本选择
第一个:标签选择器
使用标签名称作为选择器
div {
  background-color: red;
}


第二个:class选择器
每个html标签上面都有一个属性class,通过设置class属性的值
.haha {
background-color:red;
}


第三个:id选择器
每个html标签都有一个属性id,通过设置id的属性值
一个html文档中id值必须唯一
#hehe {
background-color:green;
}


选择器的优先级
style > id选择器 > class选择器 > 标签选择器


css的扩展选择器
关联选择器
设置嵌套标签的样式
div p {
background-color:red;
}


组合选择器
设置不同的标签具有相同的样式
div,p {
background-color:green;
}


伪元素选择器
比如超链接为例,
状态:原始状态、鼠标放上去的状态、点击状态、点击之后的状态

     :link       :hover          :active      :visited



JS(JavaScript):是基于对象和事件驱动的脚本语言,应用于客户端
JS提供对象,让我们直接使用
JS三特性:
交互性:
安全性:JS不能访问本地硬盘里面的文件
跨平台:只要在系统里面安装了支持JS的浏览器,就可以运行JS

Java和JS的区别
Java是sun公司;JS是网警公司
Java是面向对象;JS是基于对象
Java跨平台依靠虚拟机;JS只需要浏览器可以运行
Java是强类型语言:JS是弱类型语言
Java变量是有类型
JS定义变量都是一个关键字var
Java运行先编译在通过虚拟机运行;JS直接用浏览器

JS三部分
ECMAScript:由ECMA组织制定语句,语法
BOM:broswer objext model 浏览器对象模型
DOM:document objext model 文档对象模型

JS和HTML的结合方式
1;使用HTML标签<script type="text/javascript">js代码</script>
2;使用HTML标签,引入外部的JS文件<script type="text/javascript" src="引入的js文件"></script>
注:不要在script中写js代码
   结束代码是</script>


JS的原始类型和变量声明:
string:字符串类型
number:数组类型
boolean:布尔类型true false
null:对象引用为空 特殊的引用类型
undefined:定义了一个变量,但是没有赋值


typeof(变量的名称) 查看当前变量的类型


JS语句:
if
swich:
while循环语句:
for循环语句:
document.write():向页面输出内容,可以直接输出HTML代码
"" 0 null   都是false,判断的时候没有用


JS的运算符
运算符和Java基本相同
不同处:
JS不区分整数和小数


字符串的相加和相减
相加是拼接
相减是正在的相减的运算(如果字符串不是数字,则提示NaN(不是数字))
boolean的相加和相减
true相当于1;false相当于0

==和===的区别
==比较的是值
===比较的是值和类型

JS数组:
var arr = [];
var arr = new Array(3); 数组长度为3,也是用下标来赋值
数组属性length能查看数组长度(长度可变,长度是最大的下标+1中间没有赋值的话直接默认为空字符串)

JS的String对象:
length:对象的长度
与Java相似的方法
CharAt();返回指定索引的字符
concat();连接字符串
indexOf();返回指定字符的索引,没有找到返回-1
substr(start,length);从开始位置,向后截取长度
substring(start,end);从开始位置到结束位置[  )


JS的Array对象:
join(); 把数组根据指定字符进行分割


JS的Math对象:
Math.方法名(变量)   直接调用
random();  生成0-1之间的随机数


JS的Date对象:
new Date(); 生成当前的时间
toLocaleString(); 转化成本地的时间格式
getFullYear(); 得到当前的年(4位)

JS的RegExp对象:(正则表达式对象)
"[]"(/正则表达式/     这也是一种写法)
new RegExp("正则表达式");  直接使用
test(); 字符串中是否存在正则表达式,返回值是boolean

JS的bom对象:
<script>标签放置的位置:建议放置</body>后
window对象:(窗口对象,顶级对象)
setInterval("js代码",毫秒数)    在指定的时间内,重复执行js代码
一个参数是执行的js代码,第二个参数是毫秒数
setTimeout("js代码",毫秒数)     在指定时间后,执行js代码
clearInterval(id); 清除 setInterval 设定的值
clearTimeout(id); 清除 setTimeout 设置的值


JS的全局变量和局部变量:
全局变量:
在js里面,如果在一个script标签里面定义变量,在页面中的其他script标签里面都可以使用。(要注意上下顺序)
局部变量:
在js的方法里面定义一个变量,这个变量只能在方法里面使用。


JS的全局函数:
eval();把字符串当成JS代码执行
isNaN();检查某个值是否不是数字(不是数字返回true,反之为false)
parseInt();把字符串转换成整数
encodeURI();编码
decodeURI();解码



JS高级应用
JS定义函数有三种方式:
1,关键字function 方法名称(参数列表){
方法体和返回值;
}
不需要写类型var;可以不写返回值

2,匿名函数,使用function(参数列表){
方法体和返回值;
}


3,动态函数(方法体和返回值,包含参数列表都是通过参数传递进来的)
使用JS里面的内置对象new Function(参数列表,方法体和返回值)


JS函数重载:
JS中不存在重载,但是能模拟(arguments有几个参数,就几个参数相加)
同名函数,后面的会覆盖前面的


JS事件:
在HTML标签上面绑定事件,有三种
1,在标签里面加上事件的属性,调用js方法
2,首先得到要绑定的标签,使用事件的属性
3,首先得到要绑定的标签,写js的代码


DOM对象:文档对象模型
使用dom里面提供的对象里面的属性和方法,对标记型文档进行操作
dom解析HTML是树形结构
document对象,代表整个文档
write(),向页面输出内容,可以输出html代码
getElementById(): 获取标签对象,通过标签的id值进行获取
getElementsByName(): 根据标签里面name属性的值得到标签对象,返回数组
getElementsByTagName():根据标签的名称获取标签对象,返回数组
element对象;代表整个文档
attribute属性对象
text文本对象
Node节点对象,是这些对象的父对象,在找不到想要使用的方法,到Node里面找
DHTML:以下技术的集合体简称
html:封装数据
css:使用属性和属性值修改数据的样式
ECMAScript:语句和语法
DOM:对标记型文档进行操作


innerHTML属性:
第一,获取标签里面的文本内容
** var span1 = document.getElementById("spanid");
alert(span1.innerHTML);


第二,向标签里面设置内容(可以写html代码)
** var div1 = document.getElementById("div1");
div1.innerHTML = "<table border='1'><tr><td>aaa</td><td>bbb</td></tr></table>";


表单提交和检验:
第一种方式:在form标签里面,写提交按钮 <input type="submit"/>
使用事件 onsubmit事件,写在form标签里面
<form method="get" οnsubmit="return checkForm();">
如果return返回的值true可以提交表单,如果返回false不会提交表单
= 代码
//submit表单的校验
function checkForm() {
//判断用户名不能为空
var username = document.getElementById("usernameid").value;
var password = document.getElementById("passwordid").value;
if(username == "") {
alert("用户名不能为空");
return false;
}
if(password == "") {
alert("密码不能为空");
return false;
}
return true;
}


第二种方式:在form标签里面,写普通按钮 <input type="button"/>
= 代码
//使用button进行表单的提交
function form01() {
//得到form标签
var form01 = document.getElementById("form01");
//提交form表单
form01.submit();
}
校验:
function form01() {
//得到输入项里面的值,判断值是否为空,如果为空不进行提交
var username = document.getElementById("usernameid").value;
var password = document.getElementById("passwordid").value;
//如果值为空,不进行提交
if(username == "") {
alert("用户名不能为空");
} else if(password == "") {
alert("密码不能为空");
} else {
//得到form标签
var form01 = document.getElementById("form01");
form01.submit();
}
}

json的简介
JavaScript Object  Notation,JavaScript 对象表示法。json是数据的交换格式,比xml更加轻巧。json是js的原生的格式,通过js操作json不需要依赖其他东西,直接对json格式进行操作。


json的数据格式:
对象格式:
{json数据的名称1:json数据的值1,json数据的名称2:json数据的值2.....}
名称和值之间使用冒号隔开,多个值之间使用逗号隔开
json数据的名称是字符串的类型,json数据的值 string, number, object, array, true, false, null


数组格式:
[json对象1,json对象2........]
在数组里面有多个json对象,多个json对象之间使用逗号进行隔开


组合模式(复杂的格式) :
{"name":[{"name":"zhangsan","addr":"beijing"},{"name":"lisi","addr":"tianjin"}]}


解析Json:
通过json对象数据格式里面的name的名称得到name对应的值
Json数组有长度length


导入SQL文件:source SQL文件路径


SQL(数据库)(结构化查询语言,对数据库进行操作,sql非过程性语言,不需要依赖于其他的条件就可以运行,关系数据库:存储的是实体之间的关系)
数据库的存储结构
库-表-数据 (主要学习crud(增删改查)操作)
sql的分类:
DDL(数据定义语言,创建数据库,创建数据表)
创建:create database 库名;
删除库:drop database 库名;
查看所有数据库:show databases;
使用数据库:user 库名;
查看当前数据库:selcet database();


创建:create table 表名(
字段名 类型 约束, //类型主要用varchar(一定要初始值) char(一定要初始值) int date(日期) time(时间) datetime(手动添加时间) timestamp(自动添加时间) text
字段名 类型 约束 //约束 primary key (非空 唯一性)  not null(数据不能为空) unique(唯一性,数据不能重复) auto_increment(表示数据自动增长,但是要搭配整数类型,如:int)
)
查看表结构:desc 表名;
删除表:drop table 表名;
查看当前库所有表:show tables;


DML(数据操纵语言,对表中的记录进行增加 修改 删除操作)
添加记录:insert into 表名(字段名) value(对应字段数据);
 insert into 表名 value (所有对应字段数据);

修改记录:update 表名 set 要修改的字段名 = 修改的值 where 条件;
删除记录:delete from 表名 where 条件;

DQL(数据查询语言,对表中的进行查询的操作)
select distinct *(字段名) as 别名 | 聚集函数count() sum() avg() max() min() (聚集函数有一个   ifnull(值1,0)+ 值2   括号中值1有值就相加,无值就显示值2)
from 表名
where 
< > != = <= >=  (如果数据是null, 等于用is 不等用is not)
and or (and的优先级大于or)
in (在哪几个选项内)
between 值1 and 值2 (在值1和值2之间)
like (模糊查询 ‘%值%’ 其中%表示占位符 _表示一个占位符)
group 编译 字段名 having 条件判断
order by asc(升序)|desc(降序)
limit [index,[length]] //只有一个参数,表示,取前几个;两个参数,第一个是索引值,第二个是向后取值个数

DCL(数据控制语言,数据库的编程的语言)
grant


重置mysql的root密码
(1)知道密码,修改密码
第一,连接mysql数据库
第二,切换数据库 mysql  use mysql
第三,进行密码的修改 update user set password=password('要修改成的密码的值') where user='root';
第四,重新启动mysql服务


(2)忘记密码,重置密码
第一,把mysql的服务关闭
第二,打开cmd窗口,输入命令 mysqld --skip-grant-tables(不要加分号)
第三,再打开cmd窗口,连接数据库,不需要输入密码  mysql -u root
第四,切换数据库 mysql  use mysql
第五,进行密码的修改 update user set password=password('要修改成的密码的值') where user='root';
第六,把两个cmd窗口都关闭,打开任务管理器,找到mysqld进程,结束
第七,启动mysql服务



JDBC
一套操作数据库的标准接口()

操作步骤:
public static void main(String[] args) throws Exception {
//加载驱动
DriverManager.registerDriver(new Driver());
//创建连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb2", "root", "root");
//编写sql
String sql = "select * from user";
//执行sql
//得到statement
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
//遍历结果集得到每条记录
while(rs.next()) {
int id = rs.getInt("id");
String username = rs.getString("username");
int chinese = rs.getInt("chinese");
int english = rs.getInt("english");
System.out.println(id+" :: "+username+" :: "+chinese+" :: "+english);
}
//释放资源
rs.close();
stmt.close();
conn.close();
}


更加标准化的:
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//创建连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/exam", "root", "123");
//编写SQL
String sql = "select * from emp";
//执行SQL
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next()){
int id = rs.getInt("empno");
String name = rs.getString("ename");
System.out.println(id + ":" + name);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if (rs != null) {
try {
rs.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
rs = null;
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
stmt = null;
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
conn = null;
}


9.3 可以把数据库的一些信息,写到配置文件里面,在工具类读取配置文件得到内容
一般使用properties格式文件作为存储数据库信息的文件
有两种方式读取配置文件
第一种,使用properties类
(1)代码
//创建properties对象
Properties p = new Properties();
//文件的输入流
InputStream in = new FileInputStream("src/db.properties");
//把文件的输入流放到对象里面
p.load(in);
String drivername = p.getProperty("drivername");
String url = p.getProperty("url");
String username = p.getProperty("username");
String password = p.getProperty("password");


第二种,使用ResourceBundle类
* 使用范围:首先读取的文件的格式需要时properties,文件需要放到src下面
(1)代码
String drivername = ResourceBundle.getBundle("db").getString("drivername");
String url = ResourceBundle.getBundle("db").getString("url");
String username = ResourceBundle.getBundle("db").getString("username");
String password = ResourceBundle.getBundle("db").getString("password");






使用PreparedStatement预编译对象实现crud的操作
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/exam", "root", "123");
String sql = "select * from emp";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("empno");
String name = rs.getString("ename");
System.out.println(id + ":" + name);
}
} catch (Exception e) {
// TODO: handle exception
}finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}

if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt = null;
}

if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}




防止sql的注入
(1)使用PreparedStatement预编译对象防止sql注入
(2)创建PreparedStatement对象 prepareStatement(String sql) 
(3)PreparedStatement接口的父接口Statement
(4)什么是预编译
(5)步骤:
第一步,加载驱动,创建数据库的连接
第二步,编写sql
第三步,需要对sql进行预编译
第四步,向sql里面设置参数
第五步,执行sql
第六步,释放资源
(6)代码
//使用工具类得到数据库的连接
conn = MyJdbcUtils.getConnection();
//编写sql
String sql = "select * from user where username=? and password=?";
//对sql进行预编译
psmt = conn.prepareStatement(sql);
//设置参数
psmt.setString(1, username);
psmt.setString(2, password);
//执行sql
rs = psmt.executeQuery();
if(rs.next()) {
System.out.println("login success");
} else {
System.out.println("fail");
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值