<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jsp的request.getParameter獲取不到表單參數(shù)

    可能原因:

    1: form表單中的控件沒有定義name屬性

    2: form表單中的控件被設(shè)置成disabled

    3: form表單的enctype="multipart/form-data"是一種用于上傳文件的表單

    解決方法:

    對于第三種情況我們直接request.getParameter來取參數(shù)值是取不到的

    我們可以借用apache的上傳組件來解決

    用到jarcommons-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;

        /**

         *獲取各種類型表單的表單參數(shù)

         *@paramrequest HttpServletRequest請求對像

         * @paramparamName 參數(shù)名

         *@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"))//中文轉(zhuǎn)碼

                   }

               }

            }

        }else{

            return new String(request.getParameter(paramName).getBytes("ISO8859-1"))//中文轉(zhuǎn)碼

        }

        return"";

        }

    posted on 2007-12-14 19:07 JGAO編程隨筆 閱讀(14900) 評論(6)  編輯  收藏

    評論

    # re: jsp的request.getParameter獲取不到表單參數(shù) 2008-05-16 01:35 howardhe

    請指教,為什么我在程序中只能調(diào)用一次這處方法,其后調(diào)用就不能正確返回結(jié)果  回復(fù)  更多評論   

    # re: jsp的request.getParameter獲取不到表單參數(shù)[未登錄] 2008-05-19 23:16 jgao

    我測試了下,沒發(fā)現(xiàn)你說的問題啊,不懂你是怎么調(diào)用出現(xiàn)的問題


    //Test.java
    package com.sf.test;

    import java.io.UnsupportedEncodingException;
    import java.util.Iterator;
    import java.util.List;

    import javax.servlet.http.HttpServletRequest;

    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;

    public class Test {
    /**
    *
    * 獲取各種類型表單的表單參數(shù)
    *
    * @paramrequest HttpServletRequest請求對像
    *
    * @paramparamName 參數(shù)名
    *
    * @return
    * @throws UnsupportedEncodingException
    *
    * @throwsFileUploadException
    *
    */

    public static String getParameterValue(HttpServletRequest request,
    String paramName) throws FileUploadException,
    UnsupportedEncodingException {
    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"));// 中文轉(zhuǎn)碼
    }
    }
    }else{
    return "";
    }
    } else if(request.getParameter(paramName)!=null){
    return new String(request.getParameter(paramName).getBytes(
    "ISO8859-1"));// 中文轉(zhuǎn)碼
    }else{
    return "";
    }
    return "";
    }

    }



    TestJsp.jsp
    <%@ page contentType="text/html;charset=GB2312"%>
    <html>
    <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" >
    <form action="TestJspAction.jsp" enctype="multipart/form-data">
    <table width="100%" border="0" cellpadding="0" cellspacing="0">
    <input type="text" id="userName" name="userName">
    <input type="submit" value="submit">
    </table>
    </form>
    </body>
    </html>



    //TestJspAction.jsp
    <%@ page contentType="text/html;charset=GB2312"%>
    <%@ page import="com.sf.test.Test"%>
    <%
    String userName = Test.getParameterValue(request,"userName");
    out.print(userName);
    %>

      回復(fù)  更多評論   

    # re: jsp的request.getParameter獲取不到表單參數(shù) 2008-06-03 20:35 zhoudb

    我試了,但是怎么還是獲取不了哦,快瘋了哦啊!  回復(fù)  更多評論   

    # re: jsp的request.getParameter獲取不到表單參數(shù) 2008-09-18 11:50 逸誠

    確實用enctype="multipart/form-data"上傳文件時表單的參數(shù)得不到。  回復(fù)  更多評論   

    # re: jsp的request.getParameter獲取不到表單參數(shù)[未登錄] 2011-05-14 11:32 ok

    @逸誠
    肯定阿,你用二進(jìn)制這種方式,用request肯定得不到,你要用另一種reqeust,具體我記不清了,你查一下  回復(fù)  更多評論   

    # re: jsp的request.getParameter獲取不到表單參數(shù) 2011-07-28 16:01 ``

    那我在jsp頁面中怎么得到表單參數(shù)的值  回復(fù)  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2007年12月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(1)

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩亚洲翔田千里在线| 日本不卡免费新一区二区三区| 亚洲视频在线免费| 最好看的中文字幕2019免费| 亚洲综合av一区二区三区不卡| 国产亚洲精品资在线| 久久免费看黄a级毛片 | 久久精品国产亚洲AV电影| 一本无码人妻在中文字幕免费| 国产精品亚洲一区二区三区久久 | 久久丫精品国产亚洲av| 四虎在线免费播放| 美女被cao网站免费看在线看| 亚洲色一区二区三区四区| 亚洲欧洲自拍拍偷午夜色无码| 成人午夜免费福利| 久久国产乱子伦精品免费强| 亚洲国产精品久久久久秋霞小| 亚洲AV无码久久| 日韩免费电影在线观看| 日韩精品无码一区二区三区免费| 国产精品亚洲lv粉色| 亚洲免费在线观看视频| 自拍偷自拍亚洲精品第1页| 四虎永久在线精品免费网址| av永久免费网站在线观看| 国产偷国产偷亚洲高清人| 亚洲国产亚洲片在线观看播放| 亚洲女同成人AⅤ人片在线观看| 大学生一级毛片免费看| 野花香高清视频在线观看免费 | 两个人看www免费视频| 久久亚洲欧美国产精品| 亚洲毛片一级带毛片基地| 国产成人A亚洲精V品无码| 国产免费私拍一区二区三区| 亚洲免费观看在线视频| 3344在线看片免费| 男女拍拍拍免费视频网站| 免费精品国自产拍在线播放| 亚洲av永久无码天堂网|