1.什麼是session java
2.session對象數組
經常使用方法:瀏覽器
long getCreationTime():返回session建立時間。服務器
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仍然存在與服務端,只不過再也沒有客戶端會攜帶它交於服務端校驗。
銷燬:
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>密  碼</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>