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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…