JavaEE學習筆記之Servlet

同一用戶的不同頁面的共享數據

1.1 cookie技術

1.2 sendRedirect()轉向

1.3 隱藏表單

1.4 session技術


session技術:

當用戶打開瀏覽器,訪問某個網站是服務器就在服務器內存中外該瀏覽器分配一個空間,該空間被這個瀏覽器獨佔

 //得到session
 HttpSession hs = request.getSession(true);
 //向session中添加屬性
 hs.setAttrubute(String name, Object obj);
 //從session得到某個屬性
 String name = hs.getAttribute(String name);
 //從session刪除某個屬性
 hs.removeAttribute(String name);
  1. session中屬性存在的默認時間是30分鐘(間隔時間,即所謂的發呆時間),你也可以在web.xml中修改(tomcat中的web.xml文件),或者是在程序中修改
  2. 當某個瀏覽器訪問網站時,服務器會給瀏覽器分配一個唯一的session id並以此來區分不同的瀏覽器
  3. session的各個屬性都會吃服務器的內存的

sendRedirect()轉向

引用塊內容

隱藏表單

<input type = "hidden" name="sex" value="1" />

servlet中顯示圖片

//在項目目錄下放圖片
PrintWriter out = response.getWriter();
out.println("<img src='???' >);"

Servlet操作數據庫

特別要注意sql注入漏洞

select * from member where name='admin' and password='admin' or 1='1';
這樣查出來的就是數據庫中所有的信息

在寫登錄驗證時,使用jdbc連接數據庫,查詢語句如果是使用的sql語言拼接的方式,在輸入框中輸入 aaa’ or 1=’1’ 時,就會跳過登錄界面

分頁技術

首先需要定義四個變量
int pageSize //每頁顯示多少條記錄
int pageNow //希望顯示第幾頁
int pageCount //一共有多少頁
int rowCount //一共有多少條記錄


說明:
pageSize // 是程序員設定
pageNow //用戶選擇
rowCount //是從表中查詢得到的
pageCount //計算出來的`

if(rowCount % pageSize == 0)
    pageCount = rowCount%pageSize;
else
    pageCount = rowCount%pageSize + 1;

實際利用數據庫查詢的操作實現分頁

//分頁數據庫查詢核心代碼
select top ? * form table where id not in (select top ? id from table)
//第一個問號的值是每頁顯示的條數,第二個問號的值是 (希望顯示頁數-1)的值
//利用頁面的跳轉,每跳轉一次就執行一次查詢語句,顯示當前查詢的內容

cookie技術

cookie是在服務端生成,然後寫回到客戶端
cookie類似於Java中的Map集合(鍵值對),其名字就是Map的鍵,其值就是Map的值
cookie的名字和值的類型都是String類型


創建cookie

//在服務器端創建一個cookie
Cookie cookie = new Cookie("name", name);
//該cookie的生存時間, 計時爲 秒
//如果不設置生存時間,該cookie是不會被保存的
cookie.setMaxAge(30);
//將該cookie寫回到客戶端,通過response對象來完成
response.addCookie(cookie);

在客戶端讀取cookie

//從客戶端得到所有的cookie信息
Cookie[] allCookie = req.getCookie();

int i=0;
if(allCookie!=null){
    //遍歷該Cookie數組
    for(i=0; i<allCookie.length;i++){
        //依次取出
        Cookie temp = allCookie[i];
        //判斷是否是需要的Cookie(通過cookie名稱來識別)
        if(temp.getName().equals("name")){
            //取出該cookie的值
            String val = temp.getValue();
        }
    }
}

cookie和session的比較

  • cookie保存在客戶端,session保存在服務器端
  • cookie的安全性比session要弱
  • cookie通過網絡在客戶端與服務器端傳輸,而session保存在服務器端,不需要傳輸

  • 加粗 Ctrl + B
  • 斜體 Ctrl + I
  • 引用 Ctrl + Q
  • 插入鏈接 Ctrl + L
  • 插入代碼 Ctrl + K
  • 插入圖片 Ctrl + G
  • 提升標題 Ctrl + H
  • 有序列表 Ctrl + O
  • 無序列表 Ctrl + U
  • 橫線 Ctrl + R
  • 撤銷 Ctrl + Z
  • 重做 Ctrl + Y

可以使用冒號來定義對齊方式:

項目 價格 數量
Computer 1600 元 5
Phone 12 元 12
Pipe 1 元 234
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章