《Tomcat与Java Web开发技术详解》思维导图
越想构建上层建筑,就越觉得底层基础很重要。补课系列。
书是良心书,就是太基础了,正适合补课。

【纯文字版】
Tomcat与Java Web
开发技术详解
Servlet
Servlet的生命周期
初始化
1Servlet容器加载Servlet类
2Servlet容器创建ServletConfig,初始化配置信息
3Servlet容器创建Servlet对象
4Servlet容器调用Servlet对象的init(ServletConfig)
时机:首次被请求或配置了<load-on-startup>
运行时
接收请求封装ServletRequest和ServletResponse
调用service()
通过ServletResponse生成响应结果
销毁
调用destroy()
销毁Servlet对象
销毁对应的ServletConfig
应用的上下文SerletContext
一个webapp对应一个SerletContext
监听接口ServletContextListener
contextInitialized(ServletContextEvent)
contextDestroyed(ServletContextEvent)
HttpSession的生命周期
创建
浏览器首次访问该应用
浏览器上次的会话已销毁,但再次访问该应用
浏览器访问时不带上次会话的ID
销毁
服务器调用invalidate()
会话过期
服务器无法直接知道浏览器已终止
setMaxInactiveInterval(int)
作用范围
request.getSession()
只要能取到会话对象,就能共享会话的数据
会话的监听接口
配置中web.xml
HttpSessionListener监听创建与销毁
HttpSessionAttributeListener监听属性变化
作为属性对象存入会话
HttpSessionBindingListener监听属性的绑定情况
HttpSessionActivationListener监听会话激活与搁置
过滤器
按web.xml中的顺序串联调用
chain.doFilter()递归调用
调用关系为filter1->filter2->...->servlet
此后的返回是filter1<-filter2<-...<-servlet
req和resp包装为ServletRequestWrapper和ServletResponseWrapper
web.xml
加载顺序
ServletContext(context-parm)->Listener->Filter->Servlet
其他(略)
Tomcat
三种工作模式
standalone
JVM->Tomcat->Servlet容器
其他服务器进程内容器(JNI)
Tomcat分为web插件和Servlet容器两部分
容器组件运行在其他服务器内的JVM
web插件也在该服务器中
web插件通过JNI调用容器组件
其他服务器进程外容器(IPC)
Tomcat分为web插件和Servlet容器两部分
容器组件运行在独立JVM
服务器不需要支持Servlet
web插件运行在服务器中
web插件通过IPC调用容器组件
server.xml
Server, Service, Engine, Host(略)
Context
className:可指定实现类
path:应用的URL入口
docBase:应用的文件路径
reloadable:自动监测更新并重新加载(但增加运行负荷)
cookies:允许以Cookie来支持Session
useNaming:支持JNDI
Manager会话管理器
默认StandardManager
可加入Memcached的类包实现集中式会话管理
Cluster集群
Engine中加入<Cluster>并配置DeltaManager(或其他实现)
在应用的web.xml中启用<distributable/>
存入会话的属性要实现序列化接口
网络环境支持组播
Connector
监听端口
AJP协议
配置SSL
JK连接器
通过AJP协议访问Tomcat
作为插件可以集成在Apache,IIS等服务器中
Relm安全域
在Tomcat层面实现鉴权
有配置文件、JDBC、DataSource等不同的实现
Valve阀
有Engine、Host和Context三种作用范围
Tomcat自带的实现
客户访问日志阀
远程地址过滤器
远程主机过滤器
客户请求记录器
SSI(Server Side Include)
常用于网页的拼接,比如header和footer
只提供了一些简单的指令
以SSIServlet的形式实现
Web应用的
几种调用方式
EJB
JavaEE应用结构
客户层(browser或client)
Web层(JSP和Servlet)
业务层(EJB)
会话Bean-逻辑
有状态
无状态
实体Bean-实体
EIS层(数据库)
接口
Remote接口EJBObject
Home接口EJBHome
Bean类实现SessionBean并对Remote接口做具体实现
技术栈
服务器:JBoss
调用方式:RMI
SOAP
WebService
SOAP:基于XML语言的数据交换协议
WSDL:基于XML语言的web服务描述语言
通信协议
HTTP/HTTPS
SMTP/POP3
调用方式
RPC
Message-Oriented
技术栈
Web服务框架:Apache AXIS
服务器:Tomcat
MVC模式
层次
模型:业务逻辑
视图:用户呈现
控制器
接收用户请求
调用模型响应用户请求
选择视图显示响应结果
优点:3个模块相互独立,松耦合
JSP Model 2
Servlet作为控制器
JavaBean作为模型
JSP作为视图
Struts
实现MVC的web框架
控制器
FilterDispatcher+struts.xml把请求转发给对应的各个Action
Action类侧重于控制程序的流程
Velocity
模板语言的作用:将Java代码从Web页面中分离出来
引擎的使用
Servlet类继承VelocityServlet
覆盖handleRequest方法
把变量存入Context对象
返回指定模板文件
课外补充:远程通信的几种方式
RPC:远程过程调用
TCP连接
应用层寻址(比如HTTP的URI地址)
请求和响应的序列化和反序列化
RMI远程方法调用
仅限于Java语言
强对象
WebService
HTTP连接
SOAP协议
基于XML
restful风格
面向资源的GET/POST/PUT/DELETE操作
(常使用基于JSON的数据交换)
JMS
Java消息服务
JSP与JSTL(略)
《Tomcat与Java Web开发技术详解》思维导图的更多相关文章
- UNIX系统编程知识点总结——思维导图
根据考纲整理了一下本学期系统编程课的知识点,并且做成了思维导图便于理解和记忆 主要都是一些比较入门的知识点,UNIX博大精深,每一个知识点其实都能深挖 因为博客园不可能直接出思维导图,本文的主要内容都 ...
- [转载] 读《UNIX网络编程 卷1:套接字联网API》
原文: http://cstdlib.com/tech/2014/10/09/read-unix-network-programming-1/ 文章写的很清楚, 适合初学者 最近看了<UNIX网 ...
- UNIX网络编程 卷2:进程间通信
这篇是计算机类的优质预售推荐>>>><UNIX网络编程 卷2:进程间通信(第2版)> UNIX和网络专家W. Richard Stevens的传世之作 编辑推荐 两 ...
- 《UNIX网络编程 卷1》之"学习环境搭建"(CentOS 7)
<UNIX网络编程 卷1>的源码可以从www.unpbook.com下载得到.解压之后的目录为unpv13e. 详细步骤 编译 进入unpv13e目录,按如下步骤编译: ./configu ...
- UNIX网络编程卷1 - >环境搭建(ubuntu16.04)
学习unp网络编程,树上的例子均存在#include“unp.h”,故需要对环境进行配置. 1.到资源页下载www.unpbook.com 2.解压并将unpv13e移动到相应的文件夹下 (因为我 ...
- 【unp】unix网络编程卷1-->环境搭建(ubuntu14.04)
学习unp网络编程,树上的例子均存在#include "unp.h",故需要对环境进行配置. 1. 到资源页下载unpv13e 2. 解压并将unpv13e 移动到相应的文件夹下 ...
- 《Unix网络编程 卷I》思维导图
很久之前看完书总结的.这本经典教材讲的内容比较多,总结一下,方便理清思路[微笑].
- 《UNIX网络编程 卷1:套接字联网API》读书笔记(一):网络编程简介
概述 要编写通过计算机网络通信的程序,首先要确定这些程序相互通信所用的协议.大多数网络是按照划分成客户和服务器来组织的.本章及后续章节的焦点是TCP/IP协议族,也可称为网际协议族.下图为客户与服务器 ...
- 《Unix网络编程卷1:套接字联网API》读书笔记
第一部分:简介和TCP/IP 第1章:简介 第2章:传输层:TCP.UDP和SCTP TCP:传输控制协议,复杂.可靠.面向连接协议 UDP:用户数据报协议,简单.不可靠.无连接协议 SCTP:流控制 ...
- UNIX网络编程卷1 第一章 简介 读书笔记。
基本没讲什么,一点点计算机网络发展史,一点点socket()简单介绍,最重要的是1.3节协议无关性. 协议无关性: 贯穿整本书的一个重要特性,他主要强调的是 socket是网络协议无关的编程接口. s ...
随机推荐
- 解决chrome浏览器对于自动填充的input表单添加的默认的淡黄色背景问题 && 一般的浏览器input和button的高度不一致问题
解决chrome浏览器对于自动填充的input表单添加的默认的淡黄色背景问题 如果我们把一个表单设置位 autofocus ,这时这个表单在获取焦点后就会产生淡黄色的背景,我们就是使用!importa ...
- Oracle pl/sql编程值控制结构
以下测试案例均来自于scott方案,运行前请确保该方案解锁. 1.条件分支状语 pl/sql中提供了三种条件分支状语,分别是: if then if then else if then ...
- sql developer链接不上oracle 报 The Network Adapter could not establish the connection
安装时候报 : Oracle 支持在具有 DHCP 分配的公共 IP 地址的系统上进行安装.但应使用静态 IP 地址来配置系统的主网络接口, 以便 Oracle 软件正常工作.有关在配置有 DHCP ...
- 通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
激活条件编译支持. @cc_on 备注 @cc_on 语句激活脚本引擎中的条件编译. 强烈推荐在注释中使用 @cc_on 语句,以使不支持条件编译的浏览器将您的脚本视为有效语法而接受它: /*@cc_ ...
- Xshell记录日志的方法
如何快速在Xshell中保存日志 步骤一 执行属性命令.打开Xshell终端模拟器,单击上方菜单栏的文件菜单,在其下拉选项选择属性,如下图所示. 步骤二 勾选日志选项.执行以上命令后会打开会话属性对话 ...
- SpringBoot和SpringCloud区别
SpringBoot专注于快速方便的开发单个个体微服务. SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来, 为各个服 ...
- Silverlight & Blend动画设计系列十:Silverlight中的坐标系统(Coordinate System)与向量(Vector)运动
如果我们习惯于数学坐标系,那么对于Silverlight中的坐标系可能会有些不习惯.因为在Silverlight中的坐标系与Flash中的坐标系一样,一切都的颠倒的.在标准的数学坐标系中,X轴表示水平 ...
- golang学习之win7下go环境搭建
以下均采用windows64环境,首先是go的下载,go有msi安装安装和zip解压安装两种安装方式,使用msi安装后go环境会自动配置,zip解压后需手动配置各种环境变量. 首先是下载,网上一搜一大 ...
- asp.net core2.0 连接mysql和mssql
转自:https://www.jianshu.com/p/15a557ac43d9 1.连接mysql 第一步,新建asp.net core项目 新建项目 本例程作简单演示两种数据库的连接,为简便 ...
- Maven --- <distributionManagement>标签
1.<distributionManagement>的作用: 负责管理构件的发布.这是一个环境变量 <downloadUrl> URL </downloadUrl& ...