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 在线求解
JSPServletwebpostform

解决方案 »

  1.   

    把这个去掉试试:enctype="multipart/form-data"
      

  2.   

    却是是这样,GET提交就可以,post就不行,我也不知道为什么
      

  3.   

    去掉enctype="multipart/form-data" 之后能接受到,可是乱码
      

  4.   

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

  5.   

    enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。
    form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功
      

  6.   

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

  7.   

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

  8.   

    楼上正解,有enctype="multipart/form-data" 这个属性,不能用request.getParameter()方法拿到值的
      

  9.   

    enctype="multipart/form-data" 这个是一般在上传的时候用到。
      

  10.   

    表单中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( );取单个参数单个值
      

  11.   

    你说的是对的,我就是这样做的,真是隔一行如隔一座山啊,不是毕业设计,我也不会接触到JSP