我如何将表单值传递给servlet

时间:2013-11-09 22:00:32

标签: java javascript ajax jsp servlets

我对编程很新,所以请耐心等待。

我正在尝试使用javascript从表单(在JSP中)获取值,并对servlet执行post请求。我的表单有6个值,我使用

在javascript中获取值
var value 1 =    document.getElementByID(" value of a element in the form).value
var value 2 =    document.getElementByID(" value of a element in the form).value
etc

我的问题是我正在使用javascript Ajax调用的POST请求。如何将所有这些不同的值组合成一个单独的元素,然后我可以使用servlet中的POJO'setter方法读取并分配给POJO。我不能使用JSON,因为我的项目不能使用像Jersey这样的外部库。任何指向这一点将不胜感激。

1 个答案:

答案 0 :(得分:0)

有更优雅的方法可以做到这一点,但这是最基本的方法。您需要将javascript变量组合到标准的帖子体中。

var postData = 'field1=' + value1;
postData += '&field2=' + value2;
postData += '&field3=' + value3;
/*  You're concatenating the field names with equals signs 
 *  and the corresponding values, with each key-value pair separated by an ampersand.
 */

如果您正在使用原始XMLHttpRequest工具,则此变量将是send方法的参数。如果使用jQuery,这将是您的data元素。

在servlet中,您从容器提供的HttpServletRequest对象中获取值。

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

    MyObject pojo = new MyObject();
    pojo.setField1(request.getParameter("field1"));
    pojo.setField2(request.getParameter("field2"));
    pojo.setField3(request.getParameter("field3"));
    /*  Now your object contains the data from the ajax post.
     *  This assumes that all the fields of your Java class are Strings.
     *  If they aren't, you'll need to convert what you pass to the setter.
     */ 
}