URL path ::= scheme://host:port/context-root/alias scheme = http, https alias = [/path...]/{|endname|*.ext} web module ::= WEB-INF/ web.xml (server specific Deployment Descriptor: jboss-web.xml jonas-web.xml sun-web.xml tomcat.xml) *.tld classes/.../*.class lib/*.jar META-INF/ *.tld tags/[subdirs.../]*.{tag,tagx} tags/[subdirs.../] *.{tag,tagx} [implicit.tld] .../*.{jsp,jspf,jspx,tagf,html,png,...} Deployment Descriptor ::= context-root = /name web.xml ::= not required if only static content + JSP pages *.jsp aliases are already mapped by web container index.html or index.jsp are default welcome files == @Resource class|method|field encoding, XML, emplacement de taglibs *.jsp ${expr} e1?e2:e3 e1 b-op e2 and && or || + - * / div % mod > gt < lt >= ge <= le == eq != ne u-op e1 - ! not empty value null true false 123 12.3[e-4] 'str1' "str2\'\"\\" (e1) implicit-obj pageContext servletContext, session, request, response pageScope, requestScope, sessionScope, applicationScope param, paramValues, header, headerValues, cookie, initParam name [ns:]func([e1,...]) value1.name value1[e1] <%= java-expr %> Predefined objects: --name-- --class-- --scope-- request javax.servlet.ServletRequest Request response javax.servlet.ServletResponse Page pageContext javax.servlet.jsp.PageContext Page session javax.servlet.http.HttpSession Session application javax.servlet.ServletContext Application out javax.servlet.jsp.JspWriter Page config javax.servlet.ServletConfig Page exception java.lang.Throwable Page *.jspx ]]> Web Components That Accept Resource Injections TABLE 3-1 Component Interface/Class Servlets javax.servlet.Servlet Servlet Filters javax.servlet.ServletFilter Event Listeners javax.servlet.ServletContextListener javax.servlet.ServletContextAttributeListener javax.servlet.ServletRequestListener javax.servlet.ServletRequestAttributeListener javax.servlet.http.HttpSessionListener javax.servlet.http.HttpSessionAttributeListener javax.servlet.http.HttpSessionBindingListener Taglib Listeners Same as above Taglib Tag Handlers javax.servlet.jsp.tagext.JspTag Managed Beans Plain Old Java Objects (for JSF) Injected types Annotation Injected class @Resource javax.sql.DataSource @PersistenceUnit javax.persistence.EntityManagerFactory @PersistenceContext javax.persistence.EntityManager @WebServiceRef(wsdlLocation="...wsdl") *Service