1. 程式人生 > >JSP資料互動(2)

JSP資料互動(2)

1. application物件:
     void setAttribute(String key,Object value): 以key/value的形式將物件儲存到appliction中
     Object getAttribute(String key): 通過key獲取application中儲存的物件
     String getRealPath(String path): 返回相對路徑的真實路徑
     
2. 統計訪問人數:
    登陸控制頁面:
     <%
       Integer count=(Integer)appliction.getAttribute("count");
       if(count!=null){
           count=count+1;
       }else{
           count=1;
       }
       appliction.setAttribute("count",count);
     %>
   統計頁面增加:
       <%
          Integer i=(Integer)appliction.getAttribute("count");
          out.printIn("統計訪問量"+i+"個人訪問過本網站");
       %>
       
3.  物件的作用域:
       page作用域:     指單一JSP頁面的範圍,只能在建立該物件的頁面中訪問。在客戶端每次請求JSP頁面建立,在伺服器傳送響應或請求轉發到其他
       頁面或資源後失效,pageCountext物件本身也屬於page作用域
       request作用域:    是與客戶端請求繫結在一起,其作用域比page作用域的範圍要大
       session作用域 :  
       application作用域:  面對整個Web程式,伺服器啟動後會建立一個application物件,被所有使用者共享
       
4.  coolie:
       由伺服器端生成,傳送給客戶端瀏覽器的,瀏覽器會將其儲存為某個目錄下的文字檔案
        作用表現:
         對特定的物件追蹤
         統計網頁的瀏覽次數
         在cookie有效期內,記錄使用者登入資訊
         實現各種個性化服務
         
5. 在JSP中使用cookie
    5.1建立cookie物件:
           Cookie newCookie=new Cookie(String name,String value);
    5.2寫入cookie:
           response.addCookie(newCookie);
           常用方法:
           void setMaxAge(int expiry):設定cookie的有效期,以秒為單位
           void setValue(String value): 在cookie建立後,為cookie賦予新的值
           String getName(): 獲取cookie的名稱
           String getValue():  獲取cookie的值
           int getMaxAge():  獲取cookie的有效時間,以秒為單位
           
    5.3讀取cookie:
    5.4  cookie與session區別:
           session是在伺服器端儲存使用者資訊,cookie是在客戶端儲存使用者資訊
           session中儲存的值是Object型別,cookie儲存的是String型別
           session隨會話的結束而將其儲存的資料銷燬,cookie可以長期儲存在客戶端
           cookie通常用於儲存不重要額使用者資訊,重要的資訊使用session儲存
           
           
6.   JSP訪問資料庫:
           6.1 載入JDBC驅動
           6.2 與資料庫建立連線
           6.3 傳送SQL語句
           
           
7.   JavaBean:
           實際上是一個Java類,可以重用,功能可分為:封裝資料,封裝業務
           滿足以下要求:
           JavaBean是一個公有類,並提供無參的公有構造方法
                              屬性私有
                              具有公有的訪問屬性的getter,和setter方法

第二章回顧:
1.  內建物件:
        out    用於向客戶端輸出資料
		request    主要用於處理客戶端請求的資料資訊
		response   用於響應客戶端請求並向客戶端輸出資訊
		session   用於記錄會話狀態的相關資訊
		appliction    類似於系統的全域性變數,用於實現Web應用中的資源共享
		page
		pageContext    提供了在JSP執行時訪問和其他相關的環境資訊的功能,常用方法:
		          ServletRequest():  獲取request物件
		          ServletResponse():  獲得response物件
		          HttpSession getSession():   獲得session物件
		          JspWriter getOut():    獲取out物件
		          void setAttribute():   儲存屬性
		          Object getAttrubute():  獲得屬性
		          void inclute():   請求指定的資源,並將目標資源的響應結果包含在呼叫頁面的響應中
		config
		exception
2. request如何解析使用者表單提交過來的資料
        String name= request.getParameter("userName");
		<form>
		      <input type="text" name="userName"/>
		</form>
		
3. 給request作用域:
        request.setAttribute("key",Object obj);
		List<Student> list=(List<Student>)request.getAttribute();
		
4. 轉發和重定向:
        請求次數:
		   重定向2次,轉發1次
		   轉發相當於伺服器內部的一個行為,客戶端根本無法感知到這個動作
		URL地址:
		   重定向最終頁面,轉發中間頁面
		資料:
		   重定向不懈怠資料,轉發攜帶資料
		   
5.  response用來對客戶端請求做出相應


6.  session技術,一次會話
        session.setAttribute("uname","你好");
		session.setAttribute("uname",user);
		認證通過,客戶才有許可權訪問其他的業務模組 
		
		
7.  登出:
        1. 清空session
		2. 跳轉到登陸
		   
8.  include:只能寫相對路徑
    <%@ include file="xxx.jsp"%>
靜態包含
動態包含<jsp:include>
session Loginout
單獨抽取一個Loginout.jsp
9. application: 統計網站的訪問次數
Object型別不能轉成值型別,要轉成值型別的包裝類

10.作用域:
     pageContext
     request
     session
     application
     
11 cookie:
     實現session基礎,cookie儲存著sessionid,每次請求都要攜帶該網站的sessionid
     與server上的sessionid匹配,最終判定使用者狀態,(登陸的,可以進行後續業務操作)
     
12  cookie的分類:
     會話級別cookie:
     沒有設定setMaxAge(60)
     硬碟級別cookie:
     cookie不是內建物件,因為要new
     必須通過response.addCookie(cookie);
     cookie形成在server端,儲存在client端

     

<body>
       <form action="/Day03_0100/session/do.jsp" method="post">
        登入名:  <input type="text" name="txtName"/><br/>
          密碼:<input type="password" name="txtPwd"/>
          <input type="submit" value="登入"/>
       </form>
  </body>

<%
	//解決亂碼
	request.setCharacterEncoding("utf-8");
	String name = request.getParameter("txtName");
	String pwd = request.getParameter("txtPwd");
	if ("1".equals(name) && "1".equals(pwd)) {
		session.setAttribute("txtName", name);
		Cookie cookie = new Cookie("txtName", name);
		Cookie cookiepwd = new Cookie("txtPwd", pwd);
		cookie.setMaxAge(60);
		response.addCookie(cookie);
		response.addCookie(cookiepwd);
		request.getRequestDispatcher("/ssession/success.jsp").forward(
				request, response);
	} else {
		response.sendRedirect("/Day03_0100/session/login.jsp");
	}
%>

 <body>
  
     歡迎您 :<%=session.getAttribute("txtName") %>
      <br/>
   <a href="<%=path %>/session/loginout.jsp">登出</a>
  </body>