1. Servlet
    1. Lifecycle
      1. Load Class
      2. Call No-Arg constructor
      3. init(ServletConfig)
      4. Init
      5. service
        1. doGet()
        2. doPost()
        3. ...
      6. destroy
    2. Hierarchy
      1. javax.servlet.Servlet
        1. javax.servlet.GenericServlet
          1. javax.servlet.http.HttpServlet
      2. javax.servlet.ServletRequest
        1. javax.servlet.http.HttpServletRequest
      3. javax.servlet.ServletResponse
        1. javax.servlet.http.HttpServletResponse
    3. ServletConfig
    4. ServletContext
    5. RequestDispatcher
  2. Custom Tags
    1. Classic Tags
      1. BodyTagSupport
      2. IterationTagSupport
    2. Simple Tags
    3. Tag Files
    4. TLD
  3. JavaServer Pages
    1. JSTL
      1. Core
        1. General
          1. out
          2. set
          3. remove
          4. catch
        2. Conditional
          1. if
          2. choose
          3. when
          4. otherwise
        3. URL related
          1. import
          2. url
          3. redirect
          4. param
        4. Iteration
          1. foreach
          2. forTokens
      2. Formatting
        1. Internationalization
          1. message
          2. setLocale
          3. bundle
          4. setBundle
          5. param
          6. requestEncoding
        2. Formatting
          1. timeZone
          2. setTimeZone
          3. formatNumber
          4. parseNumber
          5. parseDate
      3. SQL
        1. query
        2. update
        3. setDataSource
        4. param
        5. dateParam
      4. XML
        1. core
          1. parse
          2. out
          3. set
        2. flow
          1. if
          2. choose
          3. when
          4. otherwise
        3. transform
          1. transform
          2. param
    2. Elements
      1. Directives <%@ %> <jsp:directive.page import="" />
        1. page
          1. import
          2. isThreadSafe
          3. contentType
          4. isELIgnored
          5. isErrorPage
          6. errorpage
        2. include
        3. taglib
      2. Declarations <%! %> <jsp:declaration />
      3. Expressions <%= %> <jsp:expression></jsp:expression>
      4. Scriptlets <% %> <jsp:scriptlet></jsp:scriptlet>
      5. Comments <%-- --%>
      6. Standard Actions
        1. jsp:attribute
        2. jsp:import
        3. jsp:forward
        4. jsp:include
        5. jsp:useBean
        6. jsp:getProperty
        7. jsp:setProperty
        8. jsp:param
        9. jsp:params
    3. Lifecycle
      1. JSP page translation
      2. JSP page compilation
      3. Load Class
      4. Create Instance
      5. Create Instance
      6. Call the jspInit method
      7. call the _jspService method
      8. call the jspDestroy method
    4. Implicit Objects
  4. Expression Language
    1. Operators
      1. Arithmetic
        1. Addition +
        2. Subtraction -
        3. Multiplication *
        4. Division / and div
        5. Modulus % and mod
      2. Logical
        1. AND - "&&" or "and"
        2. OR - "||" and "or"
        3. NOT - "!" and "not"
      3. Relational
        1. Equals "==" or "eq"
        2. Not equals "!=" or "ne "
        3. Less than "<" or "lt"
        4. Greater than ">" or "gt"
        5. Less than or equals to "<=" or "le"
        6. Greater than or equals to ">=" or "ge"
    2. Dot notation .
    3. Subscript notation []
    4. Implicit Objects
    5. El Functions
  5. Http
    1. Methods
      1. get
      2. options
      3. head
      4. trace
      5. put
      6. delete
      7. post
      8. connect
    2. Usage
  6. Sessions
    1. HttpSession
      1. isNew()
      2. invalidate()
      3. getMaxInactiveInterval()
      4. setMaxInactiveInterval()
      5. getCreationTime()
      6. getLastAccessedTime()
      7. getId()
      8. Object getAttribute(String)
      9. void setAttribute(String key, Object value)
      10. void removeAttribute(String)
    2. Mechanisms
      1. Cookies
      2. URL Rewriting
        1. response.encodeUrl()
        2. respnse.encodeRedirectUrl()
    3. Create Session
      1. Session s = request.getSession()
      2. Session s = request.getSession(BOOLEAN)
  7. Security
    1. Security Mechanisms
      1. Authentication
      2. Authorization
      3. Confidentiality
      4. Data Integrity
  8. Deployment Descriptor
    1. description*
    2. display-name*
    3. icon
    4. context-param
      1. description
      2. param-name
      3. param-value
    5. filter*
    6. filter-mapping
    7. listener*
      1. listener-class
    8. servlet
      1. description*
      2. display-name*
      3. icon?
        1. small-icon?
        2. large-icon?
      4. servlet-name
      5. jsp-file or servlet-class
      6. init-param*
        1. description*
        2. param-name
        3. param-value
      7. load-on-startup?
      8. run-as?
        1. description*
        2. role-name
      9. security-role-ref*
        1. description*
        2. role-name
        3. role-link?
    9. servlet-mapping
      1. servlet-name
      2. url-pattern
    10. session-config*
      1. session-timeout
    11. mime-mapping
    12. welcome-file-list*
      1. welcome-file
    13. error-page
    14. security-constraint
      1. display-name*
      2. web-resource-collection+
        1. web-resource-name
        2. description*
        3. url-pattern+
        4. http-method*
      3. auth-constraint?
        1. description*
        2. role-name*
      4. user-data-constraint?
        1. transport-guarantee
        2. description*
    15. login-config*
      1. auth-method?
      2. realm-name?
      3. form-login-config
        1. form-login-page
        2. form-error-page
    16. security-role*
      1. description*
      2. role-name
    17. jsp-config
      1. taglib
      2. jsp-property-group
    18. <distributable />
    19. env-entry
    20. ejb-ref
    21. ejb-local-ref
    22. service-ref
    23. resource-ref
    24. resource-env-ref
    25. message-destination-ref
    26. locale-encoding-mapping-list
    27. Filters
    28. Servlets
    29. Security
    30. Sessions
    31. Listeners
  9. Listeners
    1. Servlet Context Listener
      1. Lifecycle
        1. ServletContextListener
        2. contextInitialized
        3. contextDestroyed
        4. ServletContextEvent
      2. Attributes
        1. attributeAdded
        2. attributeRemoved
        3. attributeReplaced
        4. ServletContextAttributeEvent
        5. ServletContextAttributeListener
    2. Http Session Listener
      1. Lifecycle
        1. HttpSessionListener
        2. sessionCreated
        3. sessionDestroyed
        4. HttpSessionEvent
      2. Attributes
        1. attributeAdded
        2. attributeRemoved
        3. attributeReplaced
        4. HttpSessionBindingEvent
        5. HttpSessionAttributeListener
      3. Session Migration
        1. HttpSessionActivationListener
        2. HttpSessionEvent
        3. sessionWillPassivate
        4. sessionDidActivate
      4. Object Binding Listener
        1. HttpSessionBindingListener
        2. HttpSessionBindingEvent
        3. valueBound
        4. valueUnbound
    3. Servlet Request Listener
      1. Lifecycle
        1. ServletRequestListener
        2. requestInitialized
        3. requestDestroyed
        4. ServletRequestEvent
      2. Attributes
        1. attributeAdded
        2. attributeRemoved
        3. attributeReplaced
        4. ServletRequestAttributeEvent
        5. ServletRequestAttributeListener