【JSP筆記】第四章 JSP內置對象【下】

1.什麼是session  java

 

  • 表示客戶端與服務器的一次會話。
  • Web中的session指用戶瀏覽網站時,從進入網站到瀏覽器關閉的這段時間。
  • session其實是一個特定的時間概念。
  • 保存在服務器當中,和用戶一一對應。

2.session對象數組

  • 是一個JSP內置對象。
  • 在第一個JSP頁面被裝載是自動建立,完成一次客戶端與服務器端的會話管理。
  • 從一個客戶打開瀏覽器並鏈接到服務器開始,到客戶關閉瀏覽器離開這個服務器的結束,被稱做一個會話。
  • 當一個客戶訪問一個服務器是,可能在服務器幾個頁面之間切換,服務器應當經過某種辦法值得這是一個客戶,這就須要session對象。
  • session對象是HttpSession類的實例。

經常使用方法:瀏覽器

long getCreationTime():返回session建立時間。服務器

  • import="java.util.*,java.text.*" 
  • ........................
  •     <%
  •     SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss") ;
  •     Date d=new Date(session.getCreationTime());
  •    
  •     %>
  •     session建立時間:<%=  sdf.format(d) %>

public String getId():返回session建立時JSP引擎爲它設的惟一ID號。session

public Object setAttribute(String name,Object value):指定名稱將對象綁定到次會話。app

public Object getAttribute(String name):返回與此會話中指定名稱綁定在一塊兒的對象,若是沒有對象綁定在該名稱下,則返回nulljsp

String[] getValueNames():返回一個包含此session中全部可用屬性的數組。post

int getMaxInactiveInterval():返回兩次請求間隔多長時間 此session被取消(單位秒)網站

 

3.Session的生命週期this

建立:

當客戶端第一次訪問某個JSP火這Servlet的時候,服務器會爲當前會話建立一個SessionId,

每次客戶端想服務器端發送請求時,都會將此SessionId攜帶攜帶過去,服務端會對此SessionId進行校驗。

活動:

某次會話當中經過超連接打開的新頁面屬於同一次會話。

只有當前會話頁面沒有所有關閉,從新打開的瀏覽器窗口訪問同一項目資源時屬於同一次會話。

除非本次會話的全部頁面都關閉後再從新訪問某個JSP或者Servlet將會建立新的會話。

注意事項:原來的會話還存在,只是這個舊的SessionId仍然存在與服務端,只不過再也沒有客戶端會攜帶它交於服務端校驗。

銷燬:

  1. 調用session.invalidate()
  2. Session過時(超時)
  3. 服務器從新啓動。

4.application對象:

實現了用戶間數據的共享,可存放全局變量。

開始於服務器的啓動,終止於服務器的關閉。

在用戶的先後連接或不一樣用戶之間的鏈接中,能夠對application對象的同一屬性進行操做。

在任何地方對application對象屬性的操做,都將影響到其餘用戶對此的訪問。

服務器的啓動和關閉決定了application對象的生命。

application對象是ServletContext類的實例。

經常使用方法:

public void setAttribute(String name,Object value):使用指定名稱將對象綁定。

public Object getAttribute(String name)返回此對話中的指定名稱綁定在一塊兒的對象,若是沒有對象綁定在該名稱下,則返回null.

Enumeration getAttrbuteNames()返回全部可用屬性名的枚舉

String getServerInfo():返回JSP(Servlet)引擎名和版本號。

 

5.page對象:

就是指向當前JSP頁面自己,有點像類中的this指針。他是java.lang.Object類的實例。

經常使用方法:

class getClass():返回此Object的類。

int hashCode():返回此Object的hash碼。

boolean equals(Object obj):判斷此Object是否與指定的Object對象相等。

void copy(Object obj):把此Object拷貝到指定的Object對象中。

Object clone():克隆此Object對象。

String toString():把此Object對象轉換成String類的對象。

void notify():喚醒一個等待的線程。

void notifyAll():喚醒全部等待的線程。

void wait(int timeout)使一個線程處於等待直到timeout結束或被喚醒。

void wait():使一個線程處於等待 直到被喚醒。

 

6.pageContext對象:

提供了對JSP頁面內全部的對象及名字空間的訪問。

能夠訪問到本頁所在的session,也能夠取本頁面所在的application的某一屬性值。

至關於頁面中全部功能的集大成者。

本類名也叫pageContext.

經常使用方法

JspWriter getOut():  返回當前客戶端響應被使用的JspWriter流(out)。

HttpSession getSession():返回當前頁中的HttpSession對象(session)

Object getPage():  返回當前頁的Object對象(page)

ServletRequest getRequest(): 返回當前頁面的ServletRequest對象(request)

ServletResponse getResponse():返回當前頁面的ServletRequest對象(response)

void setAttribute(String name,Object attribute):設置屬性及屬性值。

Object getAttribute(String name,int scope):在指定範圍內取屬性值。

int getAttributeScope(String name):返回某屬性的做用範圍。

void forward(String relativeUrlPath):使當前頁面重導到另外一頁面,

void include(String relativeUrlPath):在當前位置包含另外一文件。

 

7.Config對象:

config對象是在一個Servlet初始化時,JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時所用到的參數(經過屬性名和屬性值構成)記憶服務器的有關信息(經過傳遞一個ServletContext對象),

經常使用方法:

ServletContext getServletContext():返回包含服務器相關信息的ServletContext對象。

String getInitParameter(String name): 返回初始化參數的值,

Enumeration getInitParameterNames():返回Servlet初始化所需 全部參數的枚舉。

 

8.Exception對象:

使一個異常對象,當一個頁面在運行過程當中發生了異常,就產生這個對象,

若是一個JSP頁面要應用此對象,就必須把isErrorPage設爲true,不然沒法編譯。

他其實是java.lang.Throwable的對象。

經常使用方法:

String getMessage():返回描述異常的消息。

String toString():返回關於異常的簡短描述消息。

void pringStackTrace():顯示異常和棧軌跡。

Throwable FillInStackTrace():重寫異常的執行棧軌跡。

9.階段小案例:用戶登陸小例子

login.jsp

<h2>登陸界面</h2>
    <form action="dologin.jsp" method="post">
    <label>用戶名</label>
    <input type="text" name="name"><br>
    <label>密&nbsp&nbsp碼</label>
    <input type="password" name="password" vale=""><br>
    <input type="submit" value="登陸">
    </form>

dologin.jsp

//中文亂碼
	request.setCharacterEncoding("utf-8");
	String username="";
	String password="";
	username=request.getParameter("name");
	password=request.getParameter("password");
	
	if("admin".equals(username)&&"admin".equals(password)){
		//傳遞用戶名值
		session.setAttribute("loginUsers",username);
		request.getRequestDispatcher("login_success.jsp").forward(request,response);
	}else
	{
	 response.sendRedirect("login_failure.jsp");
	}

login_success.jsp

<h2>登陸成功</h2><br>
    <%
    String  ssname="";
    //防止用戶名爲空
    if(session.getAttribute("loginUsers")!=null){
    ssname=session.getAttribute("loginUsers").toString();
    }
     %>
    <a>歡迎會員<font color=red ><%= ssname %></font> 登陸</a>
相關文章
相關標籤/搜索