JAVAweb
2022-10-17 11:28:41 25 举报
AI智能生成
coco博
作者其他创作
大纲/内容
网状结构:IDS
层次结构: IMS 树结构
非关系结构:Redis 以哈希表,键值对的方式存储哦
数据库(统一的管理数据的集合)
MYSQL:关系型数据库管理系统
SQL SERVER
Oracle
DB2
数据库管理系统
DQL:数据查询语言 select
DML:数据操作语言 update delete insert
TCL:事务控制语言
DCL:数据控制语言
DDL: 数据定义语言
CCL:指针控制语言
SQL(结构化查询语言)
基本查询
ORDER BY ACE (DESC)
排序查询
模糊: LIKE
子主题
分支
枚举: IN(属性1,2,3)
条件查询
时间查询
字符串查询
SUM()
AVG()
MAX()
MIN()
COUNT()
聚合函数
GROUP BY 分组列 HAVING 过滤规则
分组查询(过滤)
LIMIT 起始行,行数;
限定查询
一个查询嵌套另一个查询,内层的查询称为子查询
子查询可以作为条件判断----(子查询)一行一列
子查询作为枚举条件--- (子查询)多行一列
子查询可以作为条件判断---- all(子查询)一行一列--------------------------------any(子查询) 一行一列
作为一张临时表 FROM (子查询)
子查询(嵌套查询)
SELECT *FROM 表一 UNION SELECT *FROM 表二;--去重
合并的两张表的列数必须相同,类型可以不同
SELECT *FROM 表一 UNION ALL SELECT *FROM 表二;--保留重复
合并查询
FROM 表一 ,表二 WHERE 表一.stu=表二.stu
隐式链接(内连接)
FROM 表一 INNER JOIN 表二 ON 表一.stu=表二.stu AND/WHERE/HAVING 条件
显示连接(内连接)
左外连接 FROM 表一 LEFT JOIN 表二 ON 条件
右外连接 RIGHT JOIN
外连接
FROM 表一 NATURAL JOIN 表二 WHERE 条件
自然连接
连接查询
数据查询DQL
INSERT INTO 表名 (属性1,属性二,属性3)VALUES (值1,值2,值3);
添加数据
UPDATEE 表名 SET font color=\"#3e9494\" data-darkreader-inline-color=\"\" style=\"--darkreader-inline-color:#3e9494;\
修改数据
DELETE FROM 表名 WHERE 条件
删除数据
TRUNCATE 表名
清空表
数据操作(DML)
定义各个列的属性
方法一: 创建表 Sid INT PRIMARY KEY
方法二: PRIMARY KEY( Sid)---(多用于联合主键)
方法三: 建表之后 ALTER TABLE student ADD PRIMARY KEY(id);
主键约束
Sname INT(10) UNIQUE; ----与主键不冲突
唯一约束
在主键后面使用,不可单独使用 Sid INT PRIMARY KEY AUTO_INCREMENT
自动增长列
实体完整性约束(行)
数据类型约束 数据类型(长度)
非空约束 NOT NULL
默认值 DEFAULT 值
域完整性(列)
外键约束:CONSTRAINT 引用表 FOREIGN KEY (列名) REFERENCES 被引用表名(列名)
引用完整性约束(表与表)
表约束
创建表
修改表 ALTER
删除表DROP
数据定义(DDL)
原子性:一个事务内的操作不可分割,要么全部成功,要么全部失败
一致性:事务内一个修改失败时,所有其他修改过的操作回滚到修改之前
隔离性: 事务查看数据时,只能是另一并发事务修改前或者修改后的数据
持久性:持久性事务完成之后,对系统的修改是永久的
mysql是自动提交事务的,一条语句执行就会提交
STRAT TRANSACTION;----开启事务TRANSACTION=0;----关闭自动提交TRANSACTION=1;----开启自动提交
开启事务
COMMIT;
提交 事务
ROLLBACK;
事务失败,回滚
事务控制(TCL)
创建用户
授予权限
撤销权限
删除用户
权限控制
概念:虚拟表,从一个表或多个表中提取出啦i,作用与表相同
创建视图: CREATE VIEW 视图名 AS SELECT...
查看视图 :SELECT *FROM 视图名;
方式一:CREATE OR REPLACE VIEW 视图名 AS 查询语句
2.方二: ALTER VIEW 视图名 AS 查询语句
修改视图:
删除视图: DROP VIEW 视图名;
视图
数据库的备份与恢复
SQLyog
MySQL
什么是JDBC:JAVA连接数据库技术(规范标准)
核心思想: Java中定义了访问数据库的接口,再又各关系型数据库提供(Driver驱动)实现类
接口: Connection---l连接数据库 Statement----执行SQL语句 ResultSet-----接收查询结果
概念
url: jdbc:mysql://localhost:3306/booksystem?useSSL=false&characterEncoding=utf-8
JDBC的开发
连接方法
释放资源
与事务相关的4个方法
通用增删改查方法
封装工具类
对结果集的遍历时,取出的都是一些零散的数据。开发时需要对这些零散数据进行封装
实体类(Entity)---一张表反射一个实体类(需要内省)
常用包名:beans、entity、domain、pojo
ORM : 对象关系映射
定义专门的对象,实现与数据库连接修改操作
实现了业务逻辑和访问数据库相分离(降低耦合)
创建Dao接口
创建Dao实现类
DAO: 数据访问对象
service:业务层
connection对象.setAutoCommit(false);//关闭自动处理事务---手动提交事务
connection对象.commit();//提交事务
connection对象。rollback()//手动回滚
事务
界面层
业务层
数据访问层
三层架构
德鲁伊连接池
连接池
阿帕奇工具类
JDBC
超文本:页面内包含图片,连接,音乐,程序等非文字元素
标记:即标签,不同的标签实现不同的功能
语言:人与计算机交互的工具
简介:一门通过标记和标签描述网页的超文本标记语言
属性=”属性值“
不区分大小写,建议全部小写
书写规范:<关键字></关键字>(通常成对出现)
<html> <head> //网页头标签 <title>网页标题</title> </head> <body>//网页主体 </body> </html>
文件标签
<!-- 注释内容 -->
注释标签
<br>
换行标签
<p></p>
段落标签
<hr>
width:宽度
size:粗度
color:颜色
align:对齐方式
大小:px(像素)
水平线标签
排版标签
<div>行级块标签(自动换行)</div>
<span>行内块标签(都在一行)</span>
容器标签
标题标签:<h1~5> n级 标题 </h1~5>
文字标签:<font size=\"2\",face=\"字体\"> 文字标题 </font>
文字及标题标签
加粗标签<b></b> <strong></strong>
强调标签:<em></em>
下标签:<sub></sub>
上标签:<sup></sup>
删除线标签:<del></del>
文本格式化标签
<ul type=\"类型\"> <li>苹果</li> <li>香蕉</li> <li>菠萝</li></ul>无序列表
<ol type=\"类型\"> <li>苹果</li> <li>香蕉</li> <li>菠萝</li></ol>有序列表
列表标签
src=\"文件路径\"
图片标签: <img/>
连接标签<a href=”连接地址“></a>
<tr>行</tr>
<td>列</td>
<th>--列名--</th>
<caption >---标题---</caption>
表格标签<table border=”边框“ width=\"宽度\">-----</table>
跨行合并:rowspan=\"行数\"
跨列合并colspan=\"列数\"
表格合并
表格标签
基本标签
登录表单
action=”服务器地址“
method=\"提交方式\"
enctype=\"提交类型\"
<form>表单</form>
<input type=\"类型\"/>
表单标签(重点)
在同一个浏览器窗口中不止一个页面
<frameset>框架标签</frameset>
框架标签
其他标签
HTML
美化页面
样式和页面相分离
简介:用来表现HTML和Xml等文件样式的计算机语言------层叠样式表
内联式:当前块有效
内部式:当前页面
链接式导入:link
导入式(不常用,淘汰)import
外部式
导入方式
元素(标签)选择器: 标签{}
id选择器: #id名{}
class选择器 .class名{}
优先级:id选择器>class选择器>元素(标签)选择器
属性选择器:
伪类选择器:
后代选择器
子代选择器
层级选择器:
基本选择器
font-xxx
color
text-xxx
文本属性
background-xxx
背景属性
list-style-xxx
outline-xxx
列表属性
float
clear:
浮动属性
position
定位属性
边框border
外边距margin
内边距padding
盒子模型
CSS
概念:Server Applet---服务器端的应用程序(代码、功能实现)
B/S架构和C/S架构
万维网:表示共外界刚问的资源
静态资源:HTML CSS JS
动态资源:Servlet JSP
动态Web开发技术,被称为JavaWeb
Web
Tomcat(web主流服务器之一)
jetty(淘宝)
resin(新浪)
Web服务器(容器)
自己搭建服务器
bin: 可执行文件
conf :服务器和Web项目配置文件
lib:存放运行所需的Jar包
webapps:存放Web项目-----地址栏默认访问ROOT项目
work:运行时生成的文件
目录结构
开启/关闭
修改默认端口号
创建静态项目------webapps文件下,创建文件夹(直接放html文件)
部署项目到Tamcat
使用
Tomcat
连接Tamcat服务器
创建java项目,右键改为web项目
为WEB-INF添加classes文件夹和lib文件夹
创建javaweb项目
配置项目
实现Servlet接口
继承GenericServlet
继承HttpServlet---需要重写doGet()和doPost()方法
创建Servlet类三种方式
映射Servlet
设置错误网页
设置访问首页
web.xml文件配置
idea创建web项目
导出项目war包
超文本传输协议---基于TCP协议
请求方法 get()不安全 post()安全
三次握手四次挥手
请求报文:浏览器向服务器发送一个请求数据块----默认get
HTTP协议
web.xml中配置
@web Servlet(”/XXXservlet“)
通过注解直接配置(推荐)
配置Servlet的两种方式
request.getParameter(\"表单名\")-------根据表单名字获取请求的值
request.setCharacterEncnding(\"utf-8\")------设置提交请求的编码格式
铭文传递,效率高,数据放在url之后?拼接
get请求
打包发送,密文传递,安全,效率没有get高
post请求
请求request
response.setContentType(\"text/html ; charset=utf-8\")----解决服务器响应乱码问题
request.getRequestDispatcher(\"目标url\").font data-darkreader-inline-color=\"\" style=\"--darkreader-inline-color:#a63d3d;\" color=\"#ad3d3d\
服务器的行为,只做了一次请求
地址栏不发生变化
常用两个Servlet之间传输数据
转发
response.sendRedirect(\"目标url\")
服务区提供一个新的页面----客户重新请求
地址栏发生改变,始于两次请求
可以指向任何站点
重定向
响应response
synchronized 同步代码块------性能太低
实现SingleThreadModel接口------过时了
尽可能使用局部变量(推荐)
线程安全问题
Servlet
概念:将浏览器与客户端之间的多次交互当作一个整体来看
客户端状态管理Cookie
服务器状态管理session
分类
创建cookie
查看cookie
删除cookie:删除cookie--创建同名cookie--name和路径相同
cookie(类)
session是服务器自动创建的,通过request获取session对象
有效时间
创建时间
最后访问时间
获取session
session.setAttribute(\"key\
session域对象
session:一次会话
request:一次转发
session和request的区别
session(接口)
状态管理(会话机制)
概念:介于客户端和服务器之间,限制访问
web.xml配置
/servlet---精准过滤
/*----过滤所有
注解的方式@webfilter(\"过滤资源url\")
配置方式
统一编码
权限验证
作用
注意:一定要放行
过滤器filter
Selvlet
原理:TomCat会将JSP转换成Java代码,然后编译成class文件,左后在通过response响应给浏览器,所以本质上还是Servlet
page----与整个jsp相关的属性
2. include动态包含-----将外部页面的代码引入
3.taglib-----引入外部标签库
3个指令
<jsp:include>静态包含---将外部页面的结果导入
userBean
setProperty
getProperty
forword转发页面
param页内跳转
6个动作
pagecontext可以操作其他3个域对象
pagecontext.findAttribute(\"name\");-----从4个域对象中取值
<li>request</li> <li>response</li> <li>session</li> <li>application</li> <li>config</li> <li>exception</li> <li>out</li> <li>pagecontext</li> <li>page</li>
9大内置对象
jsp 3---6--9
session
pagecontext
request
application(ServletContext)
服务器4大域对象
使jsp写起来更加简单,用于取域对象中的值
取基本类型作用域值---${\"域对象name\"}
去对象类型作用域值-----${\"对象name.属性名\"}----调用的是get方法
获取数组或list集合元素----${数组/集合name[下标]}
获取Map集合元素-----${name.get(\"key\")}
运算符的使用---${10*5}
pagescope:pageContexr域对象
requestscoope:request域对象
sessionscope-----
applicationscope-------
param
paramValues
header
headerValues
ininParam
cookie
pageContext
EL的11个隐式对象
EL表达式(重点)
一个JSP标签集合,可以对EL得到的数据进行逻辑处理,域EL合作完成数据展示
使用方式
if----<c:if test=条件> </c:if>
foreach
choose
url
JSTL标签库
提交方式post
表单提交类型---multiparty/form-data
type=\"file\"
1编写文件上传表单
font color=\"#3da63d\" data-darkreader-inline-color=\"\" style=\"--darkreader-inline-color:#3ea03e;\
处理乱码
浏览器中获取表单的文件请求 request.getpart(\"name\");
创建文件夹
创建上传文件的真实路径 request.getservletContext.getRealPath(\"WEB-INF/uplode\")
将文件写入路径文件夹part.write(真实路径+文件名part.getSubmitFilename())
2编写服务器接受程序
工具实现唯一名字
part.write(真实路径+处理过的文件名)
同名文件,文件覆盖问题
通过hashcode创建2级,三级目录
散列存储
创建允许类型后缀名的list<String>集合
截取文件名的后缀part.getSubmittedFileName().substring(part.getSubmittedFileName().lastIndexOf(\".\") + 1);
判断此后缀名是否存在集合中 list.contains(str)
限制上传文件类型
Collection<Part> parts = request.parts();----获取所有表单元素为part集合
增强for循环遍历得到每一个part
part.getSubmittedFileName-为null为基本元素----不为空为文件类型
多文件上传
细节优化
文件上传
讲web资源下所有的文件展示给用户看,(uplode中的内容)
下载
文件下载
JSP
基本数据类型
引用数据类型
数组类型
alert(\"提示\")
confirm(\"提示\")---带有返回值
prompt(”提示“,”输入框“)---返回值为输入内容
三种弹窗韩函数
函数
onclick--点击事件
onchange--改变事件
。。。。。。
事件
var rep=正则表达式
rep.test(\"string\")-----返回true或者false
rep.exec(\"string \")----还会下标,找不到返回null
正则表达式
JS基本语法
概述 文档对象模型(document) 加载网页时创建,被构造为对象的树
document.getElementById---通过id(唯一)
通过name--不唯一
通过class属性值不唯一
查找html元素
.innerHTML=\"信息\"
改变html元素
document.getElementById.属性=”新的值“
改变html属性
document.getElementById .style.color=\"blue\"
改变CSS样式
可以以通过触发事件来执行代码点击改变页面加载完成
onclick=\"document.getElementById(\"this\").innerHTML=\"提示信息\"\"
DOM事件(重点)
event:事件--点击、改变等等
function函数---事件触发后的函数
userCature:捕获方式--默认为false冒泡(先响应内层)
事件监听器
创建元素
追加元素
操作元素
DOM(重点)
概念:浏览器上的操作,缩放窗口等操作
screen.availWidth--窗口宽度
screen。availHeight---窗口高度
window.location---页面的url
- ocation.hostname 返回 web 主机的域名- location.pathname 返回当前页面的路径和文件名- location.port 返回 web 主机的端口 (80 或 443)- location.protocol 返回所使用的 web 协议(http:// 或 https://)- location.href 属性返回当前页面的 URL- location.assign() 方法加载新的文档
window.
history.back()后退
history.forward()向前
window.history
BOM
JS
概念JavaScrap对象标记--轻量级数据交换格式
{}:表示对象
[]:表示数组
”“ :表示属性名或者字符串类型的值
: :属性名和值之间的分隔
本质是字符串
json语法
Fast JSON--阿里
Jackson--spring
json解析(将json串与对象互相转换)
JSON
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
AJAX 是一种用于创建快速动态网页的技术。
概念:异步JS和Xml
AJAX
概述:一个框架,封装了js的框架
本地引入
dns引入
安装
jQuery的基本使用
jQuery选择器
jQuery事件
jQuery语法
滑动
淡入
淡出
隐藏显示
jQuery效果
捕获
设置
添加
删除
CSS类
css()方法
隔行换色
复选框全选全取消
省市级两级的联动
jQueryDOM操作
祖先
后代
同胞
过滤
jquery遍历
$.get( urlfont color=\"#d32f2f\
$.post(font color=\"#3e9a3e\
(重要使用)Ajax()
注意 font color=\"#d32f2f\
jQueryAJax
jQuery放弃使用$引用
$.noconflict()
后续使用jquery.
方法一
var jq=$.noconflict()
后续使用jq代替
方法二
jquery(document).ready(function($)){//可以使用$}
方法三
jQuery noConflict方法
作用:简化表单校验插件
导入validate.js----(jQuery使用3.xxx高版本) messages_ch.js----(国际化问题,提示信息是中文)
$.(\"选择器\").validate();---选择器是表单id
在validate()中编写校验规则
rules:{input的name值:“规则”},message{name:提示信息}
使用步骤
validate插件
jquery
bootstrap
JAVAweb
0 条评论
回复 删除
下一页