Java EE 6 Web Component Developer Certified Expert Exam (1Z0-899) segédlet
- Java EE 6: Servlet 3.0, JSP 2.2, EL 2.2
- Java EE 7: Servlet 3.1, JSP 2.3, EL 3.0
1. fejezet: Networks and HTTP
- URI két megvalósulása: URL, URN
- HTTP/1.0-ban csak a
GET,POST,HEADdefiniált - HTTP/1.1-ben:
GET,POST,HEAD,OPTIONS,PUT,DELETE,TRACE(CONNECT: reserved) - Státuszkódok: Informational (1xx), successful (2xx), Redirect (3xx), Client error (4xx), Server error (5xx)
2. fejezet: Java EE architecture
3. fejezet: Servlets
javax.servlet.Servletinterface,javax.servlet.GenericServletclass,javax.servlet.http.HttpServletclassHttpServlet-et nem kötelezõ kiterjeszteni, írható Generic-cel is Http-t kezelõ servlet- init hívásakor
ServletExceptionesetén van olyan konténer, mely megpróbálhatja újra példányosítani - init hívásakor
UnavailableException extends ServletException, megadhatjuk, hogy mennyi ideig áll fenn a probléma - service esetén megfelelõen formázott
UnavailableException- eltávolítja, permanent hiba esetén dobandó ServletException, vagy megfelelõen formázottUnavailableExceptionesetén újra próbálkozhat
4. fejezet: Servlet Contexts
getContext- más alkalmazás context-jét is képes visszaadni, a context-et kell átadni / jellel kezdve- Nem lehet más context-bõl attribútumot lekérni
5. fejezet: Request and responses
getInputStreamésgetReaderegyüttes meghívásaIllegalStateException-t dob- Hossz beállítása
ServletResponse.setContentLength ServletRequestListener.requestInitialized,requestDestroyedflushBufferután asetHeadernem dobIllegalStateException-t, csak nem állítja be
6. fejezet: RequestDispatcher & Wrappers
include()forward()elõtt nem lehet commitforward()visszatérése elõtt már elküldött, commitolt, lezárt a streamjavax.servlet.forward/include:request_uri,context_path,servlet_path,path_info,query_string`context_pathsohasem végzõdhet/jellel- a
getNamedDispatchernem állítja be arequest_uri, stb. paramétereket
7. fejezet: Filters
8. fejezet: Asynchronous requests
AsyncContextServletRequest.startAsync()AsyncContext.dispatch()hasonló, mint adispatcher.forward(), de- dispatcher type
FORWARDhelyettASYNC - buffer/header nem resetelõdik
- commitált response-ra is meg lehet hívni, ha késõbb nem módosítják a headert
AsyncContext.ASYNC_CONTEXT_URI,ASYNC_CONTEXT_PATH,ASYNC_SERVLET_PATH,ASYNC_PATH_INFO,ASYNC_QUERY_STRINGonStartAsync,onComplete,onTimeout,onError- a dispatch inkább egy include operációnak felel meg, azaz a hívó akár commitolhat is
- nem lehet dispatch-t kétszer ugyanazon az
AsyncContext-en hívni
9. fejezet: Session Management
HttpSessionActivationListener.sessionDidActivate,sessionWillPassivateHttpSession.get/setMaxInactiveIntervalHttpSessionAttributeListener-attributeAdded,attributeRemoved,attributeReplacedHttpSessionBindingListener, ennekvalueBoundésvalueUnboundmetódusa van
10. fejezet: Application Deployment
- filter-mapping/dispatcher:
FORWARD,INCLUDE,REQUEST,ERROR, és bejött azASYNC error-page/locationjavax.servlet.error.status_code,exception_type,message,exception,request_uri,servlet_name- sorrend:
listener,context,filter,servlet
11. fejezet: Modular deployment
metadata-complete: nincs scanjavax.servlet.annotationpackage@MultipartConfig:fileSizeThreshold,maxFileSize,maxRequestSizeMETA-INF/web-fragment.xmlordering,absolute-ordering,before,after,name,others- Ordering:
filter,servlet,ServletContextListener,ServletRequestListener,HttpSessionListener, other listeners - Programmatic registration:
servlet,filter,listener - Konfigurálni viszont csak
servlet-et ésfilter-t lehet - Több dolgot lehet beállítani dinamikusan regisztrált komponenseken
ServletRegistration.addMappingFilterRegistration.addMappingForServletNames,addMappingForUrlPatternsServletContextListnerer contextInitializedmetódusában, vagyServletContainerInitializerimplementációban, mely aMETA-INF/services/javax.servlet.ServletContainerInitializer-ben van felvéveonStartup(Set<Class<?>>, ServletContext)- van
enabledtag aservlettag-en belül - elõször a web-fragment töltõdik be, majd az annotációk, és végül merge-ölõdik egyesével a
web.xml-be
12. fejezet: Resource injection
javax.annotation.Resourcejavax.ejb.EJBjavax.persistence
13. fejezet: JSP Basics
taglib,uri,tagdir<%@include file=JspContext, és ennek a leszármazottja aPageContext- A tervezõk szerint a JSP nem csak servlet környezetben futtatható, de amennyiben abban fut, a
PageContextpéldányt kapja pageContext.forward,includejspInit-ben az implicit objektumok nem érhetõek el- implicit objektumok:
request,response,pageContext,session,application,out,config,page,exception
14. fejezet: JSP Documents
jsp:root, nem kötelezõ JSP 2.0-tóljsp:expressionjsp:directive.pagejsp:directive.includejsp:declarationjsp:scriptletjsp:textdirective.pagefile-t vár, mert statikusCDATA-n belül lévõt nem értelmezi- parse-nál hiba, akkor validation fázisban dob hibát
15. fejezet: Expression Language
- nincs konkatenáció
- Precedencia
[], .
()
- (unary), not, !, empty
*, /, div, %, mod
+, -
<, lt, >, gt, <=, le, >=, ge
==, eq, !=, ne
&&, and
||, or
?:
- implicit objects:
pageContext,pageScope,requestScope,sessionScope,applicationScope,param,paramValues,header,headerValues,cookie,initParam
##16. fejezet: Standard Actions & JavaBeans
<jsp:useBean>kombinációi:class: ezt példányosítjaclass,type: így deklaráljabeanName,type: elõször deszerializálni próbál, sikertelen esetben példányosíttype: így deklarálja, de nem példányosítja, ha nincs a scope-banInstantiationException<jsp:setProperty>name: bean neve, useBean id-japroperty: property neve, vagy *value: string vagy expressionparam: melyik paramból vegye<jsp:getProperty>jsp:includetag/action page paramétert vár, mert dinamikusjsp:forwardjsp:param
17. fejezet: Tag Libraries and the JSTL
<c:url><c:import url>-RequestDispatcher<c:redirect url>- url, import, redirect paraméterezéséhez:
c:param
18. fejezet: Custom Tags
javax.servlet.jsp.tagextpackageJspTag,Tag,IterationTag,TagSupport,BodyTag,BodyTagSupport,BodyContent,SimpleTag,JSPFragment,SimpleTagSupportdoStartTag:EVAL_BODY_INCLUDE,SKIP_BODYdoEndTag:EVAL_PAGE,SKIP_PAGE- Sorrend:
setPageContext,setParent, setters,doStartTag,doEndTag doAfterBody:SKIP_BODY,EVAL_BODY_AGAINSKIP_BODY,EVAL_BODY_BUFFEREDPageContext.pushBody,popBodySimpleTagsorrend:setJspContext,setParent, setters,setJspBody,doTag- A
SimpleTagbody nem tartalmazhat scripting elemet - Tag handler poolozott
SimpleTagmindig új példányDynamicAttributesjsp:attribute,jsp:body- synchronization of scripting variable:
AT_BEGIN,NESTED,AT_END TagAdapter
19. fejezet: Tag Files
- nincs pool
- JSP Context Wrapper
- variable synchronization
jsp:doBody,jsp:invoke
20. fejezet: Tag Deployment
urn:jsptld:/urn:jsptagdir:/
21. fejezet: Security
user-data-constraintNONE,INTEGRAL,CONFIDENTAL@ServletSecurity@HttpMethodConstraint@HttpConstraint
22. fejezet: Java EE Patterns
- MVC
- Presentation tier: Front Controller, Intercepting filter,
- Business logic tier: Business delegate, service locator, transfer object