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

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

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

    Dev Zone
    偏執(zhí)狂才能生存,人生/事業(yè)的路上需要再堅持一下
    但是又怎么說得清堅持的結果,道得盡堅持的含義

    2006年2月21日

         發(fā)現(xiàn)一個問題,使用struts進行文件上傳,如果有些參數(shù)沒有完全定義在ActionForm中,需要從request.getParameter獲取,在表單提交并且validate失敗返回input頁面時,這部分需要從request.getPrameter獲取的參數(shù)數(shù)據(jù)都丟失了,即使再對request進行multipart解析也不能得到。

         經(jīng)過分析,發(fā)現(xiàn)struts的ActionServlet在接收到multipart請求之后,在RequestProcessor中會對request進行封裝:MultiRequestWrapper,然后在Action執(zhí)行完之后,又將已經(jīng)封裝的request重新還原。以下是部分代碼,截直RequestProcessor:

    封裝:
        protected HttpServletRequest processMultipart(HttpServletRequest request) {

            
    if (!"POST".equalsIgnoreCase(request.getMethod())) {
                
    return (request);
            }

            
            String contentType 
    = request.getContentType();
            
    if ((contentType != null&&
                contentType.startsWith(
    "multipart/form-data")) {
                
    return (new MultipartRequestWrapper(request));
            }
     else {
                
    return (request);
            }


        }

    還原:
       在doForward和doInclude中在forward和include之前都執(zhí)行了下面的代碼:
            if (request instanceof MultipartRequestWrapper) {
                request 
    = ((MultipartRequestWrapper) request).getRequest();
            }


         問題就出現(xiàn)在這兒。在經(jīng)過測試之后,發(fā)現(xiàn)request只能進行一次multipart解析,這或許和解析request的時候調(diào)用了request.inputStream有關,第一次調(diào)用之后再調(diào)用就不能獲取其中的有效內(nèi)容了。因此發(fā)現(xiàn)request在調(diào)用CommonsMultipartRequestHandler.handleRequest進行解析后并還原后,調(diào)用common-upload對request進行解析已經(jīng)得不到任何得提交內(nèi)容了,因此當Form驗證失敗,返回input頁面時,即使再進行multpart解析,也不能通過request.getPrameter取到你想要的數(shù)據(jù)。而此時,表單中的數(shù)據(jù)卻不會丟失(定義在ActionForm中的表單域),這是因為struts的html系列tag在redisplay時值都是從ActionForm獲取的。

           在將RequestProcessor.doForward和doInclude中還原request的語句注釋后,問題得到了解決。到目前還不清楚為什么struts要還原request,難道是因為chain的原因?

           webwork中應該不會出現(xiàn)這個問題,因為webwork中無論ServletDispatcher還是FilterDispatcher在對request wrap之后都沒有再還原。
    posted @ 2006-03-15 06:10 dev 閱讀(3944) | 評論 (1)編輯 收藏
     
    tomcat、jdk1.4下出現(xiàn)The output format must have a '{http://xml.apache.org/xalan}content-handler' property!的原因:
        這是因為系統(tǒng)、tomcat或者jdk使用了老版本的xalan.jar。系統(tǒng)如果本身沒有使用,而tomcat/common/lib、tomcat/common/endorsed/lib、tomcat/shared/lib下又沒有xalan.jar的話,那就是jdk使用了老版本的xalan.jar——在jre\lib\rt.jar里面。下載最新的xalan.jar然后放到tomcat/common/endorsed下即可解決這一問題。
    posted @ 2006-03-03 19:46 dev 閱讀(1060) | 評論 (1)編輯 收藏
     
    暫時記下,沒想透徹,思考所得、個人見解以后再加入。

    企業(yè)發(fā)展的4個階段:
  • 產(chǎn)品階段
  • 資產(chǎn)階段
  • 資本階段
  • 品牌階段

    企業(yè)管理的4個階段:
  • 人治,嘴上說
  • 法治,建立制度
  • 企業(yè)文化
  • 目標管理,充分發(fā)揮員工的積極主動型,自我管理
  •  

    posted @ 2006-02-21 02:13 dev 閱讀(762) | 評論 (0)編輯 收藏
     

          blog很好,blogjava暫時感覺也很好,可是為什么不能寫只允許自己看的日志呢?雖說blog就是為了大家能夠分享彼此的觀點感想,但是總有一些東西是不便公開或者暫時不能公開的。如果允許寫只允許自己看的日志,blog的應用范圍就會更大,價值也會被充分挖掘了。
         也可能是我愚昧,對blog了解還不深吧,上述所說的blog也許已經(jīng)出現(xiàn)了(自己搞一個得了,笑談)。

    posted @ 2006-02-21 02:02 dev 閱讀(259) | 評論 (0)編輯 收藏
     
    主站蜘蛛池模板: 亚洲精品在线免费观看视频| 日韩免费人妻AV无码专区蜜桃| 成年大片免费视频| 亚洲成aⅴ人片在线观| 亚州免费一级毛片| 亚洲成a人片毛片在线| 亚洲精品视频免费在线观看| 久久久久久亚洲Av无码精品专口| 国产成人久久AV免费| 亚洲成AV人片在线观看WWW| 麻豆精品成人免费国产片| 亚洲精品无码永久在线观看你懂的| 国产精品无码永久免费888| 自拍偷自拍亚洲精品被多人伦好爽| 中文字幕的电影免费网站| 国产AV无码专区亚洲A∨毛片| av永久免费网站在线观看| 久久精品国产亚洲av麻豆色欲| 97热久久免费频精品99| 在线观看亚洲AV日韩A∨| 久久精品无码一区二区三区免费| 久久亚洲精品国产精品婷婷| 日本免费人成视频播放| jizz免费观看视频| 婷婷亚洲久悠悠色悠在线播放| 精品无码免费专区毛片| WWW国产亚洲精品久久麻豆| 亚洲精品国产电影| 久久青青草原国产精品免费| 亚洲av无码片在线观看| 亚洲男人在线无码视频| 久久午夜羞羞影院免费观看| 亚洲男人天堂2018av| 亚洲AⅤ永久无码精品AA| 久久国产乱子伦精品免费不卡| 亚洲高清视频在线| 中文字幕久久亚洲一区| 天天影视色香欲综合免费| 日本在线观看免费高清| 亚洲系列国产精品制服丝袜第| 国产精品国产自线拍免费软件|