<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 © 志成中國

    主站蜘蛛池模板: 亚洲精品无码激情AV| 在线观看人成网站深夜免费| 亚洲综合区小说区激情区 | 亚洲国产精品日韩在线| 99在线免费观看视频| 久久亚洲精品无码VA大香大香| 久久久久久影院久久久久免费精品国产小说| 亚洲人成亚洲人成在线观看| aaa毛片免费观看| 国产亚洲精品自在久久| 99久热只有精品视频免费观看17| 亚洲最新视频在线观看| 无限动漫网在线观看免费| 亚洲午夜无码毛片av久久京东热| 午夜神器成在线人成在线人免费| 亚洲国产成人AV网站| 自拍偷自拍亚洲精品第1页| 久久久久久免费一区二区三区| 99ri精品国产亚洲| 一个人看www在线高清免费看| 亚洲大尺度无码无码专线一区| 国产免费怕怕免费视频观看| 国产日韩精品无码区免费专区国产 | 日本黄网站动漫视频免费| 最新亚洲精品国偷自产在线| 国产大片91精品免费看3| eeuss在线兵区免费观看| 久久亚洲免费视频| 免费毛片在线看片免费丝瓜视频| 老妇激情毛片免费| 久久精品视频亚洲| 成人最新午夜免费视频| 亚州**色毛片免费观看| 亚洲人成网站影音先锋播放| 成年在线观看免费人视频草莓| 香蕉国产在线观看免费| 亚洲丁香色婷婷综合欲色啪| 卡1卡2卡3卡4卡5免费视频| 精品无码一级毛片免费视频观看| 亚洲最大视频网站| 亚洲精品97久久中文字幕无码|