【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()