A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

范能胡

初级黑马

  • 黑马币:19

  • 帖子:6

  • 精华:0

© 范能胡 初级黑马   /  2017-10-19 11:05  /  796 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 范能胡 于 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对象被掏空了一样。
还请知道原因的坛友不吝赐教。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马