Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将计算结果传递到JSP页面_Java_Forms_Servlets - Fatal编程技术网

Java 将计算结果传递到JSP页面

Java 将计算结果传递到JSP页面,java,forms,servlets,Java,Forms,Servlets,jsp接受两个输入编号,提交请求后转到Operation.java。它有一个单选按钮来选择操作。输入和单选按钮都提交到Operation.java <body> <h1>Easy way to do fast operation</h1> <form action="Operation"> First number::<input type="text" name="firstno"></input

jsp接受两个输入编号,提交请求后转到Operation.java。它有一个单选按钮来选择操作。输入和单选按钮都提交到Operation.java

<body>
    <h1>Easy way to do fast operation</h1>
    <form action="Operation">
        First number::<input type="text" name="firstno"></input></br></br>
        Second number::<input type="text" name="Secondno"></input></br></br>
        <input type="radio" name="option" value="add">Add</input>
        <input type="radio" name="option" value="substract">Subtract</input>
        <input type="radio" name="option" value="mul">Multiply</input>
        <input type="radio" name="option" value="divide">Divide</input>
        </br></br>
        <input type="submit" value="submit"/>
    </form>    
    <%if(request.getAttribute("res")!=null){%>                   
        The result is ::${res}
    <%}%>
</body>  

计算之后,我想在index.jsp上显示结果。我该怎么做呢?

servelt和jsp之间有几种通信方式

1) 通过请求

2) 通过
会话

在您的情况下,请求级别的通信就足够了。处理会话有点棘手,尤其是当您不知道它在做什么时

在servlet中

            int n1=Integer.parseInt(request.getParameter("firstno"));
            int n2=Integer.parseInt(request.getParameter("Secondno"));
如果这两行为空,则会导致
nullpointer异常。

设置空检查

然后更改表单操作,它可能是

然后将结果作为
属性设置到该请求。

发送到相同的
jsp

在jsp中获取请求属性

在那里打印

request.setAttribute("name", "value");
request.getRequestDispatcher("/index.jsp").forward(request, response);
阅读更多:


通过在响应中呈现所需的输出。Servlet是HTTP的一个非常薄的包装器:您正在处理一个HttpRequest并生成一个HttpResponse。

使用request.setAttribute(“resultName”,result1)@gjman2但是我想在点击提交按钮后得到结果。以前没有。在这种情况下,在索引页中,我总是得到结果值。因此,编辑后,它正在工作?@gjman2 Ya it working.btw,你知道jstl吗@但是我只想在点击提交按钮后得到结果的值。在那之前没有。如果我使用它,在单击“提交”按钮之前,我已经有了一个值。@ASHISH在单击该按钮之后,只有servlet获得了正确的调用?是在单击该按钮之后,servlet获得了调用。但是在index.jsp中它存储了以前的操作值。您是如何在jsp中设置值的?您能用您现在正在做的来编辑您的帖子吗?我只在提交按钮之后和servlet请求中使用${res}。setAttribute(“res”,result1);RequestDispatcher=request.getRequestDispatcher(“index.jsp”);转发(请求、响应);
request.setAttribute("name", "value");
request.getRequestDispatcher("/index.jsp").forward(request, response);