zoukankan      html  css  js  c++  java
  • j2ee爬坑行之一:web容器

    什么是容器?

    servlet没用main方法,它们受控于另一个java应用程序,这个应用程序就称为容器。
    tomcat就是这样一个容器。当web服务器得到一个指向某servlet的请求,此时服务器不是直接将请求交给该servlet本身,而是交由部署该servlet的容器,由容器向servlet提供HTTP请求和响应,而且要由容器调用servlet的方法,如doPost()或doGet()。容器主要提供一下几个支持:

    1. 通信支持:利用容器提供的方法,你能轻松的让servlet 与web服务器对话,无需自己建立与web服务器之间的通信
    2. 生命周期管理:控制servlet的生命周期:servlet的加载、实例化和初始化servlet、调用servlet方法,并使servlet能被垃圾回收器回收
    3. 多线程支持:容器会自动为它接受的每个请求创建一个新的java线程来处理此请求
    4. 声明方式实现安全:使用XML部署描述文件来配置安全性
    5. jsp支持

    容器处理请求过程

    1. 用户点击一个链接,其url指向一个servlet而不是指向一个静态页面
    2. 容器根据url解析出对应的servlet,并为该请求创建两个对象:1)HttpServletResponse 2)HttpServletRequest
    3. 容器根据请求中的url找到正确的servlet,为这个请求创建或分配一个线程,并把该请求和响应传递给这个servlet线程
    4. 容器调用servlet的service()方法。根据请求的不同类型,service()方法会调用doGet()或doPost()方法。
    5. do**()方法生成动态页面,并把这个页面注入响应对象。
    6. 线程结束,容器把响应对象转换为一个http响应,并返回给客户,然后删除请求和响应对象。

    下面是一个servlet示例:

    public class HelloWoldServlet extends HttpServlet{
        @Override
        public void doGet(HttpServletRequest request,
                            HttpServletResponse response)
        throws IOException{
            PrintWriter out = response.getWriter();
            out.println("Hello World!");
        }
    }
  • 相关阅读:
    C语言高效编程的几招
    部分功能函数命名总结(补充中)
    Linux的多线程编程的高效开发经验
    生成PDF下载 HTTP或FTP远程获取PDF
    .dnn文件 xml 配置
    有身体 有钱 还要有什么能进太空?
    dnn 4.8.2 RegisterStartupScript 函数失效 解决方案
    字符串 分隔符 逗号行吗? JAVASCRIPT 函数参数中有单双引号
    2007年的最后一天,最后一个小时。
    标题中有单引号',怎么查询?
  • 原文地址:https://www.cnblogs.com/graph/p/4545088.html
Copyright © 2011-2022 走看看