Monday, January 5, 2015

SCWCD Questions And Answers Part 2

Q: 31 Which three are true about TLD files? (Choose three.)

A. The web container recognizes TLD files placed in any subdirectory of WEB-INF.
B. When deployed inside a JAR file, TLD files must be in the META-INF directory, or a subdirectory of it.
C. A tag handler's attribute must be included in the TLD file only if the attribute can accept request-time expressions.
D. The web container can generate an implicit TLD file for a tag library comprised of both simple tag handlers and tag files.
E. The web container can automatically extend the tag library map described in a web.xml file by including entries extracted from the web application's TLD files.

Answer: A, B, E


Q: 32 Your management has required that all JSPs be created to generate XHTML-compliant content and to facilitate that decision, you are required to create all JSPs using the JSP Document format. In the reviewOrder.jspx page, you need to use several core JSTL tags to process the collection of order items in the customer's shopping cart. Which JSP code snippets must you use in the reviewOrder.jspx page?

A. <html xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:directive.taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" /> <!-- page content -->
</html>
B. <html xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" xmlns:c="http://java.sun.com/jsp/jstl/core">
<!-- page content --> </html>
C. <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:directive.taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" /> <!-- page content -->
</jsp:root>
D. <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0" xmlns:c="http://java.sun.com/jsp/jstl/core">
<!-- page content --> </jsp:root>

Answer: D


Q: 33 Which two JSTL URL-related tags perform URL rewriting? (Choose two.)

A. url
B. link
C. param
D. import
E. redirect

Answer: A, E


Q: 34 A custom JSP tag must be able to support an arbitrary number of attributes whose names are unknown when the tag class is designed. Which two are true? (Choose two.)

A. The <body-content> element in the echo tag TLD must have the value JSP.
B. The echo tag handler must define the setAttribute(String key, String value) method.
C. The <dynamic-attributes>true</dynamic-attributes> element must appear in the echo tag TLD.
D. The class implementing the echo tag handler must implement the javax.servlet.jsp.tagext.IterationTag interface.
E. The class implementing the echo tag handler must implement the javax.servlet.jsp.tagext.DynamicAttributes interface.

Answer: C, E


Q: 35 A developer has used this code within a servlet:

62. if(request.isUserInRole("vip")) {
63. // VIP-related logic here
64. }

What else must the developer do to ensure that the intended security goal is achieved?

A. create a user called vip in the security realm
B. define a group within the security realm and call it vip
C. define a security-role named vip in the deployment descriptor
D. declare a security-role-ref for vip in the deployment descriptor

Answer: D


Q: 36 Given:

3. class MyServlet extends HttpServlet {
4. public void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
5. // servlet code here ...
26. }
27. }


If the DD contains a single security constraint associated with MyServlet and its only <http-method> tags and <auth-constraint> tags are:

<http-method>GET</http-method> <http-method>PUT</http-method> <auth-constraint>Admin</auth-constraint>


Which four requests would be allowed by the container? (Choose four.)

A. A user whose role is Admin can perform a PUT.
B. A user whose role is Admin can perform a GET.
C. A user whose role is Admin can perform a POST.
D. A user whose role is Member can perform a PUT.
E. A user whose role is Member can perform a POST.
F. A user whose role is Member can perform a GET.

Answer: A, B, C, E


Q: 37 What is true about Java EE authentication mechanisms?

A. If your deployment descriptor correctly declares an authentication type of CLIENT_CERT, your users must have a certificate from an official source before they can use your application.
B. If your deployment descriptor correctly declares an authentication type of BASIC, the container automatically requests a user name and password whenever a user starts a new session.
C. If you want your web application to support the widest possible array of browsers, and you want to perform authentication, the best choice of Java EE authentication mechanisms is DIGEST.
D. To use Java EE FORM authentication, you must declare two HTML files in your deployment descriptor, and you must use a predefined action in the HTML file that handles your user's login.

Answer: D


Q: 38 If you want to use the Java EE platform's built-in type of authentication that uses a custom HTML page for authentication, which two statements are true? (Choose two.)

A. Your deployment descriptor will need to contain this tag: <auth-method>CUSTOM</auth-method>
B. The related custom HTML login page must be named loginPage.html.
C. When you use this type of authentication, SSL is turned on automatically.
D. You must have a tag in your deployment descriptor that allows you to point to both a login HTML page and an HTML page for handling any login errors.
E. In the HTML related to authentication for this application, you must use predefined variable names for the variables that store the user and password values.

Answer: D, E


Q: 39 Given this fragment in a servlet:

23. if(req.isUserInRole("Admin")) {
24. // do stuff
25. }

And the following fragment from the related Java EE deployment descriptor:

812. <security-role-ref>
813. <role-name>Admin</role-name>
814. <role-link>Administrator</role-link>
815. </security-role-ref>
900. <security-role>
901. < role-name>Admin</role-name>
902. <role-name>Administrator</role-name>
903. </security-role>

What is the result?

A. Line 24 can never be reached.
B. The deployment descriptor is NOT valid.
C. If line 24 executes, the user's role will be Admin.
D. If line 24 executes, the user's role will be Administrator.
E. If line 24 executes the user's role will NOT be predictable.

Answer: D


Q: 40 Given the security constraint in a DD:

101. <security-constraint>
102. <web-resource-collection>
103. <web-resource-name>Foo</web-resource-name>
104. <url-pattern>/Bar/Baz/*</url-pattern>
105. <http-method>POST</http-method>
106. </web-resource-collection>
107. <auth-constraint>
108. <role-name>DEVELOPER</role-name>
109. </auth-constraint>
110. </security-constraint>


And given that "MANAGER" is a valid role-name, which four are true for this security constraint? (Choose four.)

A. MANAGER can do a GET on resources in the /Bar/Baz directory.
B. MANAGER can do a POST on any resource in the /Bar/Baz directory.
C. MANAGER can do a TRACE on any resource in the /Bar/Baz directory.
D. DEVELOPER can do a GET on resources in the /Bar/Baz directory.
E. DEVELOPER can do only a POST on resources in the /Bar/Baz directory.
F. DEVELOPER can do a TRACE on any resource in the /Bar/Baz directory.
Answer: A, C, D, F


Q: 41 Which three are valid URL mappings to a servlet in a web deployment descriptor? (Choose three.)

A. */*
B. *.do
C. MyServlet
D. /MyServlet
E. /MyServlet/*
F. MyServlet/*.jsp

Answer: B, D, E


Q: 42 Click the Task button.

Place the appropriate element names on the left on the web application deployment descriptor on the right so that files ending in ".mpg" are associated with the MIME type "video/mpeg."


Answer: Check ExamWorx eEngine, Download from Member Center


 Q: 43 Which three web application deployment descriptor elements allow web components to gain references to resources or EJB components? (Choose three.)

A. ejb-ref
B. jdbc-ref
C. servlet-ref
D. resource-ref
E. javamail-ref
F. ejb-remote-ref
G. resource-env-ref

Answer: A, D, G


Q: 44 After a merger with another small business, your company has inherited a legacy WAR file but the original source files were lost. After reading the documentation of that web application, you discover that the WAR file contains a useful tag library that you want to reuse in your own webapp packaged as a WAR file.

What do you need to do to reuse this tag library?

A. Simply rename the legacy WAR file as a JAR file and place it in your webapp's library directory.
B. Unpack the legacy WAR file, move the TLD file to the META-INF directory, repackage the whole thing as a JAR file, and place that JAR file in your webapp's library directory.
C. Unpack the legacy WAR file, move the TLD file to the META-INF directory, move the class files to the top-level directory, repackage the whole thing as a JAR file, and place that JAR file in your webapp's library directory.
D. Unpack the legacy WAR file, move the TLD file to the META-INF directory, move the class files to the top-level directory, repackage the WAR, and place that WAR file in your webapp's WEB-INF directory.

Answer: C


Q: 45 Which two actions protect a resource file from direct HTTP access within a web application? (Choose two.)

A. placing it in the /secure directory
B. placing it in the /WEB-INF directory
C. placing it in the /META-INF/secure directory
D. creating a <web-resource> element within the deployment descriptor
E. creating a <secure-resource> element within the deployment descriptor

Answer: B, C


Q: 46 Given that www.example.com/SCWCDtestApp is a validly deployed Java EE web application and that all of the JSP files specified in the requests below exist in the locations specified. Which two requests, issued from a browser, will return an HTTP 404 error? (Choose two.)

A. http://www.example.com/SCWCDtestApp/test.jsp
B. http://www.example.com/SCWCDtestApp/WEB-INF/test.jsp
C. http://www.example.com/SCWCDtestApp/WEB-WAR/test.jsp
D. http://www.example.com/SCWCDtestApp/Customer/test.jsp
E. http://www.example.com/SCWCDtestApp/META-INF/test.jsp
F. http://www.example.com/SCWCDtestApp/Customer/Update/test.jsp

Answer: B, E


Q: 47 Which two about WAR files are true? (Choose two.)

A. WAR files must be located in the web application library directory.
B. WAR files must contain the web application deployment descriptor.
C. WAR files must be created by using archive tools designed specifically for that purpose.
D. The web container must serve the content of any META-INF directory located in a WAR file.
E. The web container must allow access to resources in JARs in the web application library directory.

Answer: B, E


Q: 48 Given this fragment from a Java EE deployment descriptor:

124. <welcome-file>beta.html</welcome-file>
125. <welcome-file>alpha.html</welcome-file>
And this request from a browser:

http://www.sun.com/SCWCDtestApp/register


Which statement is correct, when the container receives this request?

A. This deployment descriptor is NOT valid.
B. The container first looks in the register directory for beta.html.
C. The container first looks in the register directory for alpha.html.
D. The container first looks for a servlet mapping in the deployment descriptor.

Answer: D


Q: 49 Which EL expression evaluates to the request URI?

A. ${requestURI}
B. ${request.URI}
C. ${request.getURI}
D. ${request.requestURI}
E. ${requestScope.requestURI}
F. ${pageContext.request.requestURI}
G. ${requestScope.request.requestURI}

Answer: F


Q: 50 Given:

1. <% int[] nums = {42,420,4200};
2. request.setAttribute("foo", nums); %>
3. ${5 + 3 lt 6}
4. ${requestScope['foo'][0] ne 10 div 0}
5. ${10 div 0}


What is the result?

A. true true
B. false true
C. false true 0
D. true true Infinity
E. false true Infinity
F. An exception is thrown.
G. Compilation or translation fails.

Answer: E



Q: 51 You have created a web application that you license to real estate brokers. The webapp is highly customizable including the email address of the broker, which is placed on the footer of each page. This is configured as a context parameter in the deployment descriptor:

10. <context-param>
11. <param-name>footerEmail</param-name>
12. <param-value>joe@estates-r-us.biz</param-value>
13. </context-param>


Which EL code snippet will insert this context parameter into the footer?

A. <a href='mailto:${footerEmail}'>Contact me</a>
B. <a href='mailto:${initParam@footerEmail}'>Contact me</a>
C. <a href='mailto:${initParam.footerEmail}'>Contact me</a>
D. <a href='mailto:${contextParam@footerEmail}'>Contact me</a>
E. <a href='mailto:${contextParam.footerEmail}'>Contact me</a>

Answer: C


Q: 52 Given an EL function foo, in namespace func, that requires a long as a parameter and returns a Map, which two are valid invocations of function foo? (Choose two.)

A. ${func(1)}
B. ${foo:func(4)}
C. ${func:foo(2)}
D. ${foo(5):func}
E. ${func:foo("easy")}
F. ${func:foo("3").name}

Answer: C, F



Q: 53 Click the Exhibit button.

The Appliance class is a Singleton that loads a set of properties into a Map from an external data source. Assume:
An instance of the Appliance class exists in the application-scoped attribute, appl The appliance object includes the name property that maps to the value Cobia The request-scoped attribute, prop, has the value name.

Which two EL code snippets will display the string Cobia? (Choose two.)


A. ${appl.properties.name}
B. ${appl.properties.prop}
C. ${appl.properties[prop]}
D. ${appl.properties[name]}
E. ${appl.getProperties().get(prop)}
F. ${appl.getProperties().get('name')}

Answer: A, C


Q: 54 Squeaky Beans Inc. hired an outside consultant to develop their web application. To finish the job quickly, the consultant created several dozen JSP pages that directly communicate with the database. The Squeaky business team has since purchased a set of business objects to model their system, and the Squeaky developer charged with maintaining the web application must now refactor all the JSPs to work with the new system. Which pattern can the developer use to solve this problem?

A. Transfer Object
B. Service Locator
C. Intercepting Filter
D. Business Delegate

Answer: D


Q: 55 A developer is designing a web application that must verify for each request:
The originating request is from a trusted network.
The client has a valid session.
The client has been authenticated.


Which design pattern provides a solution in this situation?

A. Transfer Object
B. Session Facade
C. Intercepting Filter
D. Template Method
E. Model-View-Controller

Answer: C


Q: 56 The Squeaky Bean company has decided to port their web application to a new J2EE 1.4 container. While reviewing the application, a developer realizes that in multiple places within the current application, nearly duplicate code exists that finds enterprise beans. Which pattern should be used to eliminate this duplicate code?

A. Transfer Object
B. Front Controller
C. Service Locator
D. Intercepting Filter
E. Business Delegate
F. Model-View-Controller

Answer: C


Q: 57 Which two are characteristics of the Transfer Object design pattern? (Choose two.)

A. It reduces network traffic by collapsing multiple remote requests into one.
B. It increases the complexity of the remote interface by removing coarse-grained methods.
C. It increases the complexity of the design due to remote synchronization and version control issues.
D. It increases network performance introducing multiple fine-grained remote requests which return very small amounts of data.

Answer: A, C


Q: 58 A developer has created a special servlet that is responsible for generating XML content that is sent to a data warehousing subsystem. This subsystem uses HTTP to request these large data files, which are compressed by the servlet to save internal network bandwidth. The developer has received a request from management to create several more of these data warehousing servlets. The developer is about to copy and paste the compression code into each new servlet. Which design pattern can consolidate this compression code to be used by all of the data warehousing servlets?

A. Facade
B. View Helper
C. Transfer Object
D. Intercepting Filter
E. Composite Facade

Answer: D


Q: 59 Which two are characteristics of the Service Locator pattern? (Choose two.)

A. It encapsulates component lookup procedures.
B. It increases source code duplication and decreases reuse.
C. It improves client performance by caching context and factory objects.
D. It degrades network performance due to increased access to distributed lookup services.

Answer: A, C


Q: 60 Click the Task button.

Given a servlet mapped to /control, place the correct URI segment returned as a String on the corresponding HttpServletRequest method call for the URI: /myapp/control/processorder.




Answer: Check ExamWorx eEngine, Download from Member Center

SCWCD Questions And Answers Part 1

Q: 1 To take advantage of the capabilities of modern browsers that use web standards, such as XHTML and CSS, your web application is being converted from simple JSP pages to JSP Document format. However, one of your JSPs, /scripts/screen Functions.jsp, generates a JavaScript file. This file is included in several web forms to create screen-specific validation functions and are included in these pages with the following statement:

10. <head>
11. <script src='/scripts/screenFunctions.jsp'
12. language='javascript'
13. type='application/javascript'> </script>
14. </head>
15. <!-- body of the web form -->

Which JSP code snippet declares that this JSP Document is a JavaScript file?


A. <%@ page contentType='application/javascript' %>
B. <jsp:page contentType='application/javascript' />
C. <jsp:document contentType='application/javascript' />
D. <jsp:directive.page contentType='application/javascript' />
E. No declaration is needed because the web form XHTML page already declares the MIME type of the /scripts/screenFunctions.jsp file in the <script> tag.

Answer: D


Q: 2 Given the JSP code:

10. <html>
11. <body>
12. <jsp:useBean id='customer' class='com.example.Customer' />
13. Hello, ${customer.title} ${customer.lastName}, welcome
14. to Squeaky Beans, Inc.
15. </body>
16. </html>

Which three types of JSP code are used? (Choose three.)


A. Java code
B. template text
C. scripting code
D. standard action
E. expression language

Answer: B, D, E


Q: 3 You have built a collection of custom tags for your web application. The TLD file is located in the file: /WEB-INF/myTags.xml. You refer to these tags in your JSPs using the symbolic name: myTags. Which deployment descriptor element must you use to make this link between the symbolic name and the TLD file name?

A. <taglib><name>myTags</name> <location>/WEB-INF/myTags.xml</location> </taglib>
B. <tags><name>myTags</name> <location>/WEB-INF/myTags.xml</location> </tags>
C. <tags> <tags-uri>myTags</taglib-uri><tags-location>/WEB-INF/myTags.xml</tags-location> </tags>
D. <taglib> <taglib-uri>myTags</taglib-uri><taglib-location>/WEB-INF/myTags.xml</taglib-location> </taglib>

Answer: D


Q: 4 Which implicit object is used in a JSP page to retrieve values associated with <context-param> entries in the deployment descriptor?

A. config
B. request
C. session
D. application

Answer: D

Q: 5 Click the Task button.

Place the events in the order they occur.


Answer: Check ExamWorx eEngine, Download from Member Center


Q: 6 Click the Task button.

Place the code snippets in the proper order to construct the JSP code to import static content into a JSP page at translation-time.



Q: 7 You have created a JSP that includes instance variables and a great deal of scriptlet code. Unfortunately, after extensive load testing, you have discovered several race conditions in your JSP scriptlet code. To fix these problems would require significant recoding, but you are already behind schedule. Which JSP code snippet can you use to resolve these concurrency problems?

A. <%@ page isThreadSafe='false' %>
B. <%@ implements SingleThreadModel %>
C. <%! implements SingleThreadModel %>
D. <%@ page useSingleThreadModel='true' %>
E. <%@ page implements='SingleThreadModel' %>

Answer: A


Q: 8 Click the Exhibit button.
The attribute "name" has a value of "Foo,"

What is the result if this tag handler's tag is invoked?




A. Foo
B. done
C. Foodone
D. An exception is thrown at runtime.
E. No output is produced from this code.
F. Compilation fails because of an error in this code.

Answer: A

Q: 9 You are building a web application that will be used throughout the European Union; therefore, it has significant internationalization requirements. You have been tasked to create a custom tag that generates a message using the java.text.MessageFormat class. The tag will take the resourceKey attribute and a variable number of argument attributes with the format, arg<N>. Here is an example use of this tag and its output:

<t:message resourceKey='diskFileMsg' arg0='MyDisk' arg1='1247' /> generates:
The disk "MyDisk" contains 1247 file(s).

Which Simple tag class definition accomplishes this goal of handling a variable number of tag attributes?


A. public class MessageTag extends SimpleTagSupport implements VariableAttributes {
private Map attributes = new HashMap(); public void setVariableAttribute(String uri, String name, Object value) { this.attributes.put(name, value);
}
// more tag handler methods
}
B. The Simple tag model does NOT support a variable number of attributes.
C. public class MessageTag extends SimpleTagSupport implements DynamicAttributes {
private Map attributes = new HashMap();
public void putAttribute(String name,Object value) { this.attributes.put(name, value);
}
// more tag handler methods
}
D. public class MessageTag extends SimpleTagSupport implements VariableAttributes {
private Map attributes = new HashMap();
public void putAttribute(String name, Object value) { this.attributes.put(name, value);
}
// more tag handler methods
}
E. public class MessageTag extends SimpleTagSupport implements DynamicAttributes {
private Map attributes = new HashMap();
public void setDynamicAttribute(String uri, String name, Object value) {
this.attributes.put(name, value);
}
// more tag handler methods
}

Answer: E


Q: 10 Given the JSP code:

<% request.setAttribute("foo", "bar"); %>and the Classic tag handler code:

5. public int doStartTag() throws JspException {
6. // insert code here
7. // return int
8. }

Assume there are no other "foo" attributes in the web application.

Which invocation on the pageContext object, inserted at line 6, assigns "bar" to the variable x?


A. String x = (String) pageContext.getAttribute("foo");
B. String x = (String) pageContext.getRequestScope("foo");
C. It is NOT possible to access the pageContext object from within doStartTag.
D. String x = (String)
pageContext.getRequest().getAttribute("foo");
E. String x = (String) pageContext.getAttribute("foo", PageContext.ANY_SCOPE);

Answer: D


Q: 11 Which two statements about tag files are true? (Choose two.)

A. Classic tag handlers and tag files CANNOT reside in the same tag library.
B. A file named foo.tag, located in /WEB-INF/tags/bar, is recognized as a tag file by the container.
C. A file named foo.tag, bundled in a JAR file but NOT defined in a TLD, triggers a container translation error.
D. A file named foo.tag, located in a web application's root directory, is recognized as a tag file by the container.
E. If files foo1.tag and foo2.tag both reside in /WEB-INF/tags/bar, the container will consider them part of the same tag library.

Answer: B, E


Q: 12 The sl:shoppingList and sl:item tags output a shopping list to the response and are used as follows:

11. <sl:shoppingList>
12. <sl:item name="Bread" />
13. <sl:item name="Milk" />
14. <sl:item name="Eggs" />
15. </sl:shoppingList>

The tag handler for sl:shoppingList is ShoppingListTag and the tag handler for sl:item is ItemSimpleTag. ShoppingListTag extends BodyTagSupport and ItemSimpleTag extends SimpleTagSupport.

Which is true?


A. ItemSimpleTag can find the enclosing instance of ShoppingListTag by calling getParent() and casting the result to ShoppingListTag.
B. ShoppingListTag can find the child instances of ItemSimpleTag by calling super.getChildren() and casting each to an ItemSimpleTag.
C. It is impossible for ItemSimpleTag and ShoppingListTag to find each other in a tag hierarchy because one is a Simple tag and the other is a Classic tag.
D. ShoppingListTag can find the child instances of ItemSimpleTag by calling getChildren() on the PageContext and casting each to an ItemSimpleTag.
E. ItemSimpleTag can find the enclosing instance of ShoppingListTag by calling findAncestorWithClass() on the PageContext and casting the result to ShoppingListTag.

Answer: A


Q: 13 Servlet A receives a request that it forwards to servlet B within another web application in the same web container. Servlet A needs to share data with servlet B and that data must not be visible to other servlets in A's web application. In which object can the data that A shares with B be stored?

A. HttpSession
B. ServletConfig
C. ServletContext
D. ttpServletRequest
E. HttpServletResponse

Answer: D


Q: 14 Your web site has many user-customizable features, for example font and color preferences on web pages. Your IT department has already built a subsystem for user preferences using the Java SE platform's lang.util.prefs package APIs, and you have been ordered to reuse this subsystem in your web application. You need to create an event listener that constructs the preferences factory and stores it in the application scope for later use. Furthermore, this factory requires that the URL to a database must be declared in the deployment descriptor like this:

42. <context-param>
43. <param-name>prefsDbURL</param-name>
44. <param-value>
45. jdbc:pointbase:server://dbhost:4747/prefsDB
46. </param-value>
47. </context-param>

Which partial listener class will accomplish this goal?


A. public class PrefsFactoryInitializer implements ContextListener { public void contextInitialized(ServletContextEvent e) { ServletContext ctx = e.getContext();
String prefsURL = ctx.getParameter("prefsDbURL"); PreferencesFactory myFactory = makeFactory(prefsURL); ctx.putAttribute("myPrefsFactory", myFactory);
}
// more code here
}
B. public class PrefsFactoryInitializer implements ServletContextListener { public void contextCreated(ServletContext ctx) {
String prefsURL = ctx.getInitParameter("prefsDbURL"); PreferencesFactory myFactory = makeFactory(prefsURL); ctx.setAttribute("myPrefsFactory", myFactory);
}
// more code here
}
C. public class PrefsFactoryInitializer implements ServletContextListener { public void contextInitialized(ServletContextEvent e) {
ServletContext ctx = e.getServletContext();
String prefsURL = ctx.getInitParameter("prefsDbURL"); PreferencesFactory myFactory = makeFactory(prefsURL); ctx.setAttribute("myPrefsFactory", myFactory);
// more code here
}
D. public class PrefsFactoryInitializer implements ContextListener { public void contextCreated(ServletContext ctx) {
String prefsURL = ctx.getParameter("prefsDbURL"); PreferencesFactory myFactory = makeFactory(prefsURL); ctx.putAttribute("myPrefsFactory", myFactory);
}
// more code here
}

Answer: C


Q: 15 A developer wants a web application to be notified when the application is about to be shut down. Which two actions are necessary to accomplish this goal? (Choose two.)

A. include a listener directive in a JSP page
B. configure a listener in the TLD file using the <listener> element
C. include a <servlet-destroy> element in the web application deployment descriptor
D. configure a listener in the application deployment descriptor, using the <listener> element
E. include a class implementing ServletContextListener as part of the web application deployment
F. include a class implementing ContextDestroyedListener as part of the web application deployment
G. include a class implementing HttpSessionAttributeListener as part of the web application deployment

Answer: D, E


Q: 16 You want to create a filter for your web application and your filter will implement javax.servlet.Filter.

Which two statements are true? (Choose two.)

A. Your filter class must implement an init method and a destroy method.
B. Your filter class must also implement javax.servlet.FilterChain.
C. When your filter chains to the next filter, it should pass the same arguments it received in its doFilter method.
D. The method that your filter invokes on the object it received that implements javax.servlet.FilterChain can invoke either another filter or a servlet.
E. Your filter class must implement a doFilter method that takes, among other things, an HTTPServletRequest object and an HTTPServletResponse object.

Answer: A, D


Q: 17 Which three are true about the HttpServletRequestWrapper class? (Choose three.)

A. The HttpServletRequestWrapper is an example of the Decorator pattern.
B. The HttpServletRequestWrapper can be used to extend the functionality of a servlet request.
C. A subclass of HttpServletRequestWrapper CANNOT modify the behavior of the getReader method.
D. An HttpServletRequestWrapper may be used only by a class implementing the javax.servlet.Filter interface.
E. An HttpServletRequestWrapper CANNOT be used on the request passed to the RequestDispatcher.include method.
F. An HttpServletRequestWrapper may modify the header of a request within an object implementing the javax.servlet.Filter interface.

Answer: A, B, F


Q: 18 Click the Exhibit button.
The resource requested by the RequestDispatcher is available and implemented by the DestinationServlet.

What is the result?


A. An exception is thrown at runtime by SourceServlet.
B. An exception is thrown at runtime by DestinationServlet.
C. Only "hello from dest" appears in the response output stream.
D. Both "hello from source" and "hello from dest" appear in the response output stream.

Answer: A 


Q: 19 A developer wants to make a name attribute available to all servlets associated with a particular user, across multiple requests from that user, from the same browser instance.

Which two provide this capability from within a tag handler? (Choose two.)

A. pageContext.setAttribute("name", theValue);
B. pageContext.setAttribute("name", getSession());
C. pageContext.getRequest().setAttribute("name", theValue);
D. pageContext.getSession().setAttribute("name", theValue);
E. pageContext.setAttribute("name",theValue, PageContext.PAGE_SCOPE);
F. pageContext.setAttribute("name",theValue, PageContext.SESSION_SCOPE);

Answer: D, F


Q: 20 Given the definition of MyServlet:

11. public class MyServlet extends HttpServlet {
12. public void service(HttpServletRequest request,
13. HttpServletResponse response)
14. throws ServletException, IOException {
15. HttpSession session = request.getSession();
16 session.setAttribute("myAttribute","myAttributeValue");
17. session.invalidate();
18. response.getWriter().println("value=" +
19. session.getAttribute("myAttribute"));
20. }
21. }


What is the result when a request is sent to MyServlet?

A. An IllegalStateException is thrown at runtime.
B. An InvalidSessionException is thrown at runtime.
C. The string "value=null" appears in the response stream.
D. The string "value=myAttributeValue" appears in the response stream.

Answer: A


Q: 21 You need to store a Java long primitive attribute, called customerOID, into the session scope. Which two code snippets allow you to insert this value into the session? (Choose two.)

A. long customerOID = 47L; session.setAttribute("customerOID", new Long(customerOID));
B. long customerOID = 47L; session.setLongAttribute("customerOID", new Long(customerOID));
C. long customerOID = 47L;session.setAttribute("customerOID", customerOID);
D. long customerOID = 47L; session.setNumericAttribute("customerOID", new Long(customerOID));
E. long customerOID = 47L; session.setLongAttribute("customerOID", customerOID);
F. long customerOID = 47L; session.setNumericAttribute("customerOID", customerOID);

Answer: A, C


Q: 22 A developer for the company web site has been told that users may turn off cookie support in their browsers. What must the developer do to ensure that these customers can still use the web application?

A. The developer must ensure that every URL is properly encoded using the appropriate URL rewriting APIs.
B. The developer must provide an alternate mechanism for managing sessions and abandon the HttpSession mechanism entirely.
C. The developer can ignore this issue. Web containers are required to support automatic URL rewriting when cookies are not supported.
D. The developer must add the string id=<sessionid> to the end of every URL to ensure that the conversation with the browser can continue.

Answer: A


Q: 23 Your web application requires the adding and deleting of many session attributes during a complex use case. A bug report has come in that indicates that an important session attribute is being deleted too soon and a NullPointerException is being thrown several interactions after the fact. You have decided to create a session event listener that will log when attributes are being deleted so you can track down when the attribute is erroneously being deleted.

Which listener class will accomplish this debugging goal?

A. Create an HttpSessionAttributeListener class and implement the attributeDeleted method and log the attribute name using the getName method on the event object.
B. Create an HttpSessionAttributeListener class and implement the attributeRemoved method and log the attribute name using the getName method on the event object.
C. Create an SessionAttributeListener class and implement the attributeRemoved method and log the attribute name using the getAttributeName method on the event object.
D. Create an SessionAttributeListener class and implement the attributeDeleted method and log the attribute name using the getAttributeName method on the event object.

Answer: B


Q: 24 As a convenience feature, your web pages include an Ajax request every five minutes to a special servlet that monitors the age of the user's session. The client-side JavaScript that handles the Ajax callback displays a message on the screen as the session ages. The Ajax call does NOT pass any cookies, but it passes the session ID in a request parameter called sessionID. In addition, assume that your webapp keeps a hashmap of session objects by the ID. Here is a partial implementation of this servlet:



10. public class SessionAgeServlet extends HttpServlet {
11. public void service(HttpServletRequest request, HttpServletResponse) throws IOException{
12. String sessionID = request.getParameter("sessionID");
13. HttpSession session = getSession(sessionID);
14. long age = // your code here
15. response.getWriter().print(age);
16. } ... // more code here
47. }


Which code snippet on line 14, will determine the age of the session?

A. session.getMaxInactiveInterval();
B. session.getLastAccessed().getTime() - session.getCreationTime().getTime();
C. session.getLastAccessedTime().getTime() - session.getCreationTime().getTime();
D. session.getLastAccessed() - session.getCreationTime();
E. session.getMaxInactiveInterval() - session.getCreationTime();
F. session.getLastAccessedTime() - session.getCreationTime();

Answer: F


Q: 25 Which statement is true about web container session management?

A. Access to session-scoped attributes is guaranteed to be thread-safe by the web container.
B. To activate URL rewriting, the developer must use the HttpServletResponse.setURLRewriting method.
C. If the web application uses HTTPS, then the web container may use the data on the HTTPS request stream to identify the client.
D. The JSESSIONID cookie is stored permanently on the client so that a user may return to the web application and the web container will rejoin that session.

Answer: C


Q: 26 One of the use cases in your web application uses many session-scoped attributes. At the end of the use case, you want to clear out this set of attributes from the session object. Assume that this static variable holds this set of attribute names:


201. private static final Set<String> USE_CASE_ATTRS;
202. static {
203. USE_CASE_ATTRS.add("customerOID");
204. USE_CASE_ATTRS.add("custMgrBean");
205. USE_CASE_ATTRS.add("orderOID");
206. USE_CASE_ATTRS.add("orderMgrBean");
207. }


Which code snippet deletes these attributes from the session object?

A. session.removeAll(USE_CASE_ATTRS);
B. for ( String attr : USE_CASE_ATTRS ) { session.remove(attr);
}
C. for ( String attr : USE_CASE_ATTRS ) { session.removeAttribute(attr);
}
D. for ( String attr : USE_CASE_ATTRS ) { session.deleteAttribute(attr);
}
E. session.deleteAllAttributes(USE_CASE_ATTRS);

Answer: C


Q: 27 Assume that a news tag library contains the tags lookup and item:

lookup Retrieves the latest news headlines and executes the tag body once for each headline. Exposes a NESTED page-scoped attribute called headline of type com.example.Headline containing details for that headline.
item Outputs the HTML for a single news headline. Accepts an attribute info of type com.example.Headline containing details for the headline to be rendered.Which snippet of JSP code returns the latest news headlines in an HTML table, one per row?
A. <table>
<tr>
<td> <news:lookup />
<news:item info="${headline}" /> </td>
</tr>
</table>
B. <news:lookup />
<table>
<tr>
<td><news:item info="${headline}" /></td> </tr>
</table>
C. <table>
<news:lookup>
<tr>
<td><news:item info="${headline}" /></td> </tr>
</news:lookup>
</table>
D. <table>
<tr>
<news:lookup>
<td><news:item info="${headline}" /></td> </news:lookup>
</tr>
</table>

Answer: C


Q: 28 Which JSTL code snippet can be used to perform URL rewriting?

A. <a href='<c:url url="foo.jsp"/>' />
B. <a href='<c:link url="foo.jsp"/>' />
C. <a href='<c:url value="foo.jsp"/>' />
D. <a href='<c:link value="foo.jsp"/>' />

Answer: C


Q: 29 Assume the scoped attribute priority does NOT yet exist. Which two create and set a new request-scoped attribute priority to the value "medium"? (Choose two.)

A. ${priority = 'medium'}
B. ${requestScope['priority'] = 'medium'}
C. <c:set var="priority" value="medium" />
D. <c:set var="priority" scope="request">medium</c:set>
E. <c:set var="priority" value="medium" scope="request" />
F. <c:set property="priority" scope="request">medium</c:set>
G. <c:set property="priority" value="medium" scope="request" />

Answer: D, E


Q: 30 You are creating a JSP page to display a collection of data. This data can be displayed in several different ways so the architect on your project decided to create a generic servlet that generates a comma-delimited string so that various pages can render the data in different ways. This servlet takes on request parameter: objectID. Assume that this servlet is mapped to the URL pattern: /WEB-INF/data.

In the JSP you are creating, you need to split this string into its elements separated by commas and generate an HTML <ul> list from the data.

Which JSTL code snippet will accomplish this goal?

A. <c:import varReader='dataString' url='/WEB-INF/data'> <c:param name='objectID' value='${currentOID}' /> </c:import>
<ul>
<c:forTokens items'${dataString.split(",")}' var='item'> <li>${item}</li>
</c:forTokens>
</ul>
B. <c:import varReader='dataString' url='/WEB-INF/data'> <c:param name='objectID' value='${currentOID}' /> </c:import>
<ul>
<c:forTokens items'${dataString}' delims=',' var='item'> <li>${item}</li>
</c:forTokens>
</ul>
C. <c:import var='dataString' url='/WEB-INF/data'>
<c:param name='objectID' value='${currentOID}' /> </c:import>
<ul>
<c:forTokens items'${dataString.split(",")}' var='item'> <li>${item}</li>
</c:forTokens>
</ul>
D. <c:import var='dataString' url='/WEB-INF/data'> <c:param name='objectID' value='${currentOID}' /> </c:import>
<ul>
<c:forTokens items'${dataString}' delims=',' var='item'> <li>${item}</li>
</c:forTokens>
</ul>

Answer: D

Saturday, January 5, 2013

EXAM I


QUESTION 1

Given:

1. public class Pass2 {
2. public void main(String[] args) {
3. int x = 6;
4. Pass2 p = new Pass2();
5. p.doStuff(x);
6. System.out.print(" main x = " + x);
7. }
8.
9. void doStuff(int x) {
10. System.out.print(" doStuff x = " + x++);
11. }
12. }

And the command-line invocations:

javac Pass2.java
java Pass2 5

What is the result?

A. Compilation fails.
B. An exception is thrown at runtime.
C. doStuff x = 6 main x = 6
D. doStuff x = 6 main x = 7
E. doStuff x = 7 main x = 6
F. doStuff x = 7 main x = 7

Answer: B
Section: All

Explanation/Reference:
 Exception in thread "main" java.lang.NoSuchMethodError: main

QUESTION 2

Given:

1. interface DeclareStuff {
2. public static final int EASY = 3;
3.
4. void doStuff(int t);
5. }
6.
7. public class TestDeclare implements DeclareStuff {
8. public static void main(String[] args) {
9. int x = 5;
10. new TestDeclare().doStuff(++x);
11. }
12.
13. void doStuff(int s) {
14. s += EASY + ++s;
15. System.out.println("s " + s);
16. }
17. }

What is the result?

A. s 14
B. s 16
C. s 10
D. Compilation fails.
E. An exception is thrown at runtime.

Answer: D
Section: All

Explanation/Reference:

Cannot reduce the visibility of the inherited method from DeclareStuff

QUESTION 3

A class games.cards.Poker is correctly defined in the jar file Poker.jar.
A user wants to execute the main method of Poker on a UNIX system using the command:

java games.cards.Poker
What allows the user to do this?

A. put Poker.jar in directory /stuff/java, and set the CLASSPATH to include /stuff/java
B. put Poker.jar in directory /stuff/java, and set the CLASSPATH to include /stuff/java/*.jar
C. put Poker.jar in directory /stuff/java, and set the CLASSPATH to include /stuff/java/Poker.jar
D. put Poker.jar in directory /stuff/java/games/cards, and set the CLASSPATH to include /stuff/java
E. put Poker.jar in directory /stuff/java/games/cards, and set the CLASSPATH to include /stuff/java/*.jar
F. put Poker.jar in directory /stuff/java/games/cards, and set the CLASSPATH to include /stuff/java/Poker.jar
 
Answer: C
Section: All

Explanation/Reference:

QUESTION 4

Given a correctly compiled class whose source code is:

1. package com.sun.sjcp;
2.
3. public class Commander {
4. public static void main(String[] args) {
5. // more code here
6. }
7. }

Assume that the class file is located in /foo/com/sun/sjcp/, the current directory is /foo/, and that the
classpath contains "." (current directory). Which command line correctly runs Commander?

A. java Commander
B. java com.sun.sjcp.Commander
C. java com/sun/sjcp/Commander
D. java -cp com.sun.sjcp Commander
E. java -cp com/sun/sjcp Commander

Answer: B
Section: All

Explanation/Reference:

QUESTION 5

Given:

interface DoStuff2 {
     float getRange(int low, int high);
}

interface DoMore {
     float getAvg(int a, int b, int c);
}

abstract class DoAbstract implements DoStuff2, DoMore {
}

class DoStuff implements DoStuff2 {
     public float getRange(int x, int y) {
          return 3.14f;
     }
}

interface DoAll extends DoMore {
     float getAvg(int a, int b, int c, int d);
}

What is the result?

A. The file will compile without error.
B. Compilation fails. Only line 7 contains an error.
C. Compilation fails. Only line 12 contains an error.
D. Compilation fails. Only line 13 contains an error.
E. Compilation fails. Only lines 7 and 12 contain errors.
F. Compilation fails. Only lines 7 and 13 contain errors.
G. Compilation fails. Lines 7, 12, and 13 contain errors.

Answer: A
Section: All

Explanation/Reference:

QUESTION 6

Given:

public class Spock {
     public static void main(String[] args) {
          Long tail = 2000L;
          Long distance = 1999L;
          Long story = 1000L;
          if ((tail > distance) ^ ((story * 2) == tail))
              System.out.print("1");
          if ((distance + 1 != tail) ^ ((story * 2) == distance))
              System.out.print("2");
     }
}

What is the result?

A. 1
B. 2
C. 12
D. Compilation fails.
E. No output is produced.
F. An exception is thrown at runtime.

Answer: E
Section: All

Explanation/Reference:

QUESTION 7

Given:

class Payload {
     private int weight;
   
     public Payload() {
   
     }
   
     public Payload(int w) {
          weight = w;
     }
   
     public void setWeight(int w) {
          weight = w;
     }
   
     public String toString() {
          return Integer.toString(weight);
     }
}

public class TestPayload {
     static void changePayload(Payload p) {
          /* insert code */
     }
   
     public static void main(String[] args) {
          Payload p = new Payload(200);
          p.setWeight(1024);
          changePayload(p);
          System.out.println("p is " + p);
     }
}

Which code fragment, inserted at the end of line 12, produces the output p is 420?

A. p.setWeight(420);
B. p.changePayload(420);
C. p = new Payload(420);
D. Payload.setWeight(420);
E. p = Payload.setWeight(420);

Answer: A
Section: All

Explanation/Reference:

QUESTION 8

Click the Task button.

class A {
     String name = "A";
   
     String getName() {
          return name;
     }
   
     String greeting() {
          return "class A";
     }
}

class B extends A {
     String name = "B";
   
     String greeting() {
          return "class B";
     }
}

public class Client {
     public static void main(String[] args) {
          A a = new A();
          A b = new B();
          System.out.println(a.greeting() + " has name " + a.getName());
          System.out.println(b.greeting() + " has name " + b.getName());
     }
}

A.
B.
C.
D.

Answer: A
Section: All

Explanation/Reference:
class A has name A
class B has name A


QUESTION 9

Click the Exhibit button.
What is the result?



A. Value is: 8
B. Compilation fails.
C. Value is: 12
D. Value is: -12
E. The code runs with no output.
F. An exception is thrown at runtime.

Answer: A
Section: All

Explanation/Reference:

QUESTION 10

Given:

class Line {
     public class Point {
          public int x, y;
     }
   
     public Point getPoint() {
          return new Point();
     }
}

class Triangle {
     public Triangle() {
          // insert code here
     }
}

Which code, inserted at line 16, correctly retrieves a local instance of a Point object?

A. Point p = Line.getPoint();
B. Line.Point p = Line.getPoint();
C. Point p = (new Line()).getPoint();
D. Line.Point p = (new Line()).getPoint();

Answer: D
Section: All

Explanation/Reference: