J2EE
2020-08-25 10:33:37 2 举报
AI智能生成
J2EE知识点整理
作者其他创作
大纲/内容
Java Web
JavaWeb原理
HTTP协议
Tomcat服务器
JavaWeb项目
JSP
jsp编译原理
jsp本质上是一个servlet
模板引擎技术
jsp9大内置对象
request
HttpServletRequest
response
HttpServletResponse
page
this
pageContext
PageContext
容器对象,包含其它对象
out
输出对象
application
ServletContext
session
HttpSession
config
ServletConfig
exception
Exception
四大作用域
pageContext
request
session
application
EL表达式
就是从4大作用域中获取值
${key}
如果是bean对象属性,必须要有get方法
jstl标签
c标签
循环标签
forEach
条件分支标签
if
choose...when
格式化标签
format
formatdate
时间格式化
formatnumber
数字格式化
servlet
什么servlet
server applet的缩写,俗称运行在服务端的小程序
狭义
就是运行在服务端一个小程序
广义
实现了Servlet规范的类
servlet实现方式
实现Servlet接口
继承HttpServlet
使用@WebServlet注解
servlet生命周期
生命周期:生老病死
init
初始化servlet对象
service
每次有请求进入时,调用service处理
destory
当服务器停止时,destory销毁servlet实例
注意:servlet默认是不会创建的,只有在第一次访问时才会初始化,且只会初始化一次,可以通过配置
load-on-startup修改为启动就初始化
load-on-startup修改为启动就初始化
Servlet相关API
HttpServletRequest
意义:
主要用于处理客户端请求数据
API
请求参数
getParamter
根据名称获取值
getParamterValues
根据名称获取值(复选框与)
getParamterMap
获取所有的请求参数信息,参数名是key,值字符串数组组成的map
getParamterNames
获取所有请求参数的name值的枚举集合
getPart
根据名称获取相应的分片数据,文件上传
请求头
根据请求头名称获取对应的请求头值
getHeaders
HTTP信息
请求主机IP
请求的端口
协议
客户端类型
作用域
从作用域获取值
getAttribute
向作用域中存储值
setAttribute
HttpServletResponse
意义:
主要用于向客户端返回响应数据
API
获取响应流
字节流
getInputStream
字符流
getWriter
设置响应头
setHeader
设置Cookie
1.创建cookie对象
2.addCookie
内部转发和重定向
功能:实现客户端视图变化
内部转发
forward
request
重定向
sendredirect
response
区别
1.浏览器地址栏
内部转发URL地址栏不会发生变化
重定向URL地址栏会发生变化
2.页面刷新
内部转发页面刷新相关流程会重新执行
重定向页面刷新只会执行当前页面URL地址相关流程
3.数据传递
内部转发是一次请求,可以request作用域传递参数
重定向本质上是浏览器重新请求,多次请求,无法使用request作用域传递参数
MVC模型
M
model
V
view
C
controller
Web会话对象
HTTP协议不足
HTTP协议是一个应答式的协议
永远都是要先请求才可能有响应
HTTP协议无状态的协议
HTTP协议不会记录请求方的信息
二次访问,服务器是不知道是谁访问的
为了解决HTTP协议的不足的问题,采用了2个方案
1.每次请求,将自己的身份凭证带给服务器
Cookie
服务器可以为客户端创建信息,存储在响应头中
浏览器解析了响应头后,将cookie头数据,持久化,
以后浏览器请求这个地址时,会自动的将Cookie头数据
放在请求头中
浏览器解析了响应头后,将cookie头数据,持久化,
以后浏览器请求这个地址时,会自动的将Cookie头数据
放在请求头中
2.将自己的信息存在服务器,记录下来
Session
服务器在服务端内存中开辟一块空间,存储数据,这个空间会产生一个
唯一标识,会将这个唯一的值,当做Cookie返回给客户端,以后每次请求时,
都会将唯一标识带给服务器:JESSIONID,服务器根据唯一标识,从内存中
获取服务器内存中的存储的数据
唯一标识,会将这个唯一的值,当做Cookie返回给客户端,以后每次请求时,
都会将唯一标识带给服务器:JESSIONID,服务器根据唯一标识,从内存中
获取服务器内存中的存储的数据
Session
Cookie
Filter/Listener
过滤器
目的
过滤客户端的请求
使用
实现Filter接口
@WebFilter
doFilter进行具体的业务操作
监听器
目的
监听Servlet作用域对象的生命周期和属性变化
使用
生命周期监听器
ServletContextListener
HttpSessionListener
ServletRequestListener
属性变化监听器
ServletContextAttributeListener
HttpSessionAttributeListener
ServletRequestAttributeListener
Ajax
什么ajax
Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)
Javascript默认是单线程的,但是浏览器是多线程的,
而Javascript是浏览器解析编译执行
而Javascript是浏览器解析编译执行
ajax技术的原理
原理是每个浏览器都约定了暴露了一个通信对象:XMLHttpRequest
open
建立连接
send
发送请求
responseText/responseXML
响应的数据
都是字符串数据
onreadystatechange
当通信的状态发生改变时调用的函数
readyState
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
status
HTTP协议响应码
200
404
ajax技术问题
ajax技术的返回数据只能文本数据
跨域问题
浏览器安全策略:同源策略
协议、域名、端口一致
返回JSON格式
JSON
什么是JSON
JavaScript Object Notation
使用Javascript中表示对象的方法表现数据的一种方式
JSON数据格式
Javascript对象格式
{}
[]
在Javascript中,对象格式只有两种,一种就是使用{}包裹的key-value形式,一种[]数组形式
JSON
JSON解析
原生JSON解析
sun
fastJSON
Gson
Jackson
spring默认支持
LayUI
cms项目
maven
maven的意义
项目的管理
项目的依赖
管理相关jar包
项目的模块管理
管理子项目之间的关系
maven的指令
clean
清理
compile
编译
test
测试
package
打包
install
安装
maven的依赖
gav
group
组织
artifacts
模块名称
version
版本号
依赖的排除
依赖的传递性
最小路径原则
A->B->C1
D->C2
E --> A、D
此时E中包含C,但是是C2
依赖的作用域
scope
默认
compile
编译、测试、发布
test
测试
provided
编译、测试
system
引入本地的jar包
<systemPath>${basedir}/WebContent/WEB-INF/lib/hamcrest-core-1.3.jar</systemPath>
maven仓库
中央仓库
镜像仓库
私服
本地仓库
maven插件
tomcat
maven继承
子项目默认继承父项目中的依赖
dependencymanagement
声明依赖的版本信息
子项目中声明继承,也可以声明依赖覆盖
maven聚合
将模块和模块之间通过依赖进行管理
git
版本管理工具
SVN
git
分布式的版本管理工具
init
初始化仓库
add
添加到暂存区
commit
提交到本地仓库
push
推送到远程仓库
pull
从远程仓库拉取
clone
克隆
branch
switch
切换分支
checkout
创建分支
merge
合并分支
解决冲突
pull
人工解决冲突
commit
push
mybatis
ORM
ORM概念
O
Object
R
Relation
M
Mapper
对象关系映射
将数据库的数据与Java数据模型关联映射
表对应类
列对应类中属性字段
ORM框架
Hibernate
可以通过对实体类进行操作,从而操作数据库
HQL语句
Mybatis
ibatis
半封装的ORM框架
需要书写sql语句
Spring Data JPA
核心配置文件
properties属性文件
别名
插件
类型处理器
将数据库的数据转化为Java数据
数据源
映射器
映射配置文件
namespace
映射结果
resultmap
缓存
cache
二级缓存
sql片段
select指令
id
resultmap
resulttype
parameterType
可缺省
parameterMap
已淘汰
timeout
超时时间
更新指令
insert
useGeneratedKeys
使用生成的主键
keyProperty
对应类字段名
keyColumn
对应的列名称
update
delete
联合查询
一对多
collection
多对一
association
处理方式
1.二次查询
select
将查询的结果当做第二次查询的参数,然后将第二次查询的参数封装为结果
2.联表查询
使用关联查询,一次性将查询出结果,然后将查询结果封装为数据
spring
IOC/DI
传统项目的不足
对象创建多、浪费
项目维护成本高
IOC/DI
IOC
控制反转
DI
依赖注入
spring管理了项目中需要的类对象
创建对象的行为由开发者在具体的代码中创建,变为了spring的IOC容器创建
由于这种创建对象的控制权,从开发者手中,移交到了spring的IOC容器
由于这种创建对象的控制权,从开发者手中,移交到了spring的IOC容器
又由于IOC容器的控制反转,本质上控制的是类对象的创建,而类与类之间,对象与对象之间也存在依赖关系,
其实就是控制的对象之间依赖关系,所以也称之为DI
其实就是控制的对象之间依赖关系,所以也称之为DI
spring创建对象的方式
bean
构造器
注解
静态工厂
非静态工厂
属性注入的方式有哪些
构造器
set方法
注解
利用生命周期接口,注入属性
spring对象的作用域
单例
非单例
request
session
全局
springmvc源码
代理和AOP
代理
JDK
spring默认使用JDK动态代理
基于接口创建代理类
cglib
Aop
面向切面编程
横向扩展方式
利用动态代理
JdbcTemplate
springmvc
websocket
0 条评论
下一页