servlet结果显示在jsp页面中

时间:2009-12-01 06:45:46

标签: jsp servlets

如何将servlet输出转发到jsp页面?

这意味着结果将显示在JSP页面中。

3 个答案:

答案 0 :(得分:25)

通常不使用servlet生成HTML输出。您通常使用JSP / EL。使用out.write和consorts来流式传输HTML内容被认为是不好的做法。更好地利用请求属性。

例如:

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);
}

<url-pattern>的{​​{1}}中将此映射到web.xml中,例如/page。将JSP放在/WEB-INF中以防止直接访问。然后在JSP中,您可以使用EL(Expression Language)来访问范围属性:

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

通过http://example.com/context/page调用servlet。就那么简单。这样就可以在一个地方控制输出和表示,即JSP。

答案 1 :(得分:0)

要将请求/响应从servlet转发到其他东西(例如JSP),您需要查看RequestDispatcher类。 ServletContext类有一个获取调度程序的方法,可以从servlet中调用它。

例如(在servlet的doPost / doGet方法中):

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

答案 2 :(得分:0)

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

VOID类型,无法返回RequestDispatcher rd。