The straightforward answer is that you cannot render 15,000 * 2Mb records in a simple JSP. That amounts to a 30Gb web page (+ formatting) which would have to be rendered by the server transmitted to the browser, and then buffered and displayed by the browser. That simply will not work. For a start, your users' machines won't have 30Gb of RAM.
So that means that you are going to have to implement a more complicated solution in which you provide the user with some kind of table or list viewer that allows the user to page or scroll through the 15,000 records without sending the whole lot to the user's browser. The old-school approach is to implement the list view / scrolling logic and rendering on the server side. The Web 2.0 way is to use some Javascript toolkit to implement the display and scrolling on the client side, using AJAX calls to fetch records from the server as the user looks at them.