web总结


1、JDBC

一、JDBC概述
1、什么是JDBC
JDBC:Java数据库连接
利用Java语言访问数据库的一门技术

2、为什么要学习JDBC
后面在开发中更多是通过Java程序来访问数据
通过Java程序来访问数据需要用到JDBC这门技术

3、如何通过JDBC访问数据库
//1.注册驱动
//2.获取连接
//3.获取传输器
//4.执行sql语句,返回执行结果
//5.处理结果
//6.释放资源

二、JDBC增删改查

三、JDBCUtils工具类实现
getConnection – 获取并返回一个连接对象
close – 释放资源

四、PreparedStatement和SQL注入攻击
Statement对象
PreparedStatement

12360 -- SQL注入攻击

优势:
(1)采用预编译,可以防止sql注入攻击
(2)通过方法设置sql参数更加的方便
(3)能够尽最大可能提高程序执行的效率.
	Statement
	select * from user where username='zs' and passowrd='123'
	select * from user where username='ls' and passowrd='456'

	PreparedStatement
	select * from user where username=? and passowrd=?

五、批处理
将大量的sql打成一个批, 一次性发送到数据库执行的一门技术
如果要有大量的sql语句到数据库执行, 通过批处理可以减少sql语句发送的次数, 提高程序执行的效率
大量
JDBC事务

六、数据库连接池
1、什么是数据库连接池
存放数据库连接的池子(容器)
把连接放在一个容器中, 供整个程序共享, 实现连接的复用!

2、为什么要使用连接池?
如果通过传统方式,需要连接时直接跟数据库要(创建)一个连接,用完后在关闭连接还给数据库,其中创建和销毁的过程是非常消耗资源,并且效率比较低。
在程序启动时,将一批连接放在连接池(容器)中,当我们需要连接,直接从连接池里面拿一个连接使用,用完之后也不要关闭,直接还给连接池即可,这样可以实现连接的复用,减少连接开关的次数,提高程序执行的效率!

3、如何使用连接池开发数据库程序(c3p0)
(1)导入c3p0的开发包
(2)在源码目录(src或者相似的目录下)下提供一个 c3p0-config.xml 文件
(3)在程序中创建一个连接池实例
ComboPooledDataSource pool = new ComboPooledDataSource()
(4)从连接池中获取一个连接对象
pool.getConnection()


(5)用完连接后, 记得将连接还给连接池!


2、WebServer

利用前面JavaSE所学的技术知识(IO流/多线程/网络编程/xml/jdbc/http)实现一个基础HTTP协议的Web服务器端程序
可以将一些Web资源文件(Html/CSS/JS/图片等)放在WebServer服务器中, 通过浏览器请求这些资源文件, 服务器端根据请求来处理, 最终做出响应.

3、HTML、CSS

HTML
一、HTML概述
1、什么是HTML
HTML:超文本标记语言
用于开发网页的一门语言
是标记语言,不是编程语言
HTML本质上是一个文档

2、HTML的结构
<!doctype html> 声明HTML的版本,当前是html5.0






真正的网页内容

解决网页乱码: 保证meta标签中的charset属性指定的编码和html文件保存时使用的编码一致.

3、HTML的语法
标签(标记/节点/元素): 分为开始和结束, 可以将开始和结束合并成一个自闭标签
属性的值可以用单引号或者双引号引起来

写一个空格: &nbsp; &emsp;
做一个换行: <br/>

注释: <!-- 注释内容 -->

二、HTML标签
1、标题标签







2、列表标签

  • 中国

  • 美国



  1. 中国

  2. 美国


3、图像标签


4、超链接(a)
百度一下,你就不知道!
target: _self/_blank/frameName
5、表格标签










1112
2122









11
2122

colspan:设置单元格横跨的列数
rowspan:设置单元格竖跨的行数

设置table/tr/td的样式推荐使用CSS属性来设置

6、form表单
6.1.表单标签
表单的作用: 用于向服务器发送数据
也可以通过超链接后面拼接参数的形式向服务器发送数据

</form>

6.2.表单项标签
input
文本输入框:
密码输入框:
单选框:
复选框:
设置单选框和复选框默认被选中, checked=“checked”
普通按钮:
提交按钮:
重置按钮:
文件上传项:
隐藏域:

select/option
	<select>
		<option>北京</option>
		<option>上海</option>
		<option>广州</option>
	</select>
textarea
	<textarea>请输入个人简介...</textarea>	

如果表单项(中的数据)需要被提交, 表单项必须指定name属性(参数名称), 否则将不会被提交!!

7、div/span/p
div/p: 块级元素(block) 比如: hr/h1~h6/form…
默认情况下独占一行
可以设置宽高
外边距/内边距/border都可以设置
span: 行内元素(inline) 比如: input、a、img…
多个行内元素可以处在同一行
不可以设置宽高
左右外边距/内边距/border都可以设置, 上下外边距设置无效

CSS
一、CSS概述
1.什么是CSS
css:层叠样式表, 用于美化网页的一门技术, 可以实现将设置样式的CSS代码和展示数据的HTML代码进行分离, 增强了网页的展示能力.

二、CSS引入
1.通过style属性来引入css

2.通过style标签引入css


3.通过link标签引入外部的css文件


三、CSS选择器
1.基本选择器
标签名选择器
div{…}
span{…}
class类选择器
.class属性值{…}

id选择器
	#id值{...}

2.扩展选择器
后代选择器: div span{}
子元素选择器: div>span{}
分组选择器: div,span,.c1,#d1{}
属性选择器: input[type=‘submit’]{}
input[type=‘checkbox’]{}

相邻兄弟选择器: #d1+span{}
			 #d1~span{}
伪元素选择器:
		div:first-child{ //匹配所有的第一个div子元素
		}
		div:last-child{ //匹配所有的最后一个div子元素
		}
		div:hover{//鼠标悬停在div上时的状态
		}

四、盒子模型
将所有的html元素都看成一个一个盒子或者是框

margin(外边距)
	margin: 9px 7px;
	margin: 10px 20px 30px 40px;
	margin: 10px 20px 30px;
	margin: 10px;
	
border(边框): 1px solid red;

padding(内边距)
	padding:  10px 20px 30px 40px;
	padding:  10px 20px 30px;
	padding:  10px 20px;
	padding:  10px;

五、常用的CSS属性
1.display属性 – 设置元素是否以及如何显示
block: 块级元素
inline: 行内元素
inline-block: 行内块元素(既可以设置宽高, 又可以同行显示)
none: 隐藏元素
2.文本属性
text-align: 水平排列方式
text-indent: 首行缩进
text-shadow: 字体阴影
letter-spacing: 字符间隔
text-decoration: 设置字体下划线样式

3.字体属性
font-size: 字体大小
font-weight: 字体粗细
color: 字体颜色
line-height:行高
font-family: 设置字体

4.背景属性
background-color:背景颜色
background-image:背景图片
background-repeat:背景是否以及如何重复排列
background-position:背景图片的位置
background-size:背景图片的大小


4、JS、DHTML

JS基础语法
一、JS简介
1、什么是JS
JavaScript
是一门基于对象和事件驱动的脚本语言
专门为网页交互而设计
主页应用在客户端

2、JS的特点和优势
解释执行, 不需要编译
基于对象
弱类型

交互性
安全性
跨平台性

3、JS的引入
3.1.通过script标签引入JS代码

3.2.通过script标签引入外部的JS文件

<script src="js文件的路径"/>如果这个标签写成自闭的, 将会引入失败!

<script src="js文件的路径">
	//这里的代码将不会执行!
</script>

二、JS语法
1、数据类型
基本数据类型
数值类型(number)
都是浮点型
NaN
字符串类型(string)
字符串可以用单引号/双引号引起来
布尔类型(boolean)
undefined
表示定义了变量, 但是没有赋值, 此时变量的值就是undefined
null
表示空值

复杂数据类型
	对象(函数/数组/对象)

2、变量和运算符
var str = “Hello”;
var num = 100;
var x;

JS中的运算符和Java中的大致相同
== ===
typeof

3、语句
if…else
switch
循环语句

4、数组
var arr1 = new Array();
arr1 = new Array(10, “hello”);

var arr2 = [10, "hello"]

length属性 -- 返回数组的长度
pop方法
push方法
shift方法
unshift方法
sort方法
reverse方法

5、函数
function 函数名称(参数列表){
函数体

}

var 函数名/变量名 = function(参数列表){
	函数体
	...
}

6、对象
6.1.JS的内置对象
String对象
Array对象
Date对象
Math对象
Global对象
RegExp对象

6.2.自定义对象
function Person(){}
var p1 = new Person();

var p2 = {
	"name" : "zs",
	"age" : 18,
	"run" : function(){
	}
}
-----------------------------
$("div").css({
	"color" : "red",
	"width" : "100px",
	"height" : "100px"
})

DHTML


5、jQuery


6、tomcat、http协议


XML: 可扩展标记语言

1、html和xml的区别
html:超文本标记语言, 是用于开发网页的一门语言
xml:可扩展标记语言, 现在主要用于传输数据和作为应用程序的配置文件
html:对语法的要求非常不严格(比如标签没有结束或者标签交叉嵌套有时也会被正常解析)
对语法要求很严格(标签必须得结束及标签也不能交叉嵌套等)
html:是超文本标记语言, 其中的标签都是预先定义好的, 不能自己定义
xml:xml是可扩展标记语言, 其中的标签允许用于自己定义
相同点: 都是标记语言, 都是由W3C组织统一发布的. 在解释时都可以使用dom思想来进行解析.

2、xml简介
可扩展标记语言, 现在主要用于传输数据和作为应用程序的配置文件
xml是一门数据交换格式或者是数据存储格式
<中国>
<北京>
<海淀区/>
<朝阳区/>
</北京>
<河北>
<石家庄/>
<秦皇岛/>
</河北>
</中国>
在xml中, 是通过标签来表示数据本身, 利用标签之间的嵌套关系来表示数据之间的层级关系

3、xml的语法
(1)一个格式良好的xml文件必须要具有一个文档声明
<?xml version="1.0" encoding="utf-8"?>

(2)一个格式良好的xml文件必须要具有一个根标签

(3)xml中的元素名称必须要符合一定的规范
严格区分大小写、元素名不能以数字或标点符号开头
不能包含冒号或者空格

4、xml的应用场景
xml的应用场景主要有两个
(1)传输数据
由于xml本质上是一段字符串, 因此可以用于在不同的系统和平台之间传输数据

(2)作为应用程序的配置文件
由于xml可以保存有结构的数据, 因此常被用于用作应用程序的配置文件, 比如后面所学的(C3P0、spring、springMVC、Mybatis、hibernate、struts2等框架都是使用xml来作为配置文件)

(3)其他应用场景: 用于开发网页/模拟数据库等
products.xml




路径问题

一、Web阶段的路径
1、相对路径:不以斜杠开头的路径
比如: demo.css
demo.js
…/demo.css
2、绝对路径:以斜杠开头的路径
比如: /test/a/1.jpg
/test/a/index.html
推荐使用绝对路径, 因为相对路径不太稳定, 举例说明!
------------------------------
现在/a/index.html中引入了一幅图片:

(1)第一次访问, index.html的访问路径是: 
	http://localhost/test/a/index.html
当前文件(index.html)所在的路径是:
	http://localhost/test/a/
再拼接上相对路径(1.jpg), 就得出了图片的完整路径:
	http://localhost/test/a/1.jpg
这个路径是正确的, 所以可以访问到图片!

(2)第二次访问, 通过HelloServlet转发访问index.html, 那么index.html的访问路径是:
	http://localhost/test/HelloServlet
在/a/index.html中引入了一幅图片:
	<img src="1.jpg"/>
当前文件(index.html)所在的路径是:		
	http://localhost/test/
再拼接上相对路径(1.jpg), 就得出了图片的完整路径:
	http://localhost/test/1.jpg
这个路径是错误的, 所以访问不到图片!

在Web阶段推荐使用绝对路径, 在写绝对路径时, 什么时候需要加上当前Web应用的虚拟路径, 什么时候不需要加?
(1)请求转发:
request.getRequestDispatcher("/a/index.html").forward(res, req);
(2)请求包含:
request.getRequestDispatcher("/a/index.html").include(res, req)

<%@include file="/a/index.jsp" %>
<%@page errorPage="/a/index.jsp"%>

请求转发和包含因为只能转发或包含同一个Web应用内部的资源, 所以在写路径时, 不需要加上Web应用的虚拟路径!!

(3)请求重定向:
response.sendRedirect("/test/a/index.html")
(4)定时刷新:
response.setHeader(“Refresh”, “3;url=/test/a/index.html”)
(5)图片的路径

(6)引入JS文件/jQuery文件

(7)引入css文件

(8)表单的提交路径


(9)超链接跳转的路径

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值