[scwcd 5] api and syntactical reference

30
[SCWCD 5] API and Syntactical Reference Mohammad Albaba [email protected] Acknowledgements: I would like to thank the following people: Charles Lyons for his book SCWCD Study Companion. Franck Allimant for his Java Documentation in HTMLHelp format. Frederic Esnault for his inspiring notes. * This reference was ordered based on Charles Lyons’ book.

Upload: lav-anya

Post on 21-Oct-2015

30 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: [SCWCD 5] API and Syntactical Reference

[SCWCD 5] API and Syntactical Reference

Mohammad Albaba

[email protected]

Acknowledgements:

I would like to thank the following people:

Charles Lyons for his book SCWCD Study Companion.

Franck Allimant for his Java Documentation in HTMLHelp format.

Frederic Esnault for his inspiring notes.

* This reference was ordered based on Charles Lyons’ book.

Page 2: [SCWCD 5] API and Syntactical Reference

Contents Chapter 3: Servlet Basics ..................................................................................................................................................... 3

Chapter 4: Servlet Contexts ................................................................................................................................................ 4

Chapter 5: Requests and Responses ................................................................................................................................... 6

Chapter 6: Request Dispatching and Wrappers ................................................................................................................ 11

Chapter 7: Filters .............................................................................................................................................................. 13

Chapter 8: Session Management ...................................................................................................................................... 14

Chapter 10: JSP basics ....................................................................................................................................................... 16

Chapter 15: Custom Tags .................................................................................................................................................. 18

Chapter 11: JSP Documents .............................................................................................................................................. 21

Chapter 12: EL ................................................................................................................................................................... 21

Chapter 13: Standard Actions and JavaBeans ................................................................................................................... 21

Chapter 14: Tag libraries and JSTL .................................................................................................................................... 22

Chapter 16: Tag files ......................................................................................................................................................... 23

Chapter 9: Application Deployment ................................................................................................................................. 24

Chapter 18: Security .......................................................................................................................................................... 26

Chapter 17: Tag Deployment ............................................................................................................................................ 27

Chapter 20: Servlets 2.5 and JSP 2.1 Changes .................................................................................................................. 29

Page 3: [SCWCD 5] API and Syntactical Reference

Chapter 3: Servlet Basics

All servlets implement the interface: javax.servlet.Servlet

GenericServlet implements Servlet, ServletConfig

HttpServlet extends GenericServlet

UnavailableException extends ServletException

javax.servlet.ServletException

javax.servlet.UnavailableException

javax.servlet.Servlet

public void init(ServletConfig config) throws ServletException

public void service(ServletRequest req,ServletResponse res)

throws ServletException,

IOException

public void destroy()

javax.servlet.GenericServlet

public void init(ServletConfig config) throws ServletException

public void init() throws ServletException

public abstract void service(ServletRequest req, ServletResponse res)

throws ServletException,

IOException

javax.servlet.http.HttpServlet

protected void service(HttpServletRequest req, HttpServletResponse resp)

throws ServletException,

IOException

public void service(ServletRequest req, ServletResponse res)

throws ServletException,

IOException

Page 4: [SCWCD 5] API and Syntactical Reference

Chapter 4: Servlet Contexts

javax.servlet.ServletContext

public Object getAttribute(String name)

public Enumeration getAttributeNames()

public void setAttribute(String name, Object object)

public void removeAttribute(String name)

public String getServletContextName()

public String getRealPath(String path)

public Set getResourcePaths(String path)

public ServletContext getContext(String uripath)

public URL getResource(String path) throws MalformedURLException

public InputStream getResourceAsStream(String path)

public String getMimeType(String file)

public RequestDispatcher getRequestDispatcher(String path)

public RequestDispatcher getNamedDispatcher(String name)

public String getInitParameter(String name)

public Enumeration getInitParameterNames()

javax.servlet.ServletConfig

public ServletContext getServletContext()

public String getInitParameter(String name)

public Enumeration getInitParameterNames()

public String getServletName()

javax.servlet.GenericServlet

public ServletConfig getServletConfig()

public ServletContext getServletContext()

public String getInitParameter(String name)

public Enumeration getInitParameterNames()

public String getServletName()

Page 5: [SCWCD 5] API and Syntactical Reference

javax.servlet.ServletContextListener

public void contextInitialized(ServletContextEvent sce)

public void contextDestroyed(ServletContextEvent sce)

javax.servlet.ServletContextEvent

public ServletContext getServletContext()

javax.servlet.ServletContextAttributeListener

public void attributeAdded(ServletContextAttributeEvent scab)

public void attributeRemoved(ServletContextAttributeEvent scab)

public void attributeReplaced(ServletContextAttributeEvent scab)

javax.servlet.ServletContextAttributeEvent

public String getName()

public Object getValue()

Page 6: [SCWCD 5] API and Syntactical Reference

Chapter 5: Requests and Responses

HttpServletRequest extends ServletRequest

HttpServletResponse extends ServletResponse

javax.servlet.ServletRequest

public Object getAttribute(String name)

public Enumeration getAttributeNames()

public void removeAttribute(String name)

public void setAttribute(String name, Object o)

public String getParameter(String name)

public String[] getParameterValues(String name)

public Enumeration getParameterNames()

public Map getParameterMap()

public ServletInputStream getInputStream() throws IOException

Throws:

IllegalStateException - if the getReader() method has already been called for this

request

IOException - if an input or output exception occurred

public BufferedReader getReader() throws IOException

Throws: IllegalStateException - if getInputStream() method has been called on this request

IOException - if an input or output exception occurred

public RequestDispatcher getRequestDispatcher(String path)

javax.servlet.http.HttpServletRequest

public Enumeration getHeaders(String name)

public String getHeader(String name)

public Enumeration getHeaderNames()

public int getIntHeader(String name)

Throws: (unchecked)

NumberFormatException - If the header value can't be converted to an int

public long getDateHeader(String name)

Throws: (unchecked)

IllegalArgumentException - If the header value can't be converted to a date

Page 7: [SCWCD 5] API and Syntactical Reference

public String getAuthType()

public String getRemoteUser()

public java.security.Principal getUserPrincipal()

public boolean isUserInRole(String role)

public javax.servlet.http.Cookie [] getCookies()

public String getRequestedSessionId()

public HttpSession getSession()

public HttpSession getSession(boolean create)

public boolean isRequestedSessionIdValid()

public boolean isRequestedSessionIdFromCookie()

public boolean isRequestedSessionIdFromURL()

javax.servlet.ServletResponse

public ServletOutputStream getOutputStream() throws IOException

Throws:

IllegalStateException - if the getWriter method has been called on this response

IOException - if an input or output exception occurred

public PrintWriter getWriter() throws IOException

Throws:

UnsupportedEncodingException - if the character encoding returned by

getCharacterEncoding cannot be used

IllegalStateException - if the getOutputStream method has already been called for

this response object

IOException - if an input or output exception occurred

public void flushBuffer() throws IOException

public int getBufferSize()

public boolean isCommitted()

public void reset()

Throws:

IllegalStateException - if the response has already been committed

public void resetBuffer()

Throws:

IllegalStateException - if the response has already been committed

public void setBufferSize(int size)

Throws:

IllegalStateException - if this method is called after content has been written

Page 8: [SCWCD 5] API and Syntactical Reference

public void setCharacterEncoding(String charset)

public String getCharacterEncoding()

public String getContentType()

public void setContentType(String type)

public Locale getLocale()

public void setLocale(Locale loc)

public void setContentLength(int len)

javax.servlet.http.HttpServletResponse

public void addHeader(String name, String value)

public void setHeader(String name, String value)

public boolean containsHeader(String name)

public void addIntHeader(String name, int value)

public void setIntHeader(String name, int value)

public void addDateHeader(String name, long date)

public void setDateHeader(String name, long date)

public void setStatus(int sc)

public void sendError(int sc) throws IOException

Throws:

IOException - If an input or output exception occurs

IllegalStateException - If the response was committed before this method call

public void sendError(int sc, String msg) throws IOException

Throws:

IOException - If an input or output exception occurs

IllegalStateException - If the response was committed

public void sendRedirect(String location) throws IOException

Throws:

IOException - If an input or output exception occurs

IllegalStateException - If the response was committed or if a partial URL is given

and cannot be converted into a valid URL

public String encodeURL(String url)

public String encodeRedirectURL(String url)

public void addCookie(Cookie cookie)

Page 9: [SCWCD 5] API and Syntactical Reference

javax.servlet.ServletRequestListener

public void requestInitialized(ServletRequestEvent sre)

public void requestDestroyed(ServletRequestEvent sre)

javax.servlet.ServletRequestEvent

public ServletRequest getServletRequest()

public ServletContext getServletContext()

javax.servlet.ServletRequestAttributeListener

public void attributeAdded(ServletRequestAttributeEvent srae)

public void attributeRemoved(ServletRequestAttributeEvent srae)

public void attributeReplaced(ServletRequestAttributeEvent srae)

javax.servlet.ServletRequestAttributeEvent

public String getName()

public Object getValue()

Page 10: [SCWCD 5] API and Syntactical Reference

javax.servlet.http.Cookie

public Cookie(String name, String value)

Throws:

IllegalArgumentException - if the cookie name contains illegal characters (for

example, a comma, space, or semicolon) or it is one of the tokens reserved for use

by the cookie protocol

public void setComment(String purpose)

public String getComment()

public void setDomain(String pattern)

public String getDomain()

public void setMaxAge(int expiry)

public int getMaxAge()

public void setPath(String uri)

public String getPath()

public void setSecure(boolean flag)

public boolean getSecure()

public String getName()

public void setValue(String newValue)

public String getValue()

public int getVersion()

public void setVersion(int v)

Page 11: [SCWCD 5] API and Syntactical Reference

Chapter 6: Request Dispatching and Wrappers

ServletRequestWrapper implements ServletRequest

HttpServletRequestWrapper extends ServletRequestWrapper implements HttpServletRequest

ServletResponseWrapper implements ServletResponse

HttpServletResponseWrapper extends ServletResponseWrapper implements HttpServletResponse

javax.servlet.RequestDispatcher

public void forward(ServletRequest request, ServletResponse response)

throws ServletException,

IOException

Throws:

ServletException - if the target resource throws this exception

IOException - if the target resource throws this exception

IllegalStateException - if the response was already committed

public void include(ServletRequest request, ServletResponse response)

throws ServletException,

IOException

Throws:

ServletException - if the included resource throws this exception

IOException - if the included resource throws this exception

During include, the following attributes are set on the request:

javax.servlet.include.request_uri

javax.servlet.include.context_path

javax.servlet.include.servlet_path

javax.servlet.include.path_info

javax.servlet.include.query_string

These attributes are not set if the requestDispatcher was obtained from getNamedDispatcher method.

During forward, the following attributes are set on the request:

javax.servlet.forward.request_uri

javax.servlet.forward.context_path

javax.servlet.forward.servlet_path

javax.servlet.forward.path_info

javax.servlet.forward.query_string

These attributes always reflect the original request information, regardless if the container forwards or includes the

request any further.

Page 12: [SCWCD 5] API and Syntactical Reference

javax.servlet.ServletRequestWrapper

public ServletRequestWrapper(ServletRequest request)

Throws:

IllegalArgumentException - if the request is null

public ServletRequest getRequest()

public void setRequest(ServletRequest request)

Throws:

IllegalArgumentException - if the request is null.

javax.servlet.http.HttpServletRequestWrapper

public HttpServletRequestWrapper(HttpServletRequest request)

Throws:

IllegalArgumentException - if the request is null

javax.servlet.ServletResponseWrapper

public ServletResponseWrapper(ServletResponse response)

Throws:

IllegalArgumentException - if the response is null.

public ServletResponse getResponse()

public void setResponse(ServletResponse response)

Throws:

IllegalArgumentException - if the response is null.

javax.servlet.http.HttpServletResponseWrapper

public HttpServletResponseWrapper(HttpServletResponse response)

Throws:

IllegalArgumentException - if the response is null

Page 13: [SCWCD 5] API and Syntactical Reference

Chapter 7: Filters

javax.servlet.Filter

public void init(FilterConfig filterConfig) throws ServletException

public void destroy()

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

throws IOException,

ServletException

javax.servlet.FilterChain

public void doFilter(ServletRequest request, ServletResponse response)

throws IOException,

ServletException

javax.servlet.FilterConfig

public String getFilterName()

public ServletContext getServletContext()

public String getInitParameter(String name)

public Enumeration getInitParameterNames()

Page 14: [SCWCD 5] API and Syntactical Reference

Chapter 8: Session Management

javax.servlet.http.HttpSession

NOTE: All the methods after the first three throw IllegalStateException if called on an invalidated session

public int getMaxInactiveInterval() in seconds

public void setMaxInactiveInterval(int interval)

public ServletContext getServletContext()

public Object getAttribute(String name)

public Enumeration getAttributeNames()

public void setAttribute(String name, Object value)

public void removeAttribute(String name)

public long getCreationTime()

public String getId()

public void invalidate()

public boolean isNew()

public long getLastAccessedTime()

javax.servlet.http.HttpSessionListener

public void sessionCreated(HttpSessionEvent se)

public void sessionDestroyed(HttpSessionEvent se)

javax.servlet.http.HttpSessionActivationListener

public void sessionDidActivate(HttpSessionEvent se)

public void sessionWillPassivate(HttpSessionEvent se)

javax.servlet.http.HttpSessionEvent

public HttpSession getSession()

Page 15: [SCWCD 5] API and Syntactical Reference

javax.servlet.http.HttpSessionAttributeListener

public void attributeAdded(HttpSessionBindingEvent se)

public void attributeRemoved(HttpSessionBindingEvent se)

public void attributeReplaced(HttpSessionBindingEvent se)

javax.servlet.http.HttpSessionBindingListener

public void valueBound(HttpSessionBindingEvent event)

public void valueUnbound(HttpSessionBindingEvent event)

javax.servlet.http.HttpSessionBindingEvent

public String getName()

public Object getValue()

Page 16: [SCWCD 5] API and Syntactical Reference

Chapter 10: JSP basics

PageContext extends JspContext

javax.servlet.jsp.JspContext

public abstract Object findAttribute(String name)

public abstract void setAttribute(String name, Object value)

public abstract void setAttribute(String name, Object value, int scope)

public abstract Object getAttribute(String name, int scope)

public abstract Object getAttribute(String name)

public abstract void removeAttribute(String name)

public abstract void removeAttribute(String name, int scope)

public abstract int getAttributesScope(String name)

public abstract Enumeration getAttributeNamesInScope(int scope)

public abstract JspWriter getOut()

public abstract ExpressionEvaluator getExpressionEvaluator()

public abstract VariableResolver getVariableResolver()

public JspWriter pushBody(Writer writer)

public JspWriter popBody()

Page 17: [SCWCD 5] API and Syntactical Reference

javax.servlet.jsp.PageContext

public abstract Exception getException()

public abstract Object getPage()

public abstract ServletRequest getRequest()

public abstract ServletResponse getResponse()

public abstract ServletConfig getServletConfig()

public abstract ServletContext getServletContext()

public abstract HttpSession getSession()

public abstract void forward(String relativeUrlPath)

throws ServletException,

IOException

public abstract void include(String relativeUrlPath)

throws ServletException,

IOException

public abstract void include(String relativeUrlPath, boolean flush)

throws ServletException,

IOException

public abstract void handlePageException(Exception e)

throws ServletException,

IOException

public abstract void handlePageException(Throwable t)

throws ServletException,

IOException

public ErrorData getErrorData()

Page 18: [SCWCD 5] API and Syntactical Reference

Chapter 15: Custom Tags

All tags must implement the interface: javax.servlet.jsp.tagext.JspTag

Tag extends JspTag

IterationTag extends Tag

TagSupport implements IterationTag

BodyTag extends IterationTag

BodyContent extends JspWriter

BodyTagSupport extends TagSupport implements BodyTag

SimpleTag extends JspTag

SimpleTagSupport implements SimpleTag

javax.servlet.jsp.tagext.Tag

public void setParent(Tag t)

public void setPageContext(PageContext pc)

public Tag getParent()

public void release()

public int doStartTag() throws JspException

return: Tag.EVAL_BODY_INCLUDE, BodyTag.EVAL_BODY_BUFFERED, SKIP_BODY

public int doEndTag() throws JspException

return: EVAL_PAGE, SKIP_PAGE

javax.servlet.jsp.tagext.IterationTag

public int doAfterBody() throws JspException

return: EVAL_BODY_AGAIN, SKIP_BODY

javax.servlet.jsp.tagext.TagSupport

The default behavior is:

doStartTag() > SKIP_BODY, doAfterBody() > SKIP_BODY, doEndTag() > EVAL_PAGE

Page 19: [SCWCD 5] API and Syntactical Reference

javax.servlet.jsp.tagext.BodyTag

This interface provides a buffer to which all evaluated body content is written. Both of the following methods will be invoked when doStartTag() returns EVAL_BODY_BUFFERED and the body of the tag is not empty.

public void doInitBody() throws JspException

public void setBodyContent(BodyContent b)

javax.servlet.jsp.tagext.BodyContent

public void clearBody()

public void flush() throws IOException (always thrown)

public JspWriter getEnclosingWriter()

public abstract Reader getReader()

public abstract String getString()

public abstract void writeOut(Writer out) throws IOException

javax.servlet.jsp.tagext.BodyTagSupport

Default return values:

doStartTag() > EVAL_BODY_BUFFERED

doAfterBody() > SKIP_BODY

doEndTag() > EVAL_PAGE

javax.servlet.jsp.tagext.SimpleTag

public void setJspContext(JspContext pc)

public void setParent(JspTag parent)

public JspTag getParent()

public void setJspBody(JspFragment jspBody)

public void doTag() throws JspException, IOException

Page 20: [SCWCD 5] API and Syntactical Reference

javax.servlet.jsp.tagext.JspFragment

public abstract void invoke(Writer out)

throws JspException,

IOException

public abstract JspContext getJspContext()

javax.servlet.jsp.tagext.DynamicAttributes

public void setDynamicAttribute(String uri, String localName, Object value)

throws JspException

Page 21: [SCWCD 5] API and Syntactical Reference

Chapter 11: JSP Documents

JSP Documents

<jsp:root xmlns:jsp=”url” version=”2.0”>

</jsp:root>

Or

<anything:root xmlns:anything=”url” version=”2.0”>

</anything:root>

<jsp:directive.page />

<jsp:directive.include />

<jsp:directive.tag />

<jsp:declaration></jsp:declaration>

<jsp:scriptlet></jsp:scriptlet>

<jsp:expression></jsp:expression>

<jsp:text></jsp:text>

Chapter 12: EL

EL Functions

<taglib>

<function>

<name></name>

<function-class></function-class>

<function-signature></function-signature>

</function>

</taglib>

Chapter 13: Standard Actions and JavaBeans

Standard Actions

<jsp:useBean id scope type class|beanName />

<jsp:setProperty name property value param>

<jsp:getProperty name property />

<jsp:include page flush>

<jsp:forward page />

<jsp:param name value >

Page 22: [SCWCD 5] API and Syntactical Reference

Chapter 14: Tag libraries and JSTL

JSTL

<c:out value escapeXml default />

<c:catch var>

</c:catch>

<c:set var value scope />

<c:set target property value/>

<c:remove var scope />

<c:if test var scope />

<c:choose>

<c:when test></c:when>

<c:otherwise><c:otherwise>

</c:choose>

<c:forEach begin end step var></c:forEach>

<c:forEach items></c:forEach>

Methods during iterations:

Object getCurrent()

int getIndex()

int getCount()

boolean isFirst()

boolean isLast()

Integer getBegin()

Integer getEnd()

Integer getStep()

<c:forTokens items delims var begin end step varStatus></c:forTokens>

<c:url value context var scope />

<c:import url context varReader />

<c:redirect url context />

<c:param name value />

or

<c:param name>value</c:param>

Page 23: [SCWCD 5] API and Syntactical Reference

Chapter 16: Tag files

Tag Files

<%@ tag body-content dynamic-attributes language import pageEncoding isELIgnoerd %>

Or

<jsp:directive.tag … />

<%@ attribute name required fragment rtexprvalue type %>

Or

<jsp:directive.attribute … />

<%@ variable name-given variable-class declare scope name-from-attribute alias %>

Or

<jsp:directive.variable … />

<jsp:doBody var varReader scope/>

<jsp:invoke fragment/>

Page 24: [SCWCD 5] API and Syntactical Reference

Chapter 9: Application Deployment

The Deployment Descriptor Syntax All elements are encapsulated inside <web-app> tag. <context-param>

<description></description> <param-name></param-name> <param-value></param-value>

</context-param>

<filter>

<description></description> <display-name></display-name> <icon></icon> <filter-name></filter-name> <filter-class></filter-class> <init-param></init-param>

</filter> <init-param>

<description></description> <param-name></param-name> <param-value></param-value>

</init-param> <filter-mapping>

<filter-name></filter-name> <url-pattern></url-pattern> or <servlet-name></servlet-name> <dispatcher>FORWARD | INCLUDE | REQUEST | ERROR </dispatcher>

</filter-mapping> <listener>

<description></description> <display-name></display-name> <icon></icon> <listener-class></listener-class>

</listener> <servlet>

<description></description> <display-name></display-name> <icon></icon> <servlet-name></servlet-name> <servlet-class></servlet-class> or <jsp-file></jsp-file> <init-param></init-param> <load-on-startup></load-on-startup> <run-as></run-as> <security-role-ref></security-role-ref>

</servlet>

Page 25: [SCWCD 5] API and Syntactical Reference

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

</servlet-mapping> <session-config>

<session-timeout></session-timeout> </session-config> <mime-mapping>

<extension></extension> <mime-type></mime-type>

</mime-mapping> <welcome-file-list>

<welcome-file></welcome-file> </welcome-file-list> <error-page>

<error-code></error-code> or <exception-type></exception-type> <location></location>

</error-page> When the container forwards to an error page, it sets the following request-scoped attributes:

javax.servlet.error.status_code

javax.servlet.error.exception_type

javax.servlet.error.message

javax.servlet.error.exception

javax.servlet.error.request_uri

javax.servlet.error.servlet_name

<jsp-config> <description></description> <display-name></display-name> <icon></icon> <taglib>

<taglib-uri></taglib-uri> <taglib-location></taglib-location>

</taglib> <jsp-property-group>

<description></description> <display-name></display-name> <icon></icon> <url-pattern></url-pattern> <el-ignored></el-ignored> <page-encoding></page-encoding> <scripting-invalid></scripting-invalid> <is-xml></is-xml> <include-prelude></include-prelude> <include-coda></include-coda>

</jsp-property-group> </jsp-config>

Page 26: [SCWCD 5] API and Syntactical Reference

Chapter 18: Security

The Deployment Descriptor Syntax (Security Configuration) <login-config>

<auth-method>BASIC | DIGEST | CLIENT-CERT</auth-method> <realm-name> (doesn’t exist when using client-cert) </realm-name>

</login-config>

<login-config>

<auth-method>FORM</auth-method> <form-login-config>

<form-login-page></form-login-page> <form-error-page></form-error-page>

</form-login-config> </login-config>

<form method=”post” action=”j_security_check”>

<input type=”text” name=”j_username” /> <input type=”password” name=”j_password” />

</form> <security-role>

<description></description> <role-name></role-name>

</security-role>

<security-constraint> <display-name></display-name>

<web-resource-collection> <web-resource-name></web-resource-name> <description></description> <url-pattern></url-pattern> <http-method></http-method>

</web-resource-collection> <auth-constraint>

<description></description> <role-name></role-name>

</auth-constraint> <user-data-constraint>

<description></description> <transport-guarantee>NONE |INTEGRAL | CONFIDENTIAL</transport-guarantee>

</user-data-constraint> </security-constraint>

<servlet> <run-as></run-as> <security-role-ref>

<description></description><role-name></role-name><role-link></role-link> </security-role-ref>

</servlet>

Page 27: [SCWCD 5] API and Syntactical Reference

Chapter 17: Tag Deployment

Tag Library Descriptor (TLD) Syntax <taglib>

<description></description> <display-name></display-name> <icon></icon> <tlib-version></tlib-version> <short-name></short-name> <uri></uri> <validator></validator> <listener></listener> <tag></tag> <tag-file></tag-file> <function></function> <taglib-extension></taglib-extension>

<taglib> <validator>

<description></description> <validator-class></validator-class>

<init-param> <description></description> <param-name></param-name> <param-value></param-value>

</init-param> </validator>

<listener>

<description></description> <display-name></display-name> <icon></icon> <listener-class></listener-class>

</listener> <tag>

<description></description> <display-name></display-name> <icon></icon> <name></name> <tag-class></tag-class> <tei-class></tei-class> <body-content>empty | tagdependent | JSP | scriptless</body-content> <variable></variable> <attribute></attribute> <dynamic-attributes></dynamic-attributes> <example></example> <tag-extension></tag-extension>

</tag> <tag-extension>

<extension-element></extension-element> </tag-extension>

Page 28: [SCWCD 5] API and Syntactical Reference

<variable> <description></description> <name-given></name-given> or <name-from-attribute></name-from-attribute> <variable-class></variable-class> <declare></declare> <scope></scope>

</variable> <attribute>

<description></description> <name></name> <required></required> <fragment></fragment> or <rtexprvalue></rtexprvalue><type></type>

</attribute> <tag-file>

<description></description> <display-name></display-name> <icon></icon> <name></name> <path></path> <example></example> <tag-extension></tag-extension>

</tag-file> <function>

<description></description> <display-name></display-name> <icon></icon> <name></name> <function-class></function-class> <function-signature></function-signature> <example></example> <function-extension>

<extension-element></extension-element> </function-extension>

</function>

Page 29: [SCWCD 5] API and Syntactical Reference

Chapter 20: Servlets 2.5 and JSP 2.1 Changes

Servlets 2.5 Changes Faces and JSTL are mandatory by default in any JEE-compliant container.

Now you can use a filter to intercept only dynamic components and not static ones by using * wildcard: <filter-mapping>

<filter-name></filter-name> <servlet-name>*</servlet-name >

</ filter-mapping> It’s now possible have many patterns inside a servlet mapping: <servlet-mapping>

<servlet-name></servlet-name> <url-pattern></url-pattern> <url-pattern></url-pattern> <url-pattern></url-pattern>

</servlet-mapping> You can also apply many patterns and servlet names inside a filter mapping: <filter-mapping>

<url-pattern></url-pattern> <servlet-name></servlet-name> <url-pattern></url-pattern> <servlet-name></servlet-name> <url-pattern></url-pattern> <servlet-name></servlet-name>

</filter-mapping> When no dynamic components exist, you don’t need a web.xml

A new method getContextPath() has been added to ServletContext. It’s the responsibility of a developer to handle synchronization properly on HttpSession and ServletContext: <% synchronized(application) {

application.setAttribute(“A”, “A”); } synchronized(session) {

session.setAttribute(“B”, “B”); } %> @DeclareRoles({“X”, “Y”, “Z”}) @RunAs(“Admin”)

Page 30: [SCWCD 5] API and Syntactical Reference

@Resource(name=””, type=””) This is equivalent to declaring <resource-ref> in the deployment descriptor. @Resources({@Resource(name=””, type=””), @Resource(name=””, type=””)}) @PostContruct @PreDestroy @EJB replaces <ejb-ref> and <ejb-local-ref>

@WebServiceRef replaces <resource-ref>