標籤:style java color 使用 檔案 資料
Servlet中的頁面跳轉?
兩種方式,實現跳轉:內部跳轉(請求轉寄)、外部跳轉(重新導向)
內部跳轉(請求轉寄)特點:在伺服器內部完成頁面之間的跳轉;請求只有一次;瀏覽器地址不會改變。
request.getRequestDispatcher(“路徑”).forward(reuqest,response);
request.getRequestDispatcher(“路徑”).include(reuqest,response);
外部跳轉(重新導向)特點:通知用戶端重新發送請求;請求次數為二次;瀏覽器地址欄會改變。
response.sendRedirect(“路徑”);
內部跳與外部跳最重要的區別:
內部跳轉,請求為一次——request對象是同一個(不同頁面中);可以利用request傳遞資料。
外部跳轉,請求為二次——request對象不是同一個;不能使用request傳遞資料。
中文問題?
支援中文的編碼格式:GBK(簡體+繁體)、GB2312(簡體)、UTF-8(unicode編碼,支援國際通用語言編碼)
MyEclipse工具中出現亂碼?
功能表列開啟Window--->喜好設定(最後一個)-->基本選項(第一個)-->content Types -->Text(java source file)
程式中的亂碼:
post提交處理方式:
在程式中的第一行寫入:
request.setCharacterEncoding(“與jsp頁面編碼必須一致”);
response.setCharacterEncoding(“與jsp頁面編碼必須一致”);
get提交處理方式:
get提交不能按照post方式進行處理;原因是:資料提交到伺服器之前,已經被瀏覽器設定了編碼。(ISO-8859-1編碼,標準英語)
String txtname = request.getParameter("txtname");
txtname = new String(txtname.getBytes("ISO-8859-1"),"與jsp頁面編碼必須一致");
Session的會話跟蹤技術?
1. 什麼是Session?
Session(會話)——用戶端一次請求,伺服器端一次響應;這個過程稱之為會話。
什麼是JavaWeb的會話跟蹤技術?
在伺服器端記錄用戶端的相關資訊,用戶端第二次以後的訪問;伺服器能夠識別每一個用戶端。
如何使用會話跟蹤技術?
使用會話跟蹤技術核心對象:Session對象。
Session對象:每一個用戶端第一次訪問伺服器的時候,伺服器分配一個唯一的SessionID給使用者,下一次訪問伺服器的時候,根據SessionID區分每一個使用者。(跟銀行類似)
注意:每一個Session對象,相互獨立;預設以瀏覽器為單位(同一個瀏覽器預設為同一個使用者,瀏覽器關閉session消失)。
Session用來存、取資料使用,常用方法:
setAttribute(“名字”,”值”);
getAttribute(“名字”);
注意:只要能夠擷取到session對象,都可以使用session中的資料(跟跳轉方式無關)。
設定Session有效時間(Session預設30分鐘):
setMaxInactiveInterval(時間值單位秒)。
invalidate();當前Session立即失效(退出)。
會話跟蹤技術:
Cookie(原理:通過瀏覽器往用戶端寫入Cookie檔案,來識別不同的使用者;也可以設定 有效日期)
Session(利用Session對象,完成客戶追蹤;瀏覽器關閉session就消失(不可用); session.invalidate() session立即失效)
URL重寫、隱藏欄位技術(URL重寫是通過地址欄,不斷的傳遞SessionID來區分使用者)。
Cookie 與 Session 異同:
相同:都可以實現會話跟蹤(存放使用者的相關資訊)。
不同點:Cookie不以瀏覽器關閉為標準;以設定的有效時間為標準(可以實現離線跟蹤)。
Session必須保證瀏覽器不關閉的情況,才能擷取到。
Servlet中的安全執行緒
Servlet在運行時,只有一個執行個體對象(通過Servlet的生命週期);保證使用者能夠獨立訪問Servlet,採用了多線程技術。
作用:效率更高,使用者與使用者之間獨立開。
缺點:安全執行緒問題(多個線程,同時操作一個變數(資料))
解決方案:盡量不要在Servlet中使用全域變數。