application、session等區別

request和session的作用:

request是獲取信息--通過用戶提交的表單,查詢字符串,cookie等獲得信息

session是服務端用來保存一些數據(通常是標記狀態的,當然也可以保存別的)

session是服務端的記錄變量,可以跟蹤記錄訪問者動作,比如登錄,退出等.

    request用在數據提交,表單數據等

    request和session的優點和缺點

    request佔用資源比較少:安全性也比較高 可是相對來說 缺乏持續性

    而session則相對來說 對資源的消耗會大點 安全性相對來說也會稍微低點 可是它能實現比如會話跟蹤技術 個有優點和缺點

    不過 個人覺得 如果可以使用request的情況下 儘量使用request 因爲相對於服務器來說 資源的消耗這個問題還是比較重要的

application:全局作用範圍,整個應用程序共享,就是在部署文件中的同一個webApp共享,生命週期爲:應用程序啓動到停止.

    session:會話作用域,當用戶首次訪問時,產生一個新的會話,以後服務器就可以記住這個會話狀態.生命週期:會話超時,或者服務器端強制使會話失效.

    request:請求作用域,就是客戶端的一次請求.

    page:一個JSP頁面.

    以上作用範圍使越來越小, request和page的生命週期都是短暫的,他們之間的區別就是:一個request可以包含多個page頁(include,forward以及filter).舉個簡單的例子:

    jsp1.jsp

    <jsp:useBean id="beanID" class="xxx .xxx.BeanClass" scope="request" />

    <jsp:include page="jsp2.jsp" />

    jsp2.jsp

    <jsp:getProperty name="beanID" property="sample" />

    運行jsp1.jsp可以正常顯示數據,因爲作用範圍是request,相當於調用了request.setAttribute()方法,

    jsp2頁通過request.getAttribute來獲得這個bean.如果把request改爲page,就會拋出NullPointerExceptioin.

    一個請求可以跨好幾個JSP(include和forword)和Servlet(如filter).不過這裏有一個需要注意的就是區別

    <jsp:include> 和<%@ include %>.如果上面的<jsp:include page="jsp2.jsp" />改爲<%@ include file="jsp2.jsp" %>,即使scope爲page也是正確的,<%@ include %>是編譯時包含,<jsp:include>是運行時包含.前者就相當於宏,編譯時替代,後者相當於函數,運行時返回.

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