Choice D is correct.
The Model 2 architecture (based on the Model View Controller pattern) suggests that Servlets and JSP be used in the presentation tier. JSP combine template data with dynamic data to display dynamic content to the user. Servlets act as front controllers, and forward requests to appropriate events in the business logic tier. Unless concurrent use of shared data is involved, it may be an overkill to use Entity beans (as in the example of a simple list retrieval.) The list retrieval is therefore best accomplished by using a session bean with a Data Access Object (DAO.) Since the bidding represents concurrent use of shared data, this is best accomplished by using an Entity bean.
Choice A is incorrect because this would not be an ideal application for applets.
Choice B is incorrect because it suggests the use of Servlets for all retrieval and updates. Although possible, this is not recommended in the J2EE best practices as an ideal way when dealing with complex applications.
Choice C is incorrect because it is suggesting that a stateless session bean be used for managing concurrent access to shared data, something best done by entity beans.
Choice E is incorrect because though it may be suited for smaller applications that are not very transactional in nature, the discussion specifically talks about the need for transactional integrity. Therefore this is not the recommended solution.
