OCJWCD

Oracle Certified Java Web Component Developer

Oracle Certified Java Web Component Developer


M. I.
Diese Lernkarten decken fortgeschrittene Themen der JavaServer Pages (JSP) und Servlet-Technologie ab, die für Universitätsstudenten relevant sind. Sie behandeln Farben, Methoden, EL-Objekte, Standardaktionen und Sicherheitskonfigurationen in JSP, einschließlich der Verwendung von Annotationen und XML-Dateien. Die Karteikarten sind besonders nützlich für Entwickler, die sich auf Webanwendungen spezialisieren und ein tiefes Verständnis der JSP- und Servlet-Sicherheitskonzepte benötigen.
Karten
106
Lernende
1
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
20.10.2017 / 21.10.2017

Lernkarten

List HTTP Methods?

  1. GET
  2. POST
  3. PUT
  4. HEAD
  5. TRACE
  6. OPTIONS
  7. DELETE

The methods GET, HEAD, PUT, DELETE, OPTIONS and TRACE are idempotent (POST is not)

List servlet lifecycle?

  1. Loading
  2. Instantiation
  3. Initialization
    • void init(ServletConfig config)
      throws ServletException
  4. Processing
    • void service(ServletRequest request, ServletResponse response) 
      throws java.io.IOException, ServletException
  5. Destruction
    • void destroy()

Methods declared in interface javax.servlet.Servlet

Context parameter: Webdescriptor syntax?

<context-param>
   <param-name>
Name</param-name>
   <param-value>
Value</param-value>
</context-param>

 

 

Servlet parameter: Webdescriptor syntax?

<servlet>
   <servlet-name>
Name</servlet-name>
   <servlet-class>package.MyClass</servlet-class>
   <init-param>
      <param-name>
Name</param-name>
      <param-value>
Value</param-value>
   </init-param>
</servlet>

 

Context parameter: How to access inside Servlet?

  • String getServletContext().getInitParameter("Name");
  • String getServletConfig().getServletContext().getInitParameter("Name");
  • Enumeration<String> getServletContext().getInitParameterNames()

Servlet parameter: How to access inside Servlet?

  • String getServletConfig().getInitParameter("Name");
  • String getInitParameter("Name");
  • Enumeration<String> getServletConfig().getInitParameterNames();
  • Enumeration<String> getInitParameterNames();

Cookie.setMaxAge(5)?

Cookie will expire after 5 Seconds

Cookie.setMaxAge(-5)?

Cookie will be deleted when web browser exits

Cookie.setMaxAge(0)?

Cookie will be deleted

<ServletContext>.getRequestDispatcher("/welcome.jsp")

Returns RequestDispatcher object to welcome.jsp

<ServletContext>.getRequestDispatcher("welcome.jsp")?

Throws IllegalArgumentException because "/" is missing!

<ServletRequest>.getRequestDispatcher("/welcome.jsp")?

Returns RequestDispatcher object absolute to root

<ServletRequest>.getRequestDispatcher("welcome.jsp")?

Returns RequestDispatcher object relative to request url

Declare Servlet "package.MyServlet" with mapping /myservlet/* and parameter "myParam=mike" in web.xml..

<servlet>
   <servlet-name>
myservlet</servlet-name>
   <servlet-class>package.MyServlet</servlet-class>
      <init-param>
         <param-name>
myParam</param-name>
          <param-value>mike</param-value>
      </init-param>
</servlet>

<servlet-mapping>        
   <servlet-name>
myservlet</servlet-name>
   <url-pattern>
/myservlet/*</url-pattern>
</servlet-mapping>

Declare Servlet "package.MyServlet" with mapping /myservlet/* and parameter "myParam=mike" using annotation..

@WebServlet(
    name="myservlet",
    urlPatterns={"/myservlet/*"},
    initParams={ @WebInitParam(name="myParam", value="mike") }))


class MyServlet extends HttpServlet {
...

Declare Filter "package.MyFilter" with mapping * and parameter "myParam=mike" in web.xml..

<filter>        
   <filter-name>
myfilter</filter-name>        
   <filter-class>
package.MyFilter</filter-class>        
   <init-param>            
       <param-name>
logType</param-name>            
       <param-value>
special</param-value>        
   </init-param>    
</filter>

<filter-mapping>        
   <filter-name>
logSpecial</filter-name>        
   <url-pattern>
*.special</url-pattern>    
</filter-mapping>

Declare Filter "package.MyFilter" with mapping * and parameter "myParam=mike" using annotations..

@WebFilter(
    urlPatterns={"*" },
    initParams={ @WebInitParam(name="myParam", value="mike") }))

public class MyFilter implements javax.servlet.Filter {
...

Declare listener in web.xml..

<listener>
   <listener-class>
package.MyListener</listener-class>
</listener>

Declare listener using annotations..

@WebListener
public class MyListener implements ServletContextListener {

..

ServletContextListener

  • describe usage?
  • package?
  • needs to be defined in deplyoment descriptor?
  • describe methods?

Usage
Context has been created or destroyed

Package
javax.servlet

Deployment Descriptor
yes

Methods

  • contextInitialized(ServletContextEvent)
  • contextDestroyed(ServletContextEvent)

 

ServletContextAttributeListener

  • describe usage?
  • package?
  • needs to be defined in deplyoment descriptor?
  • describe methods?

Usage
Web App Context Attribute has been added, removed or replaced

Package
javax.servlet

Deployment Descriptor
yes

Methods

  • attributeAdded(ServletContextAttributeEvent)
  • attributeRemoved(ServletContextAttributeEvent)
  • attributeReplaced(ServletContextAttributeEvent)

ServletRequestListener

  • describe usage?
  • package?
  • needs to be defined in deplyoment descriptor?
  • describe methods?

Usage
Tracks requests

Package
javax.servlet

Deployment Descriptor
yes

Methods

  • requestInitialized(ServletRequestEvent)
  • requestDestroyed(ServletRequestEvent)

ServletRequestAttributeListener

  • describe usage?
  • package?
  • needs to be defined in deplyoment descriptor?
  • describe methods?

Usage
Request attribute has been added, remove or replaced

Package
javax.servlet

Deployment Descriptor
yes

Methods

  • attributeAdded(ServletRequestAttributeEvent)
  • attributeRemoved(ServletRequestAttributeEvent)
  • attributeReplaced(ServletRequestAttributeEvent)

HttpSessionListener

  • describe usage?
  • package?
  • needs to be defined in deplyoment descriptor?
  • describe methods?

Usage
Tracks the current session

Package
javax.servlet.http

Deployment Descriptor
yes

Methods

  • sessionCreated(HttpSessionEvent)
  • sessionDestroyed(HttpSessionEvent)

HttpSessionAttributeListener

  • describe usage?
  • package?
  • needs to be defined in deplyoment descriptor?
  • describe methods?

Usage
Session attribute has been added, remove or replaced

Package
javax.servlet.http

Deployment Descriptor
yes

Methods

  • attributeAdded(HttpSessionBindingEvent)
  • attributeRemoved(HttpSessionBindingEvent)
  • attributeReplaced(HttpSessionBindingEvent)

HttpSessionActivationListener

  • describe usage?
  • package?
  • needs to be defined in deplyoment descriptor?
  • describe methods?

Usage
Only used when session is migrated to another server

Package
javax.servlet.http

Deployment Descriptor
no

Methods

  • sessionDidActivate(HttpSessionEvent)
  • sessionWillPassivate(HttpSessionEvent)

HttpSessionBindingListener

  • describe usage?
  • package?
  • needs to be defined in deplyoment descriptor?
  • describe methods?

Usage
Object has been added (bound) or removed (unbound) from a session

Package
javax.servlet.http

Deployment Descriptor
no

Methods

  • valueBound(HttpSessionBindingEvent)
  • valueUnbound(HttpSessionBindingEvent)

AsyncListener

  • describe usage?
  • package?
  • needs to be defined in deplyoment descriptor?
  • describe methods?

Usage
Listener for asynchronous lifecycle operations.

Package
javax.servlet.

Deployment Descriptor
no

Has to be added programmatically: AsyncContext ctx = request.startAsync(); ctx.addListener(...);

Methods

  • onComplete(AsyncEvent)
  • onError(AsyncEvent)
  • onStartAsync(AsyncEvent)
  • onTimeout(AsyncEvent)

List JSP lifecycle?

  1. Translation
  2. Compilation
  3. Loading
  4. Instantiation
  5. Initialization
    • void jspInit()
  6. Processing
    • void _jspService(HttpServletRequest request, HttpServletResponse response) 
      throws java.io.IOException, ServletException
  7. Destruction
    • void jspDestroy()

jspInit() and jspDestroy() methods are declared in interface javax.servlet.jsp.JspPage.

_jspService(..) depends on specific protocol and cannto be expressed in a generic way!

HTTP 1xx

Informational responses

HTTP 2xx/ 200/ 201/ 204

2xx Successful

  • 200: OK
  • 201: Created
  • 204: No content

HTTP 3xx/ 300/ 304

3xx Redirection

  • 300: Multiple choices
  • 304: Not modified

HTTP 4xx/ 400/ 401/ 403/ 404/ 409

4xx Client error

  • 400: Bad request
  • 401: Unauthorized
  • 403: Forbidden
  • 404: Not found
  • 409: Conflict

HTTP 5xx/ 500/ 501/ 502/ 503

5xx Server error

  • 500: Internal server error
  • 501: Not implemented
  • 502: Bad gateway
  • 503: Service unavailable

How to read string/ binary data from request?

Binary
ServletInputStream input = request.getInputStream();

String
java.io.BufferedReader reader = request.getReader();

How to write string/ binary data to response?

Binary
ServletOutputStream input = response.getOutputStream();

String
java.io.PrintWriter writer = response.getWriter();

Methods to read/write/remove attributes from request?

  • Object getAttribute(String)
  • Enumeration getAttributeNames()
  • void setAttribute(String, Object)
  • void removeAttribute(String)

Methods to read parameter from request?

  • String getParameter(String)
  • Map getParameterMap()
  • Enumeration getParameterNames()
  • String[] getParameterValues(String)

List Filter lifecycle?

  1. Loading
  2. Instantiation
  3. Initialization
    • void init(FilterConfig config)
      throws ServletException
  4. Processing
    • void doFilter(ServletRequest request, ServletResponse response) 
      throws java.io.IOException, ServletException
  5. Destruction
    • void destroy()

Methods declared in interface javax.servlet.Filter

HttpServletRequest.getSession();

HttpServletRequest.getSession(boolean create);

HttpServletRequest.getSession();

Returns the current session associated with this request, or if the request does not have a session, creates one.
= getSession(true);

HttpServletRequest.getSession(boolean create);

Return the current HttpSession associated with this request or, if there is no current session and create is true, returns a new session.

Lernen