图像

Servlet获取表单参数

在ServletRequest中有几个常用方法:
-| request.getParameter();
-| request.getParameterNames();
-| request.getParameterValues();
这三个方法就可以获取表单数据的参数名称或者值。

下面的代码演示了以上几个方法的使用:

  protected void doGet(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    Enumeration<?> parNames=request.getParameterNames();
    while(parNames.hasMoreElements()) {
      String parName=(String)parNames.nextElement();
      out.println(parName);
      String[] parValues=request.getParameterValues(parName);
      if(parValues.length==1) {
        String parValue=parValues[0];
        out.println(parValue+"<br/>");
      } else {
        for(int i=0;i<parValues.length;i++)
          out.println(parValues[i]+",");
        out.println("<br/>");
      }
    }
    out.close();
  }

这里并没有用到getParameter(),并不表示它不重要,实际它很重要,只是我们的上下文环境永不到它暂时。

然后我们模拟一个表单get请求

http://localhost:8080/jconapp/hi?a=21&b=3c&c=hello&d=java&a=31

下面是输出结果:

d java
b 3c
c hello
a 21, 31,

下面再给出一个有意思的函数,它的作用你看完代码也就知道了:

  private String makeList(String listItems) {
    StringTokenizer tokenizer=new StringTokenizer(listItems,", ");
    String list="<ul>";
    while(tokenizer.hasMoreTokens()) {
      list=list+"<li>"+tokenizer.nextToken()+"</li>";
    }
    list+="</ul>";
    return list;
  }

这是个分片函数,在python和php中都有现成的,java里幸运的也有。
下面是它的测试结果:

    out.println(makeList("java c++ python"));

运行结果:

    java
    c++
    python

今晚就到这里~

发表评论