为什么jsp的静态部分流在java部分之后?
我使用Eclipse Indigo中的Google App Engine编写了以下jsp示例页面:为什么jsp的静态部分流在java部分之后?,java,google-app-engine,jsp,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>"); %> </
<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之前,尽管页面位于静态代码内部
我必须做什么,才能按照我在代码中的顺序将内容打印到响应中?如果您使用的是Scriptlet,那么这将完成这项工作
<html>
<head>
</head>
<body>
<%= "<h1><a href=\"VotingMainPage.jsp\"> Hello World <br></a></h1>" %>
</body>
</html>
但是您最好使用JSTL
代码无法工作的原因是GAE的JSP编译器显然在某种缓冲编写器中包装JSPWriter。当您直接使用writer时,您的输出实际上“超过”了JSP写入缓冲writer的内容。使用
out
而不是response.getWriter()
来使用JSP页面正在使用的同一个writer 我的代码只是在运行时生成文本的较大函数的简化示例。我不能在这里使用静态内容。@REDSOFTADAIR-
中的内容可以是任何Java表达式。