将计算结果传递给JSP页面

时间:2013-09-19 05:35:07

标签: java forms servlets

Index.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>  

Operation.java(Servlet)从输入按钮获取值,并根据单选按钮单击进行计算。它会计算结果。

int result1=0;
int n1=Integer.parseInt(request.getParameter("firstno"));
int n2=Integer.parseInt(request.getParameter("Secondno"));
String radio=request.getParameter("option");
if(radio.equals("add"))
{
    result1=n1+n2;
}
 else if(radio.equals("substract"))
{
    result1=n1-n2;
}
else if(radio.equals("mul"))
{
    result1=n1*n2;
}

       request.setAttribute("res", result1);
        RequestDispatcher requestDispatcher =      request.getRequestDispatcher("index.jsp");
        requestDispatcher.forward(request, response);

计算后我想在index.jsp上显示结果。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

有几种方法可以在servelt和jsp之间进行通信。

1)通过请求。

2)通过session

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

在你的servlet中

            int n1=Integer.parseInt(request.getParameter("firstno"));
            int n2=Integer.parseInt(request.getParameter("Secondno"));

如果这些twolines为空,则会导致nullpointer exception.

进行空检查。

然后更改表单操作,它可能是<form action="/Operation">

然后从那里将结果设置为attribute.

的请求

发送到同一jsp

在jsp中获取请求属性。

在那里打印。

request.setAttribute("name", "value");
request.getRequestDispatcher("/index.jsp").forward(request, response);

了解更多:

答案 1 :(得分:1)

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