Java 如何在jsp页面中显示消息

Java 如何在jsp页面中显示消息,java,html,jsp,runtime-error,message,Java,Html,Jsp,Runtime Error,Message,我完全是jsp的初学者,我需要在一个简单的计算前后显示一条消息。 在Eclipse中,我制作了一个index.html作为主页,一个testrun.html运行servlet,一个servlet TEST.java进行计算并显示消息,一个testmsg.jsp在参数$message中显示消息。 当我尝试运行该项目时,testmsg.jsp不会显示任何消息,而且我还收到一个错误。 我试图回答这个问题,但没有成功。 有人能帮我理解为什么testmsg.jsp不工作,我得到了错误吗 谢谢 错误 ind

我完全是jsp的初学者,我需要在一个简单的计算前后显示一条消息。 在Eclipse中,我制作了一个index.html作为主页,一个testrun.html运行servlet,一个servlet TEST.java进行计算并显示消息,一个testmsg.jsp在参数$message中显示消息。 当我尝试运行该项目时,testmsg.jsp不会显示任何消息,而且我还收到一个错误。 我试图回答这个问题,但没有成功。 有人能帮我理解为什么testmsg.jsp不工作,我得到了错误吗

谢谢

错误

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Test</title>
</head>
<body>
    <h1>
        <p align="center">TEST</p>
    </h1>
    <a href="./testrun.html"> Run the test</a>
</body>
</html>
testmsg.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Test</title>
</head>
<body>
    <h1><center>Test</center></h1>

    <p>
    <h2> ${message}</h2>
    <br>
    </p>

</body>
</html>


试验
试验

${message}


您的
RequestDispatcher
无效,请更改为

request.getRequestDispatcher("testmsg.jsp").forward(request, response);

您的
RequestDispatcher
无效,请更改为

request.getRequestDispatcher("testmsg.jsp").forward(request, response);

您的代码正在发送
doGet(请求、响应,“开始计算”)
doGet(请求、响应,“结束计算”)两次。因此,servlet将发送响应,即:
request.getRequestDispatcher(“/WEB-INF/testmsg.jsp”)…
这是您第一次调用
doGet()
方法,当您再次调用此方法时,它将在提交响应后抛出错误
无法转发。相反,您为什么不在
doGet
方法中执行以下操作:

    Object data = msg;
    if(msg.equals("End computing")){
    request.setAttribute("message", data);
    request.getRequestDispatcher("/WEB-INF/testmsg.jsp").forward(request, response);
    }

您的代码正在发送
doGet(请求、响应,“开始计算”)
doGet(请求、响应,“结束计算”)两次。因此,servlet将发送响应,即:
request.getRequestDispatcher(“/WEB-INF/testmsg.jsp”)…
这是您第一次调用
doGet()
方法,当您再次调用此方法时,它将在提交响应后抛出错误
无法转发。相反,您为什么不在
doGet
方法中执行以下操作:

    Object data = msg;
    if(msg.equals("End computing")){
    request.setAttribute("message", data);
    request.getRequestDispatcher("/WEB-INF/testmsg.jsp").forward(request, response);
    }

我做了,但没有改变。testmsg.jsp在WEB-INF文件夹中,我做了,但没有做任何更改。jsp在WEB-INF文件夹中,我需要显示两条正确的消息,一条在计算之前,另一条在计算之后。如果servlet错误,请帮助我修复它。我应该使用两个不同的servlet吗?如何生成和调用它们?我需要显示两条正确的消息,一条在计算之前,另一条在计算之后。如果servlet错误,请帮助我修复它。我应该使用两个不同的servlet吗?如何生成和调用它们?我修复了第一个问题,更改了doGet方法,但是当我第二次调用doGet时,没有显示第二条消息,而是出现了错误:java.lang.IllegalStateException:提交响应后无法转发
protected void doGet(HttpServletRequest请求,HttpServletResponse响应,String msg)抛出ServletException,IOException{Object data=msg;RequestDispatcher view=request.getRequestDispatcher(“/WEB-INF/testmsg.jsp”);request.setAttribute(“message”,data);view.forward(请求,响应);}
我修复了第一个问题,更改了doGet方法,但是当我调用第二次doGet时,没有显示第二条消息,而是得到了错误:java.lang.IllegalStateException:提交响应后无法转发
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应,String msg)抛出ServletException,IOException{Object data=msg;RequestDispatcher view=request.getRequestDispatcher(“/WEB-INF/testmsg.jsp”);request.setAttribute(“message”,data);view.forward(request,response);}
    Object data = msg;
    if(msg.equals("End computing")){
    request.setAttribute("message", data);
    request.getRequestDispatcher("/WEB-INF/testmsg.jsp").forward(request, response);
    }