javaweb知识点总结(黑马视频笔记)

目录

什么是JavaWeb?

Web

JavaWeb

JavaWeb技术栈

JDBC简介

概念

本质

快速入门

步骤

API详解

DriverManager

Connection

Statement

ResultSet

PreparedStatement

数据库连接池

简介

数据库连接池实现

标准接口: DataSource

常见的数据库连接池:

练习

Maven简介

模型

安装配置

Maven基本使用

常用命令

生命周期

IDEA配置Maven

依赖管理

依赖范围

MyBatis

持久层

框架

JDBC缺点

硬编码

操作繁琐

快速入门

Mapper代理开发

MyBatis核心配置文件

配置文件完成增删改查

多条件查询

添加

主键返回

修改

删除

删除多个

注解完成增删改查

动态SQL

if

choose

HTTP

概念

HTTP协议特点

HTTP请求数据格式

三部分

HTTP响应数据格式

三部分

web服务器

Tomcat

简介

基本使用:安装,卸载,启动,关闭,配置,部署项目

idea中创建Maven Web

idea中使用Tomcat

Servlet

快速入门

Servlet执行流程

Servlet生命周期

方法介绍

Servlet体系结构

XML配置方式编写servlet

Request(请求)

Request继承体系

Request获取请求数据

Request请求转发

Response(响应)

设置响应数据功能介绍

完成重定向

响应字符数据

响应字节数据

JSP

概念

快速入门

原理

脚本

缺点

EL表达式

主要功能

语法

JSTL标签

MVC模式和三层结构

MVC

三层架构

案例

会话跟踪

会话

会话跟踪

基本使用

原理

使用细节

Session

基本使用

原理

使用细节

Filter

概念

快速入门

执行流程

使用细节

Filter拦截路径配置

过滤器链

Listener

Listener的使用

AJAX

什么是 AJAX?

AJAX的作用

快速入门

Axios异步框架

JSON

什么是 JSON?

JSON 格式化后为 JavaScript 对象

JSON 语法规则

JSON 数据 - 一个名称对应一个值

JSON 对象

JSON 数组

javascript:void(0) 含义

JSON数据和Java对象转换

JavaBean

概述


什么是JavaWeb?

Web

即全球广域网,也称万维网。

JavaWeb

是用Java计数来解决web互联网领域的技术栈
javaweb知识点总结(黑马视频笔记)_第1张图片
javaweb知识点总结(黑马视频笔记)_第2张图片

JavaWeb技术栈

  • B/S架构:Brower/Server,浏览器/服务器架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端,浏览器只需要请求服务器,获取Web资源,服务器把Web资源发送给浏览器即可。

    好处:易于维护升级:服务器端升级后,客户端无需任何部署就可以使用新的版本呢

  • 静态资源:HTML、CSS、Javascript、图片等。负责页面展现。

  • 动态资源:Servlet、jsp等。负责逻辑处理

  • 数据库:负责存储数据。

  • HTTP协议:定义通信规则

  • Web服务器:负责解析HTTP协议,解析请求数据,并发送响应数据。

JDBC简介

概念

JDBC就是使用Java语言操作关系型数据库的一套API

全称 Java Data Base Connectivity Java数据库连接

本质

定义的一套操作所有关系数据库的规则,即接口

javaweb知识点总结(黑马视频笔记)_第3张图片

快速入门

步骤

javaweb知识点总结(黑马视频笔记)_第4张图片

API详解

DriverManager

驱动管理类 作用:

  1. 注册驱动
  2. 获取数据库连接
Class.forName("com.mysql.jdbc.Driver");

javaweb知识点总结(黑马视频笔记)_第5张图片

Connection

数据库连接对象

作用:

  1. 获取执行SQL的对象
  2. 管理事务
  • 普通执行SQL对象
Statement createStatement();
  • 预编译SQL的执行SQL对象:防止SQL注入
PreparedStatement prepareStatement(sql);
  • 执行存储过程的对象
CallableStatement prepareCall(sql);

javaweb知识点总结(黑马视频笔记)_第6张图片

Statement

作用:执行sql语句

executeUpdate(sql);  //执行DML、DDL语句  返回int类型
//返回值:(1)DML语句影响的行数    (2)DDL语句执行后,执行成功也可能返回0
executeQuery(sql);  //执行DQL语句  返回ResultSet类型
//返回值:(1)ResultSet jie'guo'ji

执行DDL语句的返回值可能是0

ResultSet

结果集对象:封装了DDL查询语句的结果

stmt.executeQuery(sql);   //执行DQL语句,返回ResultSet对象

javaweb知识点总结(黑马视频笔记)_第7张图片

使用步骤:

  1. 游标向下移动一行,并判断改行是否有数据:next()
  2. 获取数据:getXxx(参数)
//循环判断游标是否是最后一行末尾
while(rs.next()){
	rs.getXxx(参数);
}

javaweb知识点总结(黑马视频笔记)_第8张图片

  1. 定义一个实体类Account
  2. 查询数据,封装到Account对象中
  3. 讲数据存入ArrayList集合中

!!!

PreparedStatement

作用:

  1. 预编译SQL语句并执行:预防SQL注入问题

SQL注入:通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击的方法。

javaweb知识点总结(黑马视频笔记)_第9张图片

原理:

javaweb知识点总结(黑马视频笔记)_第10张图片

好处:

  1. 预编译SQL,性能更高。
  2. 防止SQL注入,将敏感字符进行转义。

javaweb知识点总结(黑马视频笔记)_第11张图片

数据库连接池

简介

数据库连接池是一个容器,负责分配,管理数据库连接(connection)。

它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。

释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏

好处

  1. 资源重用
  2. 提升系统响应时间
  3. 避免数据库连接遗漏。

数据库连接池实现

标准接口: DataSource

官方提供的数据库连接池标准接口,由第三方组织实现此接口。

Connection     getConnection();

常见的数据库连接池:

  1. DBCP
  2. C3P0
  3. Druid:(德鲁伊) 阿里巴巴开源的数据库连接池项目,功能强大,性能优秀,是Java语言最好的数据库连接池之一

javaweb知识点总结(黑马视频笔记)_第12张图片

练习

javaweb知识点总结(黑马视频笔记)_第13张图片

准备环境

  1. javaweb知识点总结(黑马视频笔记)_第14张图片

  2. 查询javaweb知识点总结(黑马视频笔记)_第15张图片

  3. 添加javaweb知识点总结(黑马视频笔记)_第16张图片

  4. 修改javaweb知识点总结(黑马视频笔记)_第17张图片

  5. 删除javaweb知识点总结(黑马视频笔记)_第18张图片

Maven简介

Maven是专门用于 管理和构建Java项目的工具,它的主要功能有:

  • 提供了一套标准化的项目结构
  • 提供了一套标准化的构建流程(编译,测试,打包,发布……)
  • 提供了一套依赖管理机制
  1. Maven提供了一套标准化的项目结构,所有的IDE使用Maven构建的项目结果完全一样,所有IDE创建的Maven项目可以通用

javaweb知识点总结(黑马视频笔记)_第19张图片
2. javaweb知识点总结(黑马视频笔记)_第20张图片

  1. javaweb知识点总结(黑马视频笔记)_第21张图片

Apache Maven是一个项目管理和构建工具,他是基于项目对象模型(POM)的概念,通过一下段描述信息来管理项目的构建、报告、文档。

模型

javaweb知识点总结(黑马视频笔记)_第22张图片
javaweb知识点总结(黑马视频笔记)_第23张图片
在这里插入图片描述

安装配置

javaweb知识点总结(黑马视频笔记)_第24张图片

Maven基本使用

常用命令

  • compile:编译
  • clean:清理
  • test:测试
  • package:打包
  • install:安装

生命周期

javaweb知识点总结(黑马视频笔记)_第25张图片

IDEA配置Maven

  • 配置Maven环境
    javaweb知识点总结(黑马视频笔记)_第26张图片

  • Maven坐标详解
    javaweb知识点总结(黑马视频笔记)_第27张图片

  • 创建Maven项目
    javaweb知识点总结(黑马视频笔记)_第28张图片

  • 导入Maven项目
    javaweb知识点总结(黑马视频笔记)_第29张图片

依赖管理

javaweb知识点总结(黑马视频笔记)_第30张图片

依赖范围

javaweb知识点总结(黑马视频笔记)_第31张图片

MyBatis

  1. 是一款优秀的持久层框架,用于简化JDBC开发
  2. 是Apache的一个开源项目在这里插入图片描述

持久层

负责将数据保存到数据库的那一层代码

JavaEE三层构架:表现层、业务层、持久层

框架

JDBC缺点

硬编码

  • 注册驱动,获取链接
  • SQL语句

操作繁琐

  • 手动设置参数
  • 手动封装结果集

MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作

快速入门

javaweb知识点总结(黑马视频笔记)_第32张图片
javaweb知识点总结(黑马视频笔记)_第33张图片

Mapper代理开发

javaweb知识点总结(黑马视频笔记)_第34张图片
javaweb知识点总结(黑马视频笔记)_第35张图片

MyBatis核心配置文件

javaweb知识点总结(黑马视频笔记)_第36张图片

配置文件完成增删改查

在这里插入图片描述
javaweb知识点总结(黑马视频笔记)_第37张图片javaweb知识点总结(黑马视频笔记)_第38张图片

多条件查询

javaweb知识点总结(黑马视频笔记)_第39张图片
javaweb知识点总结(黑马视频笔记)_第40张图片

添加

javaweb知识点总结(黑马视频笔记)_第41张图片

主键返回

javaweb知识点总结(黑马视频笔记)_第42张图片

两个属性


修改

javaweb知识点总结(黑马视频笔记)_第43张图片javaweb知识点总结(黑马视频笔记)_第44张图片

删除

在这里插入图片描述

删除多个

javaweb知识点总结(黑马视频笔记)_第45张图片

注解完成增删改查

javaweb知识点总结(黑马视频笔记)_第46张图片

动态SQL

javaweb知识点总结(黑马视频笔记)_第47张图片

if

javaweb知识点总结(黑马视频笔记)_第48张图片javaweb知识点总结(黑马视频笔记)_第49张图片

choose

javaweb知识点总结(黑马视频笔记)_第50张图片

HTTP

概念

超文本传输协议,规定了浏览器和服务器之间的数据传输规则。

HTTP协议特点

  1. 基于TCP协议:面向连接,安全
  2. 基于请求-响应模型的:一次请求对应一次响应
  3. HTTP协议是无状态的协议:对于事务处理没有记忆。每次请求响应都是独立的。
    • 缺点:多次请求之间不能共享数据。
    • 优点:速度快。

HTTP请求数据格式

三部分

  1. 请求行:请求数据的第一行。其中GET表示请求方式,/ 表示请求资源路径,HTTP/1.1表示请求协议版本
  2. 请求头:第二行开始,格式为key:value形式。
  3. 请求体:POST请求的最后一部分,存放请求参数

javaweb知识点总结(黑马视频笔记)_第51张图片

HTTP响应数据格式

三部分

  1. 响应行:响应数据的第一行。其中HTTP/1.1表示协议版本,200表示响应状态码,ok表示状态码描述
  2. 响应头:第二行开始,格式为key:value形式。
  3. 响应体:最后一部分。存放响应数据

web服务器

是一个应用程序(软件),对HTTP协议的操作进行封装,是的程序员不必直接对协议进行操作,让web开发更加便捷,主要功能是"提供网上信息浏览服务"

Tomcat

简介

Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级web服务器,支持servlet/jsp少量javaee规范。
Tomcat也被称为web容器,Servlet容器。Servlet需要依赖于Tomcat才能运行。

基本使用:安装,卸载,启动,关闭,配置,部署项目

javaweb知识点总结(黑马视频笔记)_第52张图片
javaweb知识点总结(黑马视频笔记)_第53张图片javaweb知识点总结(黑马视频笔记)_第54张图片

idea中创建Maven Web

javaweb知识点总结(黑马视频笔记)_第55张图片javaweb知识点总结(黑马视频笔记)_第56张图片
javaweb知识点总结(黑马视频笔记)_第57张图片

idea中使用Tomcat

javaweb知识点总结(黑马视频笔记)_第58张图片javaweb知识点总结(黑马视频笔记)_第59张图片

Servlet

  • 是Java提供的一门动态web资源开发技术。
  • 是JavaEE规范之一,其实是一个接口,将来我们需要定义servlet类实现servlet接口,并由web服务器运行servlet。

快速入门

javaweb知识点总结(黑马视频笔记)_第60张图片

Servlet执行流程

javaweb知识点总结(黑马视频笔记)_第61张图片

  1. 由web服务器创建,servlet方法由web服务器调用
  2. 自定义中的servlet,必须实现servlet接口并复写其方法,而servlet接口中由service方法。

Servlet生命周期

对象的生命周期值一个对象从被创建到被销毁的整个过程
javaweb知识点总结(黑马视频笔记)_第62张图片javaweb知识点总结(黑马视频笔记)_第63张图片

方法介绍

javaweb知识点总结(黑马视频笔记)_第64张图片

Servlet体系结构

javaweb知识点总结(黑马视频笔记)_第65张图片
javaweb知识点总结(黑马视频笔记)_第66张图片

XML配置方式编写servlet

javaweb知识点总结(黑马视频笔记)_第67张图片

Request(请求)

  • Request:获取请求数据

Request继承体系

javaweb知识点总结(黑马视频笔记)_第68张图片

  1. Tomcat需要解析请求数据,封装位request对象,并创建request对象传递到service方法中
  2. 使用request对象,查阅JavaEE API文档的HttpServletRequ接口

Request获取请求数据

请求数据分为三部分:

javaweb知识点总结(黑马视频笔记)_第69张图片javaweb知识点总结(黑马视频笔记)_第70张图片

Request通用方式获取请求参数

javaweb知识点总结(黑马视频笔记)_第71张图片

请求参数中文乱码问题

javaweb知识点总结(黑马视频笔记)_第72张图片

Request请求转发

一种在服务器内部的资源跳转方式。

javaweb知识点总结(黑马视频笔记)_第73张图片

Response(响应)

  • Response:设置响应数据

设置响应数据功能介绍

javaweb知识点总结(黑马视频笔记)_第74张图片

完成重定向

重定向:一种资源跳转方式
javaweb知识点总结(黑马视频笔记)_第75张图片

//实现方法
resp.setStatus(302);
resp.setHeader("location","资源路径");
//简化写法
resp.sendRedirect("路径");

javaweb知识点总结(黑马视频笔记)_第76张图片

响应字符数据

javaweb知识点总结(黑马视频笔记)_第77张图片

响应字节数据

javaweb知识点总结(黑马视频笔记)_第78张图片
javaweb知识点总结(黑马视频笔记)_第79张图片

JSP

概念

Java Server Pages,Java服务端页面

一种动态的网页技术,其中既可以定义Html,js,css等静态内容,还可以定义Java代码的动态内容,

JSP=HTML+Java;

作用:简化开发,避免了在servlet中直接输出HTML标签

快速入门

javaweb知识点总结(黑马视频笔记)_第80张图片

原理

Java Server Pages,Java服务端页面

JSP=HTML+Java,简化开发

实质上就是一个Servlet

JSP再被访问时,有JSP容器(Tomcat)将其转化为Java文件(Servlet),再由jsp容器将其编译,最终对外提供服务的其实就是这个字节码文件

脚本

javaweb知识点总结(黑马视频笔记)_第81张图片

缺点

javaweb知识点总结(黑马视频笔记)_第82张图片

EL表达式

Expression Language 表达式语言,用于简化JSP页面内的Java代码

主要功能

获取数据

语法

${expression}

javaweb知识点总结(黑马视频笔记)_第83张图片

JSTL标签

JSP标准标签库(Jsp Standard Tag Library),使用标签取代JSP页面上的Java代码
javaweb知识点总结(黑马视频笔记)_第84张图片

/< c:forEach /> 相当于for循环

items:被遍历的容器。 var:遍历产生的临时变量
javaweb知识点总结(黑马视频笔记)_第85张图片

MVC模式和三层结构

MVC

分层开发模式,其中:

M: Model 业务模型,处理业务

V: View 视图,界面展示

C: Controller 控制器,处理请求,调用模型和视图
javaweb知识点总结(黑马视频笔记)_第86张图片

三层架构

javaweb知识点总结(黑马视频笔记)_第87张图片javaweb知识点总结(黑马视频笔记)_第88张图片

案例

javaweb知识点总结(黑马视频笔记)_第89张图片

会话跟踪

会话

用户打开浏览器,访问web服务器的资源,会话建立,知道有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应

会话跟踪

一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同意浏览器,以便在同义词绘画的多次请求间共享数据。

HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都会将该请求视为新的请求,因此我们需要会话跟踪技术来实现绘画内的数据共享。

实现方式:

  1. 客户端会话跟踪技术: Cookie
  2. 服务端会话跟踪技术: Session

Cookie

基本使用

客户端会话技术,将数据保存在客户端,以后每次请求都携带Cookie数据进行访问。

javaweb知识点总结(黑马视频笔记)_第90张图片

原理

javaweb知识点总结(黑马视频笔记)_第91张图片

使用细节

javaweb知识点总结(黑马视频笔记)_第92张图片

Session

基本使用

服务端会话跟踪技术:将数据保存到服务端
javaweb知识点总结(黑马视频笔记)_第93张图片

原理

Session是基于Cookie实现的

使用细节

javaweb知识点总结(黑马视频笔记)_第94张图片

#Cookie和Session 总结
javaweb知识点总结(黑马视频笔记)_第95张图片

Filter

概念

Filter表示过滤器,是Java web三大组件(Servlet、Filter、Listener)之一

过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。

过滤器一般完成一些通用的操作,比如:权限控制、统一编码处理、敏感字符处理等等。

快速入门

javaweb知识点总结(黑马视频笔记)_第96张图片

执行流程

javaweb知识点总结(黑马视频笔记)_第97张图片

使用细节

Filter拦截路径配置

根据需求,配置不同的拦截资源路径

javaweb知识点总结(黑马视频笔记)_第98张图片

过滤器链

一个web应用中,可以配置多个过滤器,这多个过滤器成为过滤器链

javaweb知识点总结(黑马视频笔记)_第99张图片

  1. 注解配置的Filter,优先级按照过滤器类名(字符串)的自然排序

javaweb知识点总结(黑马视频笔记)_第100张图片

Listener

  1. Listener表示监听器,是Java web三大组件(Servlet、Filter、Listener)之一

  2. 监听器可以监听就是在application,session,request三个对象创建、销毁或者往其中添加修改删除属性是自动执行代码的功能组件
    javaweb知识点总结(黑马视频笔记)_第101张图片

Listener的使用

javaweb知识点总结(黑马视频笔记)_第102张图片

AJAX

AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新。

什么是 AJAX?

AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。

简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示。

使用 AJAX 的应用程序案例:谷歌地图、腾讯微博、优酷视频、人人网等等。

AJAX的作用

  1. 与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据。
    • 使用了AJAX和服务器进行通信,就可以使用HTML+AJAX来 替换JSP 页面了。
  2. 异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索,用复命是否可用,等等……

快速入门

javaweb知识点总结(黑马视频笔记)_第103张图片

Axios异步框架

  1. 对原生的ajax进行封装,简化书写。
  2. javaweb知识点总结(黑马视频笔记)_第104张图片
    javaweb知识点总结(黑马视频笔记)_第105张图片

JSON

JSON 是用于存储和传输数据的格式。

JSON 通常用于服务端向网页传递数据 。

什么是 JSON?

  • JSON 英文全称 JavaScript Object Notation
  • JSON 是一种轻量级的数据交换格式。
  • JSON是独立的语言 *****
  • JSON 易于理解。

JSON 格式化后为 JavaScript 对象

JSON 格式在语法上与创建 JavaScript 对象代码是相同的。

由于它们很相似,所以 JavaScript 程序可以很容易的将 JSON 数据转换为 JavaScript 对象。

JSON 语法规则

  • 数据为 键/值 对。
  • 数据由逗号分隔。
  • 大括号保存对象
  • 方括号保存数组

JSON 数据 - 一个名称对应一个值

JSON 数据格式为 键/值 对,就像 JavaScript 对象属性。

键/值对包括字段名称(在双引号中),后面一个冒号,然后是值:

“name”:“Runoob”

JSON 对象

JSON 对象保存在大括号内。

就像在 JavaScript 中, 对象可以保存多个 键/值 对:

{“name”:“Runoob”, “url”:“www.runoob.com”}

JSON 数组

JSON 数组保存在中括号内。

就像在 JavaScript 中, 数组可以包含对象:

“sites”:[

{“name”:“Runoob”, “url”:“www.runoob.com”},

{“name”:“Google”, “url”:“www.google.com”},

{“name”:“Taobao”, “url”:“www.taobao.com”}

]

JSON 与 JS 对象的关系

很多人搞不清楚 JSON 和 JS 对象的关系,甚至连谁是谁都不清楚。

**其实,可以这么理解:**JSON 是 JS 对象的字符串表示法。它使用文本表示一个 JS 对象的信息,(JSON)本质是一个字符串。
javaweb知识点总结(黑马视频笔记)_第106张图片

javascript:void(0) 含义

javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。

JSON数据和Java对象转换

  • 请求数据:JSON字符串转化为Java对象
  • 响应数据:Java对象转化为JSON字符串
    在这里插入图片描述

JavaBean

概述

JavaBean 是特殊的 Java 类,使用 Java 语言书写,并且遵守 JavaBean API 规范。

接下来给出的是 JavaBean 与其它 Java 类相比而言独一无二的特征:

  • 提供一个默认的无参构造函数。
  • 需要被序列化并且实现了 Serializable 接口。
  • 可能有一系列可读写属性。
  • 可能有一系列的 getter 或 setter 方法。

你可能感兴趣的:(tomcat,maven,servlet,mybatis,java)