zoukankan      html  css  js  c++  java
  • 《Head First Servlets & JSP》-2-概述

    什么是容器

    Servlet没有main()方法,他们受控于另一个Java应用,这个java应用称为容器(Container)。
    Web服务器应用(如Apache)得到一个指向Servlet的请求(如何判断是一个Servlet请求而不是一个静态HTML页面请求?)时,服务器不是把这个请求交给Servlet本身,而是交给部署该Servlet的容器。由容器向Servlet提供HTTP请求和响应,而且要由容器调用Servlet的方法(如doPost()或deGet())。

    注意,我们目前使用Tomcat作为Http服务器和Web容器,即可以将上述Apache、Servlet容器字眼都换为Tomcat。

    容器的作用

    • 通信支持
      容器使得Servlet与Web服务器对话,不用自己建立ServerSocket、监听端口、创建流那一套。
    • 生命周期管理
      容器控制Servlet的生与死,如负责加载类、实例化类和初始化Servlet、调用Servlet方法、实例回收等等。
    • 多线程支持
      容器为每个Servlet请求创建一个新的Java线程,若Servlet运行完相应的Http服务方法,该线程结束。
    • 声明方式实现安全
      通过容器,可以使用XML部署描述文件(DD)来配置和修改安全性,而不必将其硬编码到Servlet类代码中。
    • JSP支持
      是容器负责将JSP代码翻译成真正的Java代码。

    容器如何处理请求

    • 用户请求的一个连接是Servlet而不是一个静态页面
    • 容器看出这是个Servlet,则穿件两个对象:HttpServletRequest和HttpServletResponse
    • 容器根据URL找到正确的Servlet,为这个请求创建或分配一个线程,并把上述请求和响应对象传递给这个Servlet线程
    • 容器调用Servlet的service()方法,该方法会调用doGet()或doPost()方法
    • 处理请求并把结果塞给响应对象
    • 线程结束,容器把响应对象转换为一个HTTP响应

    部署描述文件(DD)

    Servlet的三个名字:真实java类名、URL映射名、HTTP请求名,这些在部署描述文件(DD)里声明。
    DD另外还有以下作用:安全角色、错误页面、标记库、初始化配置信息等等。

    Servlet&JSP世界中的MVC

    业务逻辑放在模型中,模型就是业务数据和方法的组合;
    Servlet扮演控制器的角色,在模型和视图之间起协调作用;
    JSP作为视图可与模型分离。

    要点

    J2EE

    J2EE是一种超级规范,他结合了其他的一些规范,包括Servlet2.4规范和JSP2.0规范,这些是对应Web容器的;
    另外J2EE 1.4规范还包括Enterprise JavaBean(EJB)2.1规范,这对应EJB容器;
    即,Web容器用于Web组件(Servlet和JSP),EJB容器用于业务组件;
    J2EE应用服务器包括一个Web容器和一个EJB容器;Tomcat是一个Web容器,而不是一个完整的J2EE应用服务器;
    独立的Web容器通常配置为与一个HTTP Web服务器(如Apache)协作,不过Tomcat容器本身就能作为一个基本的HTTP服务器。
    但是在HTTP服务器功能方面,Tomcat没有Apache那么健壮,所以常见的非EJB Web应用通常会结合使用Apache和Tomcat。

    注意的名词:

    • Web服务器
    • Web容器
    • Servlet容器

    参考资料

    EJB到底是什么 csdn
    EJB wikipedia

  • 相关阅读:
    两个错误的解决方案
    利用BeautifulSoup爬去我爱我家的租房数据
    使用Docker安装PaddlePaddle安装过程中出现的几个问题
    将博客搬至CSDN
    iOS---实现在屏幕上实时绘图的简单效果---CAShaperLayer和UIBezierPath的简单运用
    举例理解Hibernate的三种状态(转)
    关于hibernate5的映射文件和配置文件改变(转)
    数据库事务四种隔离级别
    使用idea构建Hibernate5项目
    手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件
  • 原文地址:https://www.cnblogs.com/myitroad/p/6192515.html
Copyright © 2011-2022 走看看