JSP Debug日誌

       先談兩個關於reponse.sendRedirect()函數的問題 :
      1、在Servlet的處理流或JSP的頁面流中,sendRedirect()的出現並不意味着跳出處理流,或言之:處理流的中斷,也就是說,即便頁面跳轉了,但後續處理如果沒有用判斷語句加以跳出,則後續語句仍然會運行,查了一下資料,發現其原因是sendRedirect()引入了額外的響應/請求對,所以原請求/響應對仍然存在,所以原Servlet仍然會運行。
     2、第二個是sendRedirect()的作用域問題,經過bug情況和試驗發現,sendRedirect()在<jsp:include>和tile引用的子頁面中出現時,根本不會影響頁面轉向。對於這一點,我查了一下資料發現:sendRedirect()控制的轉移通過向客戶發送302狀態代碼和Location響應報頭來完成。轉移需要另外的網絡傳送,而作爲服務器端子頁面包含的這種情況下網絡傳送就缺乏充當客戶端角色的元素,根本無法完成網絡傳送
    
    3、Tomcat出現springcontext.xml定義的datasource缺乏找到數據源的問題,這種問題把webapp中的所有的用戶app全部刪除了,然後重新部署哪一個webapp就沒了,以前都沒有找到問題之所在,今天我調試了一下另外一個webapp,又轉回這個spring的這個webapp就發生這種問題,才找到問題的解決辦法。數據源是在服務器的server.xml中定義的,不知爲什麼,爲什麼多app的時候就找不到了。

    4、表單form在method爲“get”時,action屬性中手工添加的表單參數就無效,只有method在post時,這種情況下的查詢參數纔有效。

     5、在用getPrarameter查詢post參數以後,就不能再讀request的inputstream了,負責會導致死循環。

      6、對於頻繁更新的頁面,如ajax請求的頁面,爲了防止緩存,可以設置首部 Cache-control:no-cache

      7、發現一個鬱悶的問題:在IE6中document.getElementById這個方法,是name 和id屬性一起取,也就是說當你想取一個id爲"idA"的元素時,最好不要有其他元素的name是"idA",否則會發生混淆。

      8、說一個情況:那種多頁面組合互包含組合形成的頁面,head頭等前面的內容最好放在主主體包含頁面上,特別是是這個頭的某些表述會對某些代碼屬性有影響的時候。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章