如何将servlet输出转发到jsp页面?
这意味着结果将显示在JSP页面中。
答案 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。