zoukankan      html  css  js  c++  java
  • 《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(略)

  • 相关阅读:
    php八种常用函数
    已知二叉树的前序中序遍历,如何得到它的后序遍历?
    PTA_Have fun with numbers(C++)
    PTA_输入符号及符号个数打印沙漏(C++)
    Web安全之SQL注入
    南京邮电大学//bugkuCTF部分writeup
    修改或添加HTTP请求头
    第二次作业
    博客作业1
    linux python 串口
  • 原文地址:https://www.cnblogs.com/syjkfind/p/5792663.html
Copyright © 2011-2022 走看看