有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java PrintWriter输出到jsp页面内的body标记

这是要打印到我的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>

这就是我得到的错误:

enter image description here


共 (2) 个答案

  1. # 1 楼答案

    这并不是对你问题的直接回答,但我相信你所做的一切只会给你带来痛苦,即使你成功了。你使用的工具不适合这份工作;创建自定义JSP标记是从Java代码写入JSP的更好选择


    代码示例:

    注册。jsp

    <%@ taglib prefix="custom" uri="/WEB-INF/custom-tags.tld" %>
    
    <!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>
        <p>
          <c:out value="${custom:printHaha()}" />
        </p>
    </body>
    </html>
    

    自定义标记。tld

    <?xml version="1.0" encoding="UTF-8"?>
    
    <taglib version="2.0" 
            xmlns="http://java.sun.com/xml/j2ee"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">
        <tlibversion>1.0</tlibversion>
        <jspversion>2.0</jspversion>
        <shortname>custom-taglib</shortname>
    
        <uri>CustomTags</uri>
    
        <function>
            <name>printHaha</name>
            <function-class>com.yourpackage.Tags</function-class>
            <function-signature>
               java.lang.String print()
            </function-signature>
        </function>
    
        (...)
    

    标签。班级

    public class Tags {
        public static String print() {
            return "haha";
        }
    }
    

    有关标签的更多信息:official docs

  2. # 2 楼答案

    我不会查你的密码。。。你不能出去玩。在jsp页面中使用get writer再次打印。。。因为这个请求的响应已经通过呈现jsp提交

    现在要在asp上打印一些东西,你可以用多种方法来实现

    1. 按表达式标签打印
    1. use out(服务器创建的对象)

      出去。打印(“废话……”)

    还有更多

    要了解jsp会发生什么,请查看/work/catalina/blah…/