《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(略)

时间: 2024-12-28 02:29:06

《Tomcat与Java Web开发技术详解》思维导图的相关文章

Java Web开发之详解JSP

JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面.Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用,而JavaBean作为模型(Model)层使用.这就是经典的MVC模型. Servlet和JSP的关系上篇博客已经讲过了,并演示了一个相当简单的例子.在具体讲述JSP之前,先把JavaBean简单介绍一下. JavaBean其实就是一个Java普通类,定义了类的属性和行为(get.set方法).在M

java web之Filter详解

java web之Filter详解 2012-10-20 0 个评论 作者:chenshufei2 收藏 我要投稿 .概念: Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息等一些高级功能. 二.Filter简介 Servlet API中提供

hadoop应用开发技术详解

<大 数据技术丛书:Hadoop应用开发技术详解>共12章.第1-2章详细地介绍了Hadoop的生态系统.关键技术以及安装和配置:第3章是 MapReduce的使用入门,让读者了解整个开发过程:第4-5章详细讲解了分布式文件系统HDFS和Hadoop的文件I/O:第6章分析了 MapReduce的工作原理:第7章讲解了如何利用Eclipse来编译Hadoop的源代码,以及如何对Hadoop应用进行测试和调试:第8-9章 细致地讲解了MapReduce的开发方法和高级应用:第10-12章系统地讲

python开发技术详解(二)

文章目录: 数据类型 数据类型 a=1 b=2 print id(a) print id(b) Out[1]: 163578032 Out[2]: 163578032 python开发技术详解(二)

[原创]Java性能优化权威指南读书思维导图

[原创]Java性能优化权威指南读书思维导图 书名:Java性能优化权威指南 原书名:Java performance 作者: (美)Charlie Hunt    Binu John 译者: 柳飞 陆明刚 京东购书地址: http://item.jd.com/11407830.html 介绍:<Java性能优化权威指南>是Java应用性能调优的圣经,内容通俗易懂,介绍了大量的监控和测量工具,涉及各种硬件架构和操作系统.涵盖了如何构建实验.解释结果以及如何采取行动等技巧. 现在自己是越来越忙,

java web.xml配置详解

1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文. 3.容器将<context-param>转换为键值对,并交给servletContext. 4.容器创建<listener>中的类实例,创建监听器. 二  Load-on-startup Load

Java web.xml 配置详解

在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter.最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 Servlet

Java Web(五) JSP详解(四大作用域九大内置对象等)

前面讲解了Servlet,了解了Servlet的继承结构,生命周期等,并且在其中的ServletConfig和ServletContext对象有了一些比较详细的了解,但是我们会发现在Servlet中编写一些HTML代码,是很不方便的一件事情,每次都需要out.println(HTML); 因此就出现了JSP,来解决这样的问题,JSP中的内容就是html,但是能够嵌套java语言,现在来详细了解一下JSP. --WH 一.JSP 1.什么是JSP? JSP(Java Server Pages):是

手游服务器开发技术详解

从事游戏服务器开发差不多两年时间,两年间参与了不少项目,学到了很多游戏服务器开发技术,参与过几个不同架构的服务器开发,就随便聊聊游戏服务器开发需要的技术.(以下所指游戏服务器更偏向于手游,因为我对端游和页游开发接触并不多) 一.聊聊服务器开发有哪些东西要考虑. 1.开发语言的选择: 工欲善其事,必先利其器,选择一门适合的开发语法对后期开发有着事半功倍的作用. 业界主要的是c/c++ + Python/lua模式做游戏服务器.c/c++做网络通讯数据传输,python/lua做业务逻辑.这样既保持