我在Eclipse Indigo中使用Google App Engine打开了以下jsp示例页面:
<html>
<head>
</head>
<body>
<% response.getWriter().println("<h1><a href=\"VotingMainPage.jsp\"> Hello World <br></a></h1>"); %>
</body>
</html>
令我困惑的是,本地浏览器的输出是:
<h1><a href="VotingMainPage.jsp"> Hello World <br></a></h1>
<html>
<head>
</head>
<body>
</body>
</html>
java代码生成的文本位于静态html之前,尽管在页面中它位于静态代码中。
我需要做什么,按照我的代码中的顺序将内容打印到响应中?
答案 0 :(得分:1)
如果您正在使用scriptlet,那么这将完成这项工作。
<html>
<head>
</head>
<body>
<%= "<h1><a href=\"VotingMainPage.jsp\"> Hello World <br></a></h1>" %>
</body>
</html>
但你最好使用JSTL。
你的代码不起作用的原因是GAE的JSP编译器显然将JSPWriter包装在某种缓冲编写器中。当您直接使用编写器时,您的输出实际上是“超越”JSP已写入缓冲编写器的内容。
答案 1 :(得分:1)
使用out
而不是response.getWriter()
来使用JSP页面使用的同一个编写器。