web 相关概念
软件架构
- B/S 结构
- Browser/Server 结构
- 用户通过浏览器访问服务器获取资源
- web 编程,是一种网站编程
- C/S 结构
- Client/Server 结构
- 用户使用特定的客服端访问服务器获取资源
- 多为 socket 编程,是一种网络编程
资源定位
-
网络通信三要素
- IP:电子设备(计算机)在网络中的唯一标识
- 端口:应用程序在计算机中的唯一标识。0~65536
- 传输协议:规定了数据传输的规则
-
url
- 统一资源定位符
- 协议名称 + 主机名称 + 可选的端口号 + 资源名称
服务器资源
-
主动资源与被动资源
- 被动资源也称静态资源,所有用户访问后,得到的结果都是一样的,可以直接被浏览器解析
- 主动资源也称动态资源:每个用户访问相同资源后,得到的结果可能不一样,被访问后,需要先转换为静态资源,在返回给浏览器
-
静态文档与动态文档
- 静态文档 ,html,css,javascript
- 动态文档 ,servlet 和 jsp,根据需要动态生成
-
动态文档技术
-
客服端动态文档技术: javascript 结合 DOM 技术
-
服务的动态文档技术:服务器扩展技术,服务器支持单独的可执行模块,当服务器启动时,该模块装入内存并只实例化一次。然后通过驻留在内存中的模块副本为每个请求提供服务
servlet 容器:在 java 平台上,服务器扩展使用 servlet API 编写的,服务器扩展模块称为 servlet 容器
-
服务器软件
- 服务器:安装了服务器软件的计算机
- 服务器软件:接收用户的请求,处理请求,做出响应
- web 服务器软件:部署 web 项目,让用户通过浏览器来访问这些项目
- 常见的 java web 服务器软件:
- webLogic:oracle 公司,大型的 JavaEE 服务器,支持所有的 JavaEE 规范,收费
- webSphere:IBM 公司,大型的 JavaEE 服务器,支持所有的 JavaEE 规范,收费
- JBOSS:JBOSS 公司的,大型的 JavaEE 服务器,支持所有的 JavaEE 规范,收费
- Tomcat:Apache 基金组织,中小型的 JavaEE 服务器,支持少量的 JavaEE 规 范,开源免费
web 容器
-
web 服务器使用一个单独的模块装载和运行 servlet 与 jsp 页面,这个模块称 servlet 容器,或称 web 容器
-
什么是容器?
servlet 没有 main( ) 方法。servlet 受控于另一个 java 应用,这个 java 应用称为容器
Tomcat 就是这样一个容器。如果web服务器应用得到一个指向 servlet 的请求,此时服务器不是把这个请求交给 servlet 本身,而是交给部署该 servlet 的容器,要由容器调用 servlet 的方法,如 doPost( ) 或 doGet( )
-
容器能提供什么?
- 通信支持:利用容器提供的方法,servle 能与 web 服务器对话
- 生命周期管理:容器控制着servlet的生命周期。负责加载类、实例和初始化 servlet、调用 servlet 方法,并使 servlet 实例能够被垃圾回收
- 多线程支持:容器会自动地为它接收的每个 servle t请求创建一个新的 java 线程。针对客户机的请求,如果 servlet 已经运行完相应的 HTTP 服务方法,这个线程就会结束
- 声明方式实现安全:利用容器,可以使用 XML 部署描述文件配置安全性,而不必将其硬编码写到 servlet(或其他)类代码中
- jsp 支持:负责把 jsp 代码翻译成真正的 java
MVC 设计模式
-
MVC 是一种软件开发架构模式,它包含了很多的设计模式,如 Observer(观察者模式), Composite(组合模式)和Strategy(策略模式)
-
MVC(Model-View-Controller)模式的基本思想是数据,显示和处理相分离
-
任务:
- 模型(Model)负责数据管理
- 视图(View)负责数据显示
- 控制器(Controller)负责业务逻辑和响应策略
-
优点:将业务逻辑和数据访问从表示层中分离出来、低耦合、易维护、可重用
-
流程:视图层接收用户请求,提交给控制器,控制器调用模型处理请求,将结果传回视图层进行显示