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

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

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

    當當網問題get_post問題

    Posted on 2012-11-09 15:49 志成中國 閱讀(1203) 評論(0)  編輯  收藏
    GET與Post提交問題: ---------------------------------------------- 運行login.jsp點登陸時調用兩次toLoginAction /WEB-INF/jsp/main/main.jsp /WEB-INF/jsp/user/login_form.jsp 所以取得結果在toLoginAction的execute里運行兩次 String pass = iuserDao.findPassWordByEmail(email); System.out.println(email); System.out.println(pass); 也輸出兩次:條件不同,輸出內容不同 當login_form.jsp里的表單 使用post方式提交時,控制臺輸出如下: root@root.com root null null 當login_form.jsp里的表單 使用get方式提交時,控制臺輸出如下: root@root.com root root@root.com root 解決方案一:加struts的token攔截器,只讓表單提交一次。 解決方案二:轉一個action,就是把他自動提交的那個請求通過action的轉發取消掉。 問題: 為什么get和post的默認請求后取到的值會不同? 為什么在window的電腦里沒有問題? ---------------------------------------------- 在window下,正常輸出如下: root@root.com root ---------------------------------------------- 緩存問題(服務器緩存或者瀏覽器緩存或者瀏覽器bug),導致提交兩次,與操作系統、程序、js提交是沒關系! get:通過URL路傳參,當頁面再次提交,還會把URL中的值傳遞給action,所有屬性再次被填充就不出現null值 post:URL路徑沒有信息,當再次提交,就出現屬性就出現null值 你在學生機器上,把在tomcat中work目錄刪除、在把\webapps 中項目刪除,把web容器緩存清空下! 或者把學生機器重新啟動下,把服務器緩存徹底清除下! ---------------------------------------------- ---------------------------------------------- 圖片:struts-user.xml配置如下: ---------------------------------------------- ToLoginAction類如下 : ---------------------------------------------- 進入主頁面的URL如: ---------------------------------------------- 登陸的URL如: ---------------------------------------------- 登陸界面: ---------------------------------------------- windwo系統下提交輸出如圖: ---------------------------------------------- Linux系統下,采用get提交時 ---------------------------------------------- Linux系統下,采用post提交時 ---------------------------------------------- 最后在學生電腦上又試了幾次,get方式提交正常和window系統下一樣了,post方式 提交還是沒改變,不知道為什么。 ---------------------------------------------- 郵件內容如下: 發件人:賈東坡 發送時間: 2012-11-08 09:37 收件人:zhaozq 主題: dang_get_post 趙老師: 您好。學生的程序有點問題,想聽一下您的理解。問題描述如下: 進入當當網的main頁面,點登陸輸入用戶名,密碼后,點登陸會請求ToLoginAction, 進入main頁面。在ToLoginAction里打印了email和pass,登陸之后輸出結果在linux 系統下與window下不同。window系統下正常輸出,而在linux系統下有輸出兩次,并且 login_form.jsp時表單提交方法為get時,兩次都能正常輸出;當提交方式為post里,第 二次為null。例如: 在window系統下: 我們在輸入框,輸入用戶名:root@qq.com 密碼root,會輸出如下: root@qq.com root 在linux系統下 當login_form.jsp的表單提交為get時,輸出root@qq.comroot時, 輸出如下: root@qq.com root root@qq.com root 當login_form.jsp的表單提交為post時,輸入root@qq.comroot時, 輸出如下: root@qq.com root null null 原因分析:首先想的是submit按鈕在使用js時,有自動提交功能,可是也沒使用js啊, 還有在linux系統有自己的form機制。還有一個是程序有問題。 解決方案:我給這個action加了個token表單攔截器就可以。說明是表單提交兩次。 問題是:1.為什么表單會提交兩次,而在window下只提交一個。 2.為什么在linux下用get和post提交方式第二次取到的值會不一樣。 3. form提交時在linux系統下與window有什么不一樣。 附件內是程序源碼,謝謝您的寶貴時間。 祝: 身體健康,工作順利! 賈東坡北方區 北方基地項目部 項目經理 E-mail: jiadp@tarena.com.cn Address: 北京市昌平區北七家鎮宏富創業園科技園綜合樓3層 Mobile: 18301442726 Fax: 86-10-82823773 Website: www.tarena.com.cn ---------------------------------------------- 發件人:zhaozq 發送時間: 2012-11-08 11:21 收件人:jiadp 主題: 回復: dang_get_post 賈老師: 您好! 你們班的學生機器是不是采用的是云服務器? zhaozq ---------------------------------------------- 趙老師: 您好。我們班的機器都是普通主機,linux系統的,不是用核的,也不是云服務器。 謝謝您的寶貴時間。 ---------------------------------------------- 賈老師: 您好! 緩存問題(服務器緩存或者瀏覽器緩存或者瀏覽器bug),導致提交兩次,與操作系統、程序、js提交是沒關系! get:通過URL路傳參,當頁面再次提交,還會把URL中的值傳遞給action,所有屬性再次被填充就不出現null值 post:URL路徑沒有信息,當再次提交,就出現屬性就出現null值 你在學生機器上,把在tomcat中work目錄刪除、在把\webapps 中項目刪除,把web容器緩存清空下! 或者把學生機器重新啟動下,把服務器緩存徹底清除下! zhaozq ---------------------------------------------- 趙老師: 您好。您的分析很有道理,可是我用另外幾臺電腦,試了也不行,所以不該是緩存問題。 瀏覽器bug,這個還沒測試,因為所有學生的電腦都是同樣的系統,同樣的瀏覽器,都是這個 情況。要是緩存問題,怎么可能用token攔截了,攔截下的是緩存的,還是我自己提交的,以及 在哪地方緩存。還有個問題就是,在web學習的時候也有表單提交,為什么就沒有這種情況,是 不是和struts有關。 謝謝,您的寶貴時間。 ---------------------------------------------- 趙老師回復: 您好。您的分析很有道理,可是我用另外幾臺電腦,試了也不行,所以不該是緩存問題。 瀏覽器bug,這個還沒測試,因為所有學生的電腦都是同樣的系統,同樣的瀏覽器,都是這個 情況。要是緩存問題,怎么可能用token攔截了,攔截下的是緩存的,還是我自己提交的,以及 token不是攔截了,而是令牌值相同不在提交,不是在window 系統提交沒問題嗎?那就與程序無關了,那就是系統 緩存或者瀏覽器緩存中,正常當瀏覽器關閉,緩存中數據就清除,但是如果機房比較熱、服務器處于長期運營等情況都會導致緩存信息無法清空,而影響程序執行 在哪地方緩存。還有個問題就是,在web學習的時候也有表單提交,為什么就沒有這種情況,是 緩存 不是和struts有關。 和struts沒有關系,而是與計算機硬件設備有關,這個影響具體什么時候會造成,這個都不能預計,這種情況一般比較少見。 祝: 身體健康,工作順利! ---------------------------------------------- 趙老師: 您好。謝謝您的詳細解答,真是受益匪淺,這個問題可以劃上句話了。同學們都很喜歡聽 您講課,風趣幽默、也易于接受,期待您更多的講解。 謝謝,您的精神講解。您辛苦了。 祝: 身體健康,工作順利! ---------------------------------------------- ---------------------------------------------- Debug linux系統下截圖如下: ---------------------------------------------- get方式時:正常情況下:輸出和win一樣了。 root@root.com root ---------------------------------------------- post方式時:輸出如下: root@root.com root null null -------------------------------------------------------------------------------------------

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


    網站導航:
     

    posts - 9, comments - 5, trackbacks - 0, articles - 0

    Copyright © 志成中國

    主站蜘蛛池模板: www.999精品视频观看免费| AV片在线观看免费| 老司机69精品成免费视频| 日日麻批免费40分钟无码| 91在线视频免费91| 亚洲香蕉久久一区二区| 国产亚洲蜜芽精品久久| 99久久免费国产特黄| 一二三四免费观看在线视频中文版| 久久精品九九亚洲精品| 国产AV旡码专区亚洲AV苍井空| 两个人的视频www免费| 成人毛片免费在线观看| 亚洲欧洲自拍拍偷午夜色无码| 亚洲一区AV无码少妇电影| 一级毛片免费毛片一级毛片免费 | 免费无码又爽又刺激聊天APP| 亚洲免费在线观看视频| 成在线人视频免费视频| 国产国拍亚洲精品mv在线观看| 日本亚洲中午字幕乱码| 黄页免费的网站勿入免费直接进入| 国产午夜亚洲精品国产成人小说| 亚洲中文字幕久久精品蜜桃| 日韩视频免费一区二区三区| 亚洲av色影在线| GOGOGO免费观看国语| 免费人成网站在线播放| 国产亚洲精品bv在线观看| 国产精品无码免费视频二三区| 亚洲人成人77777网站不卡| 日本人护士免费xxxx视频| fc2免费人成为视频| 国产偷窥女洗浴在线观看亚洲| 免费观看91视频| 亚洲小说图区综合在线| 精品亚洲成α人无码成α在线观看| 久久久久久国产精品免费免费男同 | 少妇中文字幕乱码亚洲影视| 国内免费高清在线观看| 一级免费黄色毛片|