1. 程式人生 > >【jsp、servlet】比較page、request、session、application的使用範圍

【jsp、servlet】比較page、request、session、application的使用範圍

 session物件

(1)session功能

    Session物件主要用於儲存使用者的各種資訊,直到它的生命週期超過或被人為釋放掉為止,可以通過session物件來判斷此使用者是否是合法使用者。

    Session物件是javax.Servlet.http.HttpSession介面的例項化物件,session屬於http協議範疇之內的物件,所以只有唯一http包下有此介面,沒有任何繼承關係,使用者只要一連線到伺服器,則立刻分配一個session給使用者。

(2)主要方法

session.getID():伺服器上通過session來分別不同的使用者,sessionID:任何連結到伺服器上的使用者,伺服器都會為之分配唯一的一個不會重複的sessionID。由伺服器統一管理,人為不能控制。

session.getId().length():id的長度為32位

session.isNew():判斷是否是新的使用者

session.invalidate():使session失效

session.getCreationTime():得到session的建立時間,返回long型別,通過Date得到時間

session.getLastAccessedTime():得到最後一次操作時間,返回long型別

例項:

<%@page contentType="text/html;charset=gb2312"%>

<%@page import="java.util.*"%>

<%

       long l = session.getCreationTime() ;

       long l2 = session.getLastAccessedTime() ;

%>

<h1>session CREATE : <%=new Date(l)%></h1>

<h1>session last access: <%=new Date(l2)%></h1>

<h1><%=(l2-l)/1000%></h1>

假如需要求出使用者線上時間,使用以下公式:最後操作時間—建立的時間

(3)session屬性的設定

session.setAttribute(String  name,Object  value)

session.getAttribute(String  name)

session.removeAttribute(String  name)

(4)兩種寫法的區別

    if(name.equals("mldn")&&pass.equals("password")):假如其中的name和pass沒有被初始化,那麼在執行此句子的時候會出現nullpointexception。

    if("mldn".equals(name)&&"password".equals(pass)):如果使用該寫法則不會出現錯誤。

(5)session用法:驗證使用者是否登陸。

(6)session與cookie

    Session和cookie用於跨網頁共享資料。Session記錄獨有的個人資訊,在不同頁面中傳遞,使用setAttribute,getAttribute方法;Cookie保存於客戶端,供瀏覽器與web伺服器互通資料用的純文字檔案,當ie執行的時候會在計算機中產生一個cookie。Session比cookie更安全,session比cookie更佔用資源,session使用了cookie的機制,如果cookie被禁用,則session也無法使用。

application與config物件

(1)application簡介

    Application物件主要的作用就是儲存公共資訊,屬於javax。Servlet。ServletContext,此工作目錄的路徑不是固定的,有可能此工作目錄在c盤上或是在d盤得到的工作目錄的真實路徑。Application是在整個伺服器中保持的只有一個例項的物件。

(2)屬性操作: setAttribute(),getAttribute(),removeAttribute()

(3)真實路徑: application.getRealPath(String path),其中String path是"/"。在實際使用中用getServletContext()方法代替application。格式如下:

    getServletContext().getRealPath("/")

    this.getServletContext.getRealPath("/")

(4)Jsp安全性Config物件

(a) 在j2ee中安全性體現在工作目錄的WEB-INF資料夾,頁面儲存在此資料夾下,外面無法發現此資料夾內的檔案,如果要使此資料夾內的檔案能被使用者訪問,則修改WEB-INF資料夾下存在的web.xml檔案,web.xml檔案屬於整個web站點的配置檔案。

<……mapping  start>

<servlet>

   <servlet-name></servlet-name>

   <jsp-file></jsp-file>

   <init-param>

         <param-name></param-name>

         <param-value></param-value>

   </init-param>

</servlet>

<servlet-mapping>

         <servlet-name></servlet-name>

         <url-pattern>/瀏覽器中輸入的地址</url-pattern>

</servlet-mapping>

<……mapping  end>

修改web.xml之後重啟伺服器。

(b)config物件

    Config物件一般用來取得伺服器的初始化配置引數,若要使用此物件應在WEB-INF/web.xml之中配置。Config物件在javax.Servlet.servletConfig中取得初始化引數的方法:

       public string getInitParameter(String name)

通過此種功能,可以將資料庫連結的一些資訊寫在配置檔案之中,下面兩種方法類似,是取得全部配置引數的:

   public Enumeration getInitParameterNames()

       request.getParameterNames()