OCJWCD
Oracle Certified Java Web Component Developer
Oracle Certified Java Web Component Developer
-
- 1 / 106
-
Lernkarten
List HTTP Methods?
- GET
- POST
- PUT
- HEAD
- TRACE
- OPTIONS
- DELETE
The methods GET, HEAD, PUT, DELETE, OPTIONS and TRACE are idempotent (POST is not)
List servlet lifecycle?
- Loading
- Instantiation
- Initialization
- void init(ServletConfig config)
throws ServletException
- void init(ServletConfig config)
- Processing
- void service(ServletRequest request, ServletResponse response)
throws java.io.IOException, ServletException
- void service(ServletRequest request, ServletResponse response)
- 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?
- Translation
- Compilation
- Loading
- Instantiation
- Initialization
- void jspInit()
- Processing
- void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException
- void _jspService(HttpServletRequest request, HttpServletResponse response)
- 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?
- Loading
- Instantiation
- Initialization
- void init(FilterConfig config)
throws ServletException
- void init(FilterConfig config)
- Processing
- void doFilter(ServletRequest request, ServletResponse response)
throws java.io.IOException, ServletException
- void doFilter(ServletRequest request, ServletResponse response)
- 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.