среда, 1 августа 2012 г.

module: web (server)

Описание

Подтемы

    - HTTP
    - Servlet API
    - JSP
    - webapp-container (Tomcat)
    - шаблон MVC
    - шаблон Front Controller

    Сущности и их жизненный цикл

    Servlet / HttpServlet / SingleThreadModel
    init()
    public String getInitParameter(String)
    public void destroy()

        CHAPTER SRV.2. The Servlet Interface
            SRV.2.1 Request Handling Methods            SRV.2.2 Number of Instances            SRV.2.3 Servlet Life Cycle

<web-app ...>
    ...
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>com.mycompany.myproj.HelloServlet</servlet-class>
    </servlet>

    <servlet>
        <servlet-name>BuyServlet</servlet-name>
        <servlet-class>com.mycompany.myproj.BuyServlet</servlet-class>
        <init-param>
            <param-name>greeting</param-name>
            <param-value>Welcome</param-value>
        </init-param>
        <init-param>
            <param-name>person</param-name>
            <param-value>WebLogic Developer</param-value>
        </init-param>
        <load-on-startup>10</load-on-startup>
    </servlet>
</web-app>

    Количество: для каждого объявленного в web.xml (а не класса) сервлета может существовать любое количество экземпляров, и в каждом из них может быть одновременно любое количество запросов.
    Момент создания:  если в web.xml в объявлении сервлета не стоит <load-on-startup>, то экземпляры сервлета будут созданы в неопределенный момент от старта war(? что с листенерами) до обработки первого запроса. Если в web.xml в объявлении сервлета стоит <load-on-startup>, то экземпляры сервлета будут созданы при старте war(? что с листенерами) в определенном порядке.
    Жизненный цикл: после вызова конструктора, но до вызова обработки первого запроса будет вызван init(). В init() можно прочитать значения из <init-param>. После обработки последнего запроса, но до потери ссылки на сервлет будет вызван destroy().

    Filter / FilterChain / FilterConfig

        CHAPTER SRV.6. Filtering
            SRV.6.1 What is a filter?            SRV.6.2 Main Concepts

    Listener
    HttpServletRequest
    HttpServletResponse
    HttpSession
    RequestDispatcher
    ServletContext
    Cookie

    Сущности детально


    Servlet / HttpServlet / GenericServlet / ServletConfig / ?JSPServlet?
    service() / doGet() / doPost() / 

    init()
    public ServletConfig getServletConfig()
    public String getInitParameter(String)
    public Enumeration getInitParameterNames()
    public ServletContext getServletContext()
    public void destroy()




    Взаимоотношения сущностей
    ф


    Request to Servlet/Filter mapping
    ф

    Лабораторные
    servlet.core.log_filter
    Написать фильтр, который пишет через Log4j в отдельный файл 
    - всю информацию о клиенте, которую смог получить из HttpServletRequest
    - всю информацию о URL, на который пришел запрос
    - время обработки запроса
    - если в init-config

    servlet.core.caching_filter

    servlet.core.codeset_filter



    HTML5
1) DOM model
11) JS places in DOM model
2) Embedded video
3) 50M storage
4) pixel art



    DNS
1) ?



    TCP
1) ?



    UDP
1) ?



    IP
1) ?



    Ethernet
1) ?