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