zoukankan      html  css  js  c++  java
  • HeadFirst jsp 02 (体系结构)

    当请求到来时, 必须有人实例化 servlet, 或者至少建立一个新的线程来处理这个请求. 必须有人调用 servlet 的 doPost()或 doGet()方法. 另外还的有人管理 servlet的”生”与”死”, 这个管理方就是 web 容器

    什么是容器

    servlet 没有 main() 方法, 它们受控于一个 java 应用, 这个 java应用称为 容器

    Tomcat 就是这样一个容器, web服务器得到一个servlet请求(不是其他请求,例如一个静态页面请求), 服务器不是把这个请求交个servlet本身,而是交给了部署该servlet的容器, 容器创建新的线程, 要由容器向线程提供http请求和响应, 而且要容器调用servlet方法(doGet()和doPost())

    如果没有 tomcat, 那么所有的内容就要自己编写, 例如自己写 socket 等

    多亏有了容器, 你可以更专注于自己的业务逻辑, 而不用考虑为线程管理, 安全性和网络通信编写代码.

    容器会自动的为它接收的每个servlet请求创建一个新的java线程.

    利用容器, 可以使用 XML部署描述文件来配置(和修改)安全性.

    image

    image

    image

    image

    image

    image

    容器怎么样把 servlet 映射到 url ?

    1. 客户使用 servlet 绝对路径和文件名

    2. 容器开发商提供工具完成映射

    3. 某种属性来映射

    首先, 处于安全性和软件维护方面考虑, 不能使用方案1, 因为不需要让用户知道web的目录结构, 另外, 当要修改目录结构时, 如果采用这种方式, 难于修改, ( 应该做个间接, 做到一改全改 )

    而直接使用开发商提供的工具, 又缺乏灵活性, 所以 需要使用部署描述文件把 url 映射到 servlet

    在把 servlet部署到web容器时, 会创建一个相当简单的 xml 文档, 这称为 部署描述文件(DD),该文件会告诉容器如何运行你的servlet和jsp。

    <servlet> 把内部名映射到完全限定类名

    <servlet-mapping> 把内部名映射到公共URL

    image

    JSP web 流程

    image

    JSP世界中的MVC

    image

  • 相关阅读:
    Jasper 常用知识点总结
    Linux
    搭建spring项目,无法创建RequestMappingHandlerMapping异常
    pom.xml文件设置
    MySQL的常用JSON函数
    SQL中的条件判断语句(case when zhen if,ifnull)用法
    sql查询原理
    sql积累
    Linux常用命令大全
    mysql中group by 的用法解析
  • 原文地址:https://www.cnblogs.com/moveofgod/p/3375768.html
Copyright © 2011-2022 走看看