为什么jsp的静态部分在java部分之后流传输?

时间:2012-05-10 14:47:09

标签: java google-app-engine jsp

我在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之前,尽管在页面中它位于静态代码中。

我需要做什么,按照我的代码中的顺序将内容打印到响应中?

2 个答案:

答案 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页面使用的同一个编写器。

相关问题