[HeadFirst-JSPServlet学习笔记][第二章:高层概述]

第二章:高层体系结构

容器

1 什么是容器?

servelet没有main()方法。它们受控于另外一个Java应用,这个Java应用称为容器(Container)java

Tomcat就是这样一个容器。Web服务器应用(如Apache)获得一个指向servlet的请求,服务器不是把这个请求交给servlet自己,而是交给部署该servelet的容器。由该容器向servlet提供HTTP请求和响应,并且要由容器调用servlet的方法(如doPost()或doGet())程序员

2 容器能提供什么?

2.1 通讯支持

利用容器,能轻松的让servlet与Web服务器对话。你不用本身创建ServerSocket,监听某个端口,建立流等等。容器知道本身与Web服务器(如Apache)和你本身的Web代码之间的API。你要考虑的只是如何在servlet中实现业务逻辑web

2.2 生命周期管理

容器控制着servlet的生与死。它会负责加载类,实例化和初始化servlet。调用servlet的方法,以及使servlet实例可以被垃圾回收。有了容器的控制,你就不用太多考虑资源管理算法

2.3 多线程支持

容器会自动地为它接收的每一个servlet请求建立一个新的Java线程。针对客户的请求,若是servlet已经运行相应的HTTP服务方法,这个线程就会结束。不过仍是须要考虑线程安全性。仍是会遇到同步问题。数据库

2.4 声明方式实现安全

利用容器,可使用XML部署描述文件来配置(和修改)安全性,而没必要将其硬解码写到servlet(或其余)类代码中,想象一下,不用去改你的Java源文件,和从新编译。就能管理和修改安全性配置。设计模式

2.5 jsp支持

容器把JSP代码翻译成Java。tomcat

3 容器如何处理请求?


4 servlet代码剖析

5 容器如何知道servlet

  • 使用部署描述文件xml把URL映射到servlet上安全

    • servelet 服务器

      • servlet-name servlet在部署文件中的名字
      • servlet-class 类名
    • servlet-mappingmarkdown

      • servlet-name servlet在部署文件中的名字
      • url-pattern 映射的URL

实际代码:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">
<servlet>
        <servlet-name>Chapter1-Servlet</servlet-name>
        <servlet-class>Ch1Servlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Chapter1-Servlet</servlet-name>
    <url-pattern>/Serv1</url-pattern>
</servlet-mapping>
</web-app>

 

6 部署文件

1. 做用

主要:

  • URL 映射 servlet

其他:

  • 安全角色
  • 错误页面
  • 标记库
  • 初始化配置信息

2. 优势

  • 尽可能少地接触已经测试过的源代码
  • 更容易维护动态安全信息,如访问控制列表和安全角色

MVC设计模式

1.何为MVC模式?

维基百科:

MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

  • (控制器 Controller)- 负责转发请求,对请求进行处理。(servlet)
  • (视图 View) - 界面设计人员进行图形界面设计。(jsp)
  • (模型 Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(能够实现具体的功能)。

2.为何要用MVC模式

业务逻辑与表现分离

3.servlet&JSP世界中的MVC

  • 控制器

    从请求得到用户输入,并明确这些输入对模型有什么影响。告诉模型自行更新,而且让视图(JSP)能获得新的模型状态

  • 视图

    负责表示。它从控制器获得模型的状态(控制器把模型数据放在视图能找获得的地方)。另外,视图还能够得到用户输入,交给控制器

  • 模型

    实际的业务模型,系统只有这部分与数据库通讯

认识

1. tomcat 就是所谓的容器

2. MVC 模式 M model V view C control

相关文章
相关标签/搜索