Exercise 1

Question 26 :

Considering the code below, which of the lines of code (given in the choices) should be placed at line 4 to make this JSP prints "My score is : 100"? Please ignore the line numbers for the purpose of validity of the JSP code.

My Progress Report

<% score++; %>
<%= "My score is : " + score %>


A). <%! int score = 99; %>
B). <% int score; %>
C). <%@ int score = 99; %>
D). < int score = 99; />
Answer : Option A

Explanation :

The above JSP will work on declaring and initializing the variable score. The syntax for declaring and initializing a variable in JSP is as follows:

<%! variable=variable_value ; %>

Thus A is the correct choice. The <%@ ... %> tag is used to declare directives like include directive. Thus choice C is incorrect. The <% ... %> code is used to insert scriptlet (lines of code in java) like the one at line 5. The code written inside the scriptlet becomes part of the service() method of the generated Servlet. Thus 'score' becomes the local variable of the service method. And for this JSP to compile properly, the variable 'score' should have been initialized. If "<% int score; %>" is replaced by "<% int score=99; %>" , the choice B would also be correct. In the present scenario, the choice B will give compilation error saying "Variable score may not have been initialized". Choice D is incorrect as it's not a valid tag.

Question 27 :

Which of the following are the benefits of MDB (Message Driven Beans) over standard JMS consumers?

A). In case of a MDB, developer needs to create a MessageListener class that utilizes a server-wide session pool.
B). WebLogic Server container provides standard EJB services to MDBs.
C). MDBs benefit from the write-once, deploy-anywhere paradigm of EJBs.
D). MDBs can be associated with multiple Messaging Queues or Topics unlike standard JMS.
Answer : Option B, Option C

Explanation :

A message-driven bean is a special kind of EJB that acts as a message consumer in the WebLogic JMS messaging system. As with standard JMS message consumers, message-driven beans receive messages from a JMS Queue or Topic, and perform business logic based on the message contents. EJB deployers create listeners to a Queue or Topic at deployment time, and WebLogic Server automatically creates and removes message-driven bean instances as needed to process incoming messages. 
Because message-driven beans are implemented as EJBs, they benefit from several key services that are not available to standard JMS consumers. Most importantly, message-driven bean instances are wholly managed by the WebLogic Server EJB container. Using a single message-driven bean class, WebLogic Server creates multiple EJB instances as necessary to process large volumes of messages concurrently. This stands in contrast to a standard JMS messaging system, where the developer must create a MessageListener class that utilizes a server-wide session pool. Thus choice A is incorrect. 
WebLogic Server provides standard EJB services to MDBs, such as security services and automatic transaction management. Thus choice B is correct. 
Being implemented as EJBs, MDBS benefit from the write-once, deploy-anywhere quality of EJBs. Whereas a JMS MessageListener is tied to specific session pools, Queues, or Topics, message-driven beans can be developed independently of available server resources. Thus Choice C is also correct. 
Its not that MDBs are always advantageous as compared to standard JMS consumers. One limitation of MDBs compared to standard JMS listeners is that a given MDB deployment can be associated with only one Queue or Topic. If your application requires a single JMS consumer to service messages from multiple Queues or Topics, you must use a standard JMS consumer, or deploy multiple message-driven bean classes. Thus Choice D is incorrect.

Question 28 :

Which of the statements below is true for a web application using session management?
a.) The session object is invalidated, when the session times out.
b.) The session object is invalidated, when sessionInvalidate() method of HttpSession is invoked.

A). Both of the above statements are true.
B). Only statement a.) is true.
C). Only statement b.) is true.
D). None of the above statements is true.
Answer : Option B

Explanation :

The session object will become invalid in either of the following scenarios:
a.) When the session times out.
b.) When invalidate() method of the HttpSession interface is invoked.
Please note that invalidate() and not sessionInvalidate() is the method of HttpSession interface. Thus choice B is correct.