在Java Servlet中捕获表单数据 - 代码搜索

时间:2014-04-25 21:18:48

标签: java servlets

我想就我想要了解的特定问题提供一些反馈。我正在尝试构建一个简单的Java Web应用程序,允许用户输入他们的邮政编码和距离,并让java servlet捕获该数据并通过Best Buy的API,BBYOpen运行它,以返回最接近所提供信息的商店。 Remix.Java API(由BBYOpen提供)文档以此为例:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.mattwilliamsnyc.service.remix.*;

public class RemixAdvancedDemo {

    public static void main(String[] args) {
        Remix remix = new Remix("YourApiKey");

        List<String> storeFilters   = new ArrayList<String>();
        List<String> productFilters = new ArrayList<String>();

        storeFilters.add("area(11201,10)");
        productFilters.add("sku=8982988");

        try {
            StoresResponse response = remix.getStoreAvailability(
                storeFilters,
                productFilters
            );

            if(!response.isError()) {
                for(Store store : response.list()) {
                    System.out.println(
                        store.getName() + " (" + store.getDistance() + " miles)"
                    );
                    for(Product product : store.getProducts()) {
                        if(product.hasInStoreAvailability()) {
                            System.out.println(product.getName());
                            System.out.println(
                                "Available for $" + product.getSalePrice()
                            );
                        }
                    }
                    System.out.println();
                }
            } else {
                ErrorDocument error = response.getError();
                if(null != error) {
                    System.out.println(error.getStatus());
                    System.out.println(error.getMessage());
                    System.out.println("Examples:");
                    for(String example : error.getExamples()) {
                        System.out.println(example);
                    }
                }
            }
        } catch(RemixException e) {
            e.printBackTrace();
        }
    }
}

这是一个在纽约市找到Playstation 3可用商店的例子。这不是我想要做的。但我认为我需要的是在这里稍微修改一下。

1.我假设我可以删除代码中对产品的任何引用。

2.我需要List storeFilters = new ArrayList();?这对servlet来说是否必要。

3.我可以使用getParameter()从我的.jsp表单中检索用户输入,然后在storeFilters.add中引用它(&#34; area(11201,10)&#34;);替换那里已有的值。

我是java的新手,对此的任何帮助或建议都会很棒。 干杯

1 个答案:

答案 0 :(得分:0)

  1. 您似乎可以忽略处理产品的示例部分,因为您只对位置感兴趣。

  2. 该行声明变量 storeFilters 并将其初始化为空列表。所以是的,那部分是必需的,因为您稍后会在代码中向该列表添加过滤器。查看List(和ArrayList)上的文档:http://docs.oracle.com/javase/8/docs/api/java/util/List.html

  3. 是的,HttpServletRequest.getParameter()将为您提供表单字段(和查询字符串参数)的字符串值,以便您可以动态创建所需的过滤器并将其添加到storeFilters列表中。