pavan
pavan

Reputation: 161

servlet result display in jsp page

How to forward the servlet output to jsp page?

That means the result will be displayed in the JSP page.

Upvotes: 14

Views: 44176

Answers (2)

BalusC
BalusC

Reputation: 1108722

You normally don't use a servlet to generate HTML output. You normally use JSP/EL for this. Using out.write and consorts to stream HTML content is considered bad practice. Better make use of request attribtues.

For example:

protected void doGet(HttpServletRequest request, HttpServletResponse response) {
    Object data = "Some data, can be a String or a Javabean";
    request.setAttribute("data", data);
    request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
}

Map this in web.xml on an <url-pattern> of for example /page. Place the JSP in /WEB-INF to prevent direct access. Then in the JSP you can use EL (Expression Language) to access scoped attributes:

<p>The data from servlet: ${data}</p>

Call the servlet by http://example.com/context/page. Simple as that. This way you control the output and presentation at one place, the JSP.

Upvotes: 33

Chris Harcourt
Chris Harcourt

Reputation: 779

To forward a request/response from from a servlet to something else (e.g. JSP) you'll want to look at the RequestDispatcher class. The ServletContext class has a method to get a dispatcher, which can be called from within a servlet.

For example (within a servlet's doPost/doGet method):

RequestDispatcher rd = getServletConfig().getServletContext()
    .getRequestDispatcher("/jsp/myfile.jsp").forward(request,response);

Upvotes: 0

Related Questions