将数据从servlet发送到JSP

时间:2014-02-27 03:37:17

标签: java-ee post

我在将数据从servlet发送到JSP时遇到了问题。

我的数据来自用户表单,我修改它并尝试将其发送到输出页面,但发送的值与输入页面上获得的值相同。

调试时,我看到地图中更改和更新的变量(在服务方法的引擎下创建),所以我确定问题与我尝试将数据发送到输出页面的方式有关。 / p>

我的servlet:

public class OpportunityCost extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    if (request.getParameter("purchasePrice") == null) {
        getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
        return;
    }

    String iPurchasePrice = request.getParameter("purchasePrice");
    double purchasePrice = Double.parseDouble(iPurchasePrice);
    purchasePrice = purchasePrice * 100;

    request.setAttribute("purchasePrice",  purchasePrice);

    getServletContext().getRequestDispatcher("/output.jsp").forward(request, response);
}
 }

输入代码:

 <form action="OpportunityCost" method="get"> 
    <table border="0">
        <tr> 
            <td> Home Purchase Price*: <input type="text" value="1" name="purchasePrice" /></td>
        </tr>

        <tr> 
            <td colspan=2"> <input type="submit" value="submit" /> </td>
        </tr>
        </table>

输出代码:

    String finalPrice = request.getParameter("purchasePrice"); %>
    <%= finalPrice %> 

知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

属性和参数是两个不同的概念。使用request.setAttribute request.getAttribute,您可以在内部传递值,例如servlet之间。 request.getParameter()来自客户端。因此,请将输出代码更改为reqeust.getAttribute(“purchasePrice”)。