1

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 上显示结果。我怎样才能做到这一点?

4

2 回答 2

1

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

1)通过请求。

2)通过session

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

在您的 servlet 中

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

nullpointer exception. 如果它们为空,那两条线会导致它们。

放置空检查。

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

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

发送到同一个jsp

在jsp中获取请求属性。

在那里打印。

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

阅读更多 :

于 2013-09-19T05:38:20.957 回答
1

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

于 2013-09-19T05:43:28.787 回答