Bal*_*usC 26
您通常不使用servlet来生成HTML输出.您通常使用JSP/EL.使用out.write和配合流式传输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);
}
Run Code Online (Sandbox Code Playgroud)
<url-pattern>例如,在web.xml中映射它/page.将JSP放入/WEB-INF以防止直接访问.然后在JSP中,您可以使用EL(表达式语言)来访问作用域属性:
<p>The data from servlet: ${data}</p>
Run Code Online (Sandbox Code Playgroud)
通过调用servlet http://example.com/context/page.就那么简单.这样就可以在一个地方控制输出和表示,即JSP.
要将请求/响应从 servlet 转发到其他内容(例如 JSP),您需要查看该类RequestDispatcher。ServletContext 类有一个获取调度程序的方法,可以从 servlet 内调用该调度程序。
例如(在 servlet 的doPost/doGet方法内):
RequestDispatcher rd = getServletConfig().getServletContext()
.getRequestDispatcher("/jsp/myfile.jsp").forward(request,response);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38597 次 |
| 最近记录: |