`
duanfei
  • 浏览: 733539 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

jsp的request.getParameter获取不到表单参数

    博客分类:
  • JSP
阅读更多
可能原因:
1: form表单中的控件没有定义name属性
2: form表单中的控件被设置成disabled
3: form表单的enctype="multipart/form-data"是一种用于上传文件的表单

解决方法:
对于第三种情况我们直接request.getParameter来取参数值是取不到的
我们可以借用apache的上传组件来解决
用到jar包commons-fileupload-1.1.1.jar
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
    /**
     *获取各种类型表单的表单参数
     *@paramrequest HttpServletRequest请求对像
     * @paramparamName 参数名
     *@return
     *@throwsFileUploadException
     */
    publicstatic String getParameterValue(HttpServletRequest request,String paramName) throws FileUploadException{
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    if(isMultipart==true){
        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        List fileItemList = upload.parseRequest(request);
        if(fileItemList!=null){
           for(Iterator itr=fileItemList.iterator();itr.hasNext();){
               FileItem fileItem = (FileItem)itr.next();
               if(fileItem.getFieldName().equalsIgnoreCase(paramName)){
                   return new String(fileItem.getString().getBytes("ISO8859-1"))//中文转码
               }
           }
        }
    }else{
        return new String(request.getParameter(paramName).getBytes("ISO8859-1"))//中文转码
    }
    return"";
    }
分享到:
评论
1 楼 yuyee 2011-03-24  
哥们,非常感谢你,哥刚碰到第三种问题,我说怎么debug 的时候fileitem里可以 拿到值

相关推荐

    request.getParameter() 和request.getAttribute() 区别

    在Web开发中,当用户填写表单并提交时,表单中的数据会以参数的形式被发送到服务器端,此时`request.getParameter()`就派上了用场。该方法返回的是字符串类型,如果请求参数不存在,则返回`null`。 例如,在HTML...

    request.getParameter()取值为null的解决方法

    在Web开发中,获取客户端传递给服务器的数据是一种常见需求,通常使用`request.getParameter()`方法从`HttpServletRequest`对象中获取表单数据或者URL参数。然而,在实际应用中,开发者有时会遇到`request....

    request.getParameterMap()返回的是String []数组1

    `request.getParameterMap()`、`request.getParameter()`和`request.getParameterValues()`是三个重要的方法,它们分别用于获取不同类型的请求参数。接下来,我们将深入探讨这三个方法的功能、用法以及它们之间的...

    数据库测试test.sql

    request.getRequestDispatcher("/admin/register.jsp").forward(request,response); return; } //2.调用业务层完成注册操作并返回结果 User user = new User(userId,realName,pwd,age, Arrays.toString...

    基于request.getAttribute与request.getParameter的区别详解

    在Java Servlet和JSP开发中,`HttpServletRequest`接口提供了两种主要的方法来获取客户端发送到服务器的数据:`getAttribute()`和`getParameter()`。它们虽然都用于获取请求中的数据,但有着本质的区别,下面将详细...

    Jsp的request的用法

    1. **request.getParameter()**:这个方法用于获取客户端(通常是HTML表单)通过HTTP请求(GET或POST)传递到服务器端的参数。这些参数通常以键值对的形式出现在URL(GET)或请求体(POST)中。例如,当用户在表单中...

    表单及表单元素的应用(jsp).rar

    在JSP中,表单提交的数据可以通过请求参数获取。对于`GET`请求,参数会显示在URL后面;对于`POST`请求,参数则包含在请求体中。使用`request.getParameter()`方法可以获取用户提交的表单数据,例如: ```jsp String...

    jsp中request中的使用获取参数

    首先,`request`对象通过`getParameter()`方法可以获取URL参数。假设你的JSP页面接收了一个名为`username`的参数,你可以如下所示获取它: ```jsp String username = request.getParameter("username"); ``` 如果`...

    JSP几种页面间传递参数实现的方法

    通过这种方式和一般的表单参数一样的,也可以通过request.getParameter(name)取得参数。 3. 设置session和request实现参数传递 可以通过显示的把参数放置到session和request中,以达到传递参数的目的: session....

    JSP.rar_request jsp

    使用`request.getParameter()`方法可以获取这些参数的值。例如,如果有一个名为"username"的表单字段,可以通过`request.getParameter("username")`来获取用户输入的用户名。返回的是一个String类型,如果参数不存在...

    jsp源码实例.rar_JSP 参数

    `request.getParameter()`, `session.getAttribute()`, 和 `application.getAttribute()` 分别用于从请求、会话和应用范围获取参数。 4. **Cookie操作**:在`jsp源码实例4(cookie).txt`中,我们可以学习到如何使用...

    Java Web应用开发 18 课堂案例-使用request对象获取简单表单信息.docx

    如果直接打开`requestdemo1.jsp`而不通过`input.html`提交表单,则`request.getParameter`将返回`null`,因为没有表单数据可供获取。 为了增强程序的健壮性,避免因空对象引发`NullPointerException`,我们在处理...

    jsp参数传递

    在JSP页面中获取这些参数可以使用 `request.getParameter()` 方法: ```jsp String action = request.getParameter("action"); String detail = request.getParameter("detail"); ``` #### 三、使用`<jsp:param>`...

    实例详解JSP内置对象--request对象

    例如,在表单中可以使用request.getParameter()方法获取表单数据,並将其传递给服务器端。在服务器端,可以使用request.setCharacterEncoding()方法设置字符编码,以避免中文乱码的问题。 四、request对象的其他...

    java web学习_浅谈request对象中get和post的差异

    Java Web 学习之 Request 对象中 GET 和 POST 的差异 摘要:本文将对 Java Web 中 Request 对象中 GET 和 ...同时,我们应该注意到 servlet 作为控制器是不应该输出内容的,我们应该把要打印的内容放到 JSP 文件中。

    jsp 应用获取表单元素

    JSP获取表单数据的方法:\n\n - 使用request对象:在JSP中,HttpServletRequest对象可以获取客户端发送的所有请求数据,包括表单数据。例如,对于一个名为"user"的文本框,我们可以通过request.getParameter("user...

    基于jsp的表单多种控件接收例子

    - **单选按钮/下拉列表**:通过 `request.getParameter()` 获取选中的值,如果有多个选项,可能需要遍历 `request.getParameterValues()`。 - **复选框**:复选框可能有多个选项被选中,所以通常使用 `request....

    [JSP应用]使用jsp上传组件jspsmartupload时如何获取FORM中其它的值.doc

    在文件上传完成后,我们不能像平常那样使用`request.getParameter`来获取非文件字段的值。`JSPSmartUpload`提供了一个替代的方法来获取这些参数。你需要使用`mySmartUpload.getRequest().getParameter`来获取这些值...

    JSP内部对象详解.

    在主页面的表单中,用户输入的值被提交到2.jsp,然后`request.getParameter("gr1")`、`request.getParameter("gr2")`和`request.getParameter("gr3")`分别获取对应字段的值并显示。 - **getParameterNames()**: ...

    Jsp链接Mysql+Jsp注册表单(学习笔记).

    在`register.jsp`中,使用`request.getParameter()`获取表单数据,然后通过JDBC操作数据库。确保先执行`PreparedStatement`的`setString()`方法设置参数,再执行`executeUpdate()`插入数据,以防止SQL注入攻击: `...

Global site tag (gtag.js) - Google Analytics