这是打印到我的 jsp 页面的代码。但是我在页面中有其他代码。当我调用这个函数时,我希望它在调用它之后立即打印消息。我无法确定,因为我正在使用 xhtml 协商,但我怀疑它在/html 标记之后打印。
这是我的功能
public Print(HttpServletRequest request,HttpServletResponse response){
try{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.print("<p>haha</p>");
}catch(IOException e){
e.printStackTrace();
}
}
};
这就是我所说的
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Register</title>
</head>
<body>
<%@ page import="com.otrocol.app.*" %>
<%
Print(request, response);
%>
</body>
</html>
这就是我认为的结果:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Register</title>
</head>
<body>
</body>
</html>
"haha"
这就是我想要的响应:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Register</title>
</head>
<body>
"haha"
</body>
</html>
这是我得到的错误:
最佳答案
JSP 使用它自己的 PrintWriter,即 JspWriter out
。因此将其传递给(静态)函数。
否则,您将采用第二个写入器,并且随着缓冲,一切都会变得困惑。
此外,由于输出已经发生,因此不要在函数中设置内容类型。
JSP 的顶部是一个很好的位置,也适合导入。
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
当有一个编写器时,该函数将在正文中的正确位置打印。
对原因有很好的直觉。顺便说一句,函数名称以小写字母开头。
关于java - PrintWriter 输出到 body 标记内的 jsp 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16361628/