当前位置:编程学习 > JAVA >>

Jsp提交form用post方法doPost.getParameter ()获取不到内容,用get方法就可以,求解

jsp代码:
<form action="updateNewsServlet" method="post" enctype="multipart/form-data" name="newsDetailForm"  size=100>

servlet:
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
resp.setCharacterEncoding("UTF-8");
req.setCharacterEncoding("UTF-8");
int nid = Integer.parseInt(req.getParameter ( "nid" ));
System.out.println("nid = "+ nid);
}
输出的是 nid = null 在线求解
JSP Servlet web post form --------------------编程问答-------------------- 把这个去掉试试:enctype="multipart/form-data" --------------------编程问答-------------------- 却是是这样,GET提交就可以,post就不行,我也不知道为什么 --------------------编程问答-------------------- 去掉enctype="multipart/form-data" 之后能接受到,可是乱码。。。 --------------------编程问答-------------------- 1、一种可能是:你检查一下看你那块是不是存在js里面提交action的问题。
2、另一种是在使用表单传送数据的时候,如果form 加了enctype="multipart/form-data" 这个属性,那么表单请求传到另一个jsp或servlet 里时
是不能用request.getParameter()来获取到各个表单元素的值的。
要获取可以这样子:
mySmartUpload.initialize(config,request,response);
filename=mySmartUpload.getRequest().getParameter("sourcefile");
--------------------编程问答-------------------- enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。
form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功 --------------------编程问答-------------------- 1、一种可能是:你检查一下看你那块是不是存在js里面提交action的问题。
2、另一种是在使用表单传送数据的时候,如果form 加了enctype="multipart/form-data" 这个属性,那么表单请求传到另一个jsp或servlet 里时
是不能用request.getParameter()来获取到各个表单元素的值的。
要获取可以这样子:
mySmartUpload.initialize(config,request,response);
filename=mySmartUpload.getRequest().getParameter("sourcefile");


这个还是获取不到 --------------------编程问答--------------------
引用 6 楼 leo531070339 的回复:
1、一种可能是:你检查一下看你那块是不是存在js里面提交action的问题。
2、另一种是在使用表单传送数据的时候,如果form 加了enctype="multipart/form-data" 这个属性,那么表单请求传到另一个jsp或servlet 里时
是不能用request.getParameter()来获取到各个表单元素的值的。
要获取可以这样子:
mySmartUpload.initialize(config,request,response);
filename=mySmartUpload.getRequest().getParameter("sourcefile");


这个还是获取不到

SmartUpload mySmartUpload = new SmartUpload();//新建一个SmartUpload对象

--------------------编程问答-------------------- 楼上正解,有enctype="multipart/form-data" 这个属性,不能用request.getParameter()方法拿到值的 --------------------编程问答-------------------- enctype="multipart/form-data" 这个是一般在上传的时候用到。
--------------------编程问答-------------------- 表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作.
enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。
form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功,取表单值加入数据库时,用到下面的:
SmartUpload su = new SmartUpload();//新建一个SmartUpload对象
su.getRequest().getParameterValues();取数组值
su.getRequest().getParameter( );取单个参数单个值 --------------------编程问答--------------------
引用 10 楼 nhlbengbeng 的回复:
表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作.
enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。
form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功,取表单值加入数据库时,用到下面的:
SmartUpload su = new SmartUpload();//新建一个SmartUpload对象
su.getRequest().getParameterValues();取数组值
su.getRequest().getParameter( );取单个参数单个值

你说的是对的,我就是这样做的,真是隔一行如隔一座山啊,不是毕业设计,我也不会接触到JSP。。。
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,