黑马程序员技术交流社区

标题: Servlet后台获取参数 [打印本页]

作者: 范能胡    时间: 2017-10-19 11:05
标题: Servlet后台获取参数
本帖最后由 范能胡 于 2017-10-19 11:11 编辑

自学的java,把servlet学完已经快要学框架了。但是有个问题实在是想不通了,特来求助坛友。
写了一个很简单的login.jsp页面,页面中写了一个表单,用来提交数据,如下:

[HTML] 纯文本查看 复制代码
<form action="/WebHome/loginservlet" method="post">
          YongHuMing:<input type="text" name="username"/>
                  
          <input type="submit" value="TiJiao"/>
         
</form>


点击完提交之后会提交到loginservlet页面。在页面中的doGet方法中(doPost方法也已经做过了处理)写了如下代码接参:
[Java] 纯文本查看 复制代码

//getParameter方式接参
String paraname = request.getParameter("username");
System.out.println("getParameter方式的结果为:"+paraname);
               
//输入流的方式接参
ServletInputStream stream = request.getInputStream();
byte[] buf = new byte[1024];
int len=0;
while((len=stream.read(buf))!=-1){
        String str = new String(buf,0,len);
        System.out.println("输入流的方式的结果为:"+str);
}



在login.jsp页面输入一个字母a,然后提交。后台servlet分别用了输入流的方式和getParameter方法的方式接参。
然而,结果是,这两种方式,谁在上面谁就可以接到参数,谁在下面就接不到。

比如我把getParameter的方式放在上面,结果就为:
getParameter方式的结果为:a


如果把输入流的方式放在上面,结果就为:
输入流的方式的结果为:username=a
getParameter方式的结果为:null

不明白为什么用第一种方式接完参数之后,第二种就接不到数据,就好像request对象被掏空了一样。
还请知道原因的坛友不吝赐教。







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2