请求参数获取

用户通过浏览器向服务器发送请求,有get和post两种方式,那么我们怎么获得提交的参数呢?

方式一  getQueryStringh()和getInputStream()

1.get方式提交

System.out.println("get方式提交");
String value=req.getQueryString();
System.out.println(value);

这种方式是通过getQueryString方法获取get方式提交的参数,得到的结果类似于name=test&pwd=123这种形式

2.post方式提交

System.out.println("post方式提交");
InputStream in=req.getInputStream();
byte[] bytes=new byte[1024];
int len=0;
while ((len=in.read(bytes))!=-1){
    System.out.println(new String(bytes,0,len));
}
这种方式是通过getInputStream方法获取post方式提交的参数,得到的结果 类似于name=test&pwd=123这种形式

注意:第一种方式是get用getQueryString方法获取参数,而post方式用getInputStream方法获取参数,两种方法不通用,即get方式提交参数不能用getInputStream方法获取,同样的,post方式提交参数不能用getQueryString方法获取

方法二 getParameter()

使用getParameter方法获取参数可以获取post方式提交的参数,也可以获取get方式提交的参数,是一种通用的方法,但是这样方法只能获取单个参数的值,如果参数值有两个或两个以上,那么只能获取第一个值(例如复选框)

1.getParameter("name"):name是参数名,该方法跟根据参数名获取参数值

2.getParameterNames():获取所有的参数名,结果是一个Enumeration类型的数据。

3.getParameterValues():获取参数名对应的所有参数值

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    /**
     * getMethod():获取请求方式(get或post)
     */
    System.out.println(req.getMethod()+"方式提交");
    /**
     * getParameter()这个方法是根据名字获得值
     */
    String name=req.getParameter("name");
    String pwd=req.getParameter("pwd");
    System.out.println(name+"="+pwd);

    System.out.println("-------------------------");
    /**
     * getParameterNames():获取所有的名字,结果是一个Enumeration
     */
    Enumeration<String> enums=req.getParameterNames();
    //上面的两种方法只能获取单个的值,如果有复选框或者其他的多值,就不适合了
    while (enums.hasMoreElements()){
        String enumName=enums.nextElement();//获取名字
        //可以拿到复选框的值
        if ("hobit".equals(enumName)){
            System.out.print(enumName+":");
            String[] hobits=req.getParameterValues("hobit");
            for (String hobit:hobits){
                System.out.print(hobit+" ");
            }
            System.out.println();
        }
        else {
            String enumValue=req.getParameter(enumName);//根据名字获取值
            System.out.println(enumName+"="+enumValue);
        }
    }

简单的说一下,我这里名字为hobit的是一个复选框,表示爱好,允许用户选择多个爱好,所以这里就使用getParameterValues方法获取该参数对应的所有参数值。



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值