JavaWEB复习
Servlet
1. B/S结构原理剖析
关于系统架构
-
系统架构形式
- C/S架构
- B/S架构
-
C/S架构:
- (Client/Server,客户端/服务器)需要安装特定的客户端软件
- C/S架构的优缺点
- 优点:速度快、体验好、服务器压力小(因为客户端本身就携带有一部分数据,所以只需要服务器传输一部分数据就可以实现某个功能)、安全
- 缺点:升级维护麻烦(每一个客户端软件都需要升级,成本高)
-
B/S架构:
-
(Browser/Server , 浏览器/服务器)
-
实际上B/S还是一个特殊的C/S,这个Client是一个固定不变的浏览器软件
-
B/S优缺点:
-
优点:升级维护方便,成本低(只需要升级浏览器)
不需要安装特定的客户端软件,用户操作机器方便,只需要打开浏览器,输入网址即可。
-
缺点: 速度慢(不是带宽低原因,是因为所有数据都从服务器传输。)
体验差:(界面只支持三个语言HTML CSS JAVAScript)
不安全(所有数据都在服务器上,一旦服务器被毁,数据都会丢失)
-
-
-
C/S 和B/S 系统
- 不同结构的系统在不同业务场景中使用
- 娱乐软件建议使用C/S
- 公司内部使用
- 维护成本低
- 不需要炫酷
- 企业及系统主要是能够进行数据的维护即可
- B/S
-
开发WEB系统需要
-
WEB前端
HTML、CSS、JavaScript
-
WEB后端(WEB服务器段的程序)
-
java、C语言、c++、python、PHP
-
-
JavaEE是什么
- Java三大板块:
- Java标准版:(一套类库,无论学EE、ME,SE是基础先学会)
- JAVAEE:企业版(一套类库,帮助我们开发企业级项目、专门为企业内部提供解决方案),可以开发企业级项目,也可以开发web系统,较火爆
- ME: 一套类库,帮助我们进行电子微型设备内核程序的开发,机顶盒内核程序、吸尘器内核程序等
B/S结构的系统通信原理
- WEB系统访问过程
- 一:打开浏览器
- 二:找到地址栏
- 三:输入合法网址
- 四:回车
- 五:浏览器展示响应结果
- https://www.baidu.com/ 网址
- www.baidu.com 域名
- 路径不同 访问的程序不同
- 可能是一个静态资源、也可能是个动态资源(java程序)
- 后端到底要执哪一个,取决于前端发送的请求路径,一个路径对应一个Servlet程序
- 四个角色之间的规范:
- 角色:
- (浏览器开发团队)浏览器、(WEB Server 开发团队)Tomcat、 app项目(Webapp开发团队)、MySql(DB Server开发团队)
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eiolKM6e-1661590157425)(…/1660788630437.png)]
- 角色:
2.Servlet本质
-
通常我们只需要做两件事:
- 编写selrvlet程序
- 编写web配置文件信息,配置文件中 指定 请求路径和类名的关系
-
注意:
1. 配置文件文件名固定 2. 配置文件存放路径固定 3. 文件名、文件路径都是SUN公司指定的Servlet规范的明细。
-
Servlet规范:
1. 合格的webapp应该有的目录结构 2. webapp应该有的配置文件 3. webapp配置文件放置路径 4. webapp java程序放在哪里
-
Tomcat要遵循Srevlet规范,JavaWEB程序员也要遵循这个Servlet规范,这样才能Tomcat服务器和webapp才能解耦合。
-
开发一个带有Servlet的webapp
3.Servlet对象生命周期
4. 适配器设计模式
5.GennericServlet源码分析
6.ServletConfig接口详情
7.ServletContext接口详情
8.Http协议剖析
9.GET和POST本质区别及选择
10.HttpServlet源码分析
11.模板方法设计模式
12.WEB欢迎页
13.HttpServletRequest源码分析
14.乱码解决问题
15.转发和重定向深度剖析
16.Servlet注解式开发
17.Servlet注解式开发
18.Session原理解析
-
关于B/S结构系统会话机制(session机制)
- 什么是会话: 用户打开浏览器,进行操作之后,关闭浏览器 整个过程就是一次会话,会话在服务器端也有一个对应的java对象,这个对象就是session
- 请求:用户在浏览器中点击一下,浏览器有相应这就可以认为是一次请求,请求的对应的服务器端的Java对象是request。
- 一个会话可以有多个请求
-
session 作用:保存会话对象状态
-
Tomcat启动后 相同请求 不同浏览器会话不同,关闭浏览器 相当于关闭会话,再次发起请求 创建新的会话。
-
HttpSession session = req.getSession(); //从服务器中获取会话对象如果没有则创建 HttpSession session = req.getSession(false); //从服务器中获取会话对象如果没有则返回null
-
服务器中有一个类似于Map集合的session集合,
-
用户发送第一次请求时,会创建一个sessionId,value值则是该请求的会话对象。然后web服务器会将sessionid发送个浏览器,浏览器会将session的id缓存在浏览器中。
-
用户第二次发送请求时,会自动将浏览器中的sessionId发送给服务器,服务器获取到sessionid,然后再session列表中找到对应的session对象
-
session什么时候被销毁
- 超时自动销毁
- 手动销毁
-
<session-config><!-- 设置session声明时长为30分钟--> <!-- 不配置tomcat也会配置30分钟--> <session-timeout>30</session-timeout> </session-config>
19.cookie原理剖析
JSP
EL表达式
JSTL标签库
Filter过滤器
<!-- 不配置tomcat也会配置30分钟-->
30
### 19.cookie原理剖析
## JSP
## EL表达式
## JSTL标签库
## Filter过滤器
## Listtener监听器