四种方式实现数据共享
1.ServletContext接口
它有一個屬性 arrtibute-currentHashmap。
使用規則:可以被當前網站中所有的Servlet使用
生命周期:在http服務器啟動時就會創建一個實現類對象,并且規定在運行時必須有且只能有一個實現類對象。在服務器將要關閉時,就會銷毀它。
別名叫全局作用域對象。
使用方法:
先提供請求對象request索要全局作用域對象,再將共享數據存儲在共享平臺中,它相當于一個共享平臺的管理員。再另一個Servlet索要全局作用域對象,得到平臺存放的數據,以此來實現數據共享。
優缺點:優點是可以被當前網站所有的Servlet對象來訪問數據,但是因為map會自動擴容,所以會越來越占內存,數據也不安全,不建議使用,
2.httpServletRequest(推薦使用的) 請求對象/作用域對象
使用規則:處于同一次請求中轉發過程中的servlet可以使用來實現數據共享
原理:請求轉發。 request.getDidpatcher("/aaa.html").forward(request,response)
生命周期:在本次請求結束后就會被銷毀
優缺點:占用內存小,不易發生數據感染,存在事件也較短。
3.cookie
類似于用戶的會員卡,在每次請求結束后,會把cookie放在相應包中的響應頭中存到瀏覽器的內存中,頁可以設置存在硬盤中,且可以設置事件。
要注意cookie中的key和vaklue只能是字符串。
使用規則:只要是先后為同一個用戶同一個瀏覽器服務的servlet就可以借助cookie實現數據共享
4.HttpSession接口(會話作用域對象)
arrtibute-concurrentHashmap
使用規則:只有為用戶服務過的Servlet才有資格使用,當前用戶的私人儲物柜實現數據共享。
推送過程中不會顯示cookie中的具體數據,顯示(JSESession ,編號)這樣就提高了安全性。
令牌機制也是用它完成的。
生命周期:默認情況下JSESession 是存在瀏覽器的內存中的,每創建一個session對象就會設置一個最大空閑時間,從使用完成開始計時,為30min。超過這個事件以后才會銷毀? ?
總結
以上是生活随笔為你收集整理的四种方式实现数据共享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 直观易懂的机械动图,展示生活中机构的原理
- 下一篇: Spring Cloud Feign的原