JavaEE学习笔记之Servlet
同一用戶的不同頁面的共享數據
1.1 cookie技術
1.2 sendRedirect()轉向
1.3 隱藏表單
1.4 session技術
###session技術:
當用戶打開瀏覽器,訪問某個網站是服務器就在服務器內存中外該瀏覽器分配一個空間,該空間被這個瀏覽器獨占
//得到sessionHttpSession hs = request.getSession(true);//向session中添加屬性hs.setAttrubute(String name, Object obj);//從session得到某個屬性String name = hs.getAttribute(String name);//從session刪除某個屬性hs.removeAttribute(String name);
- session中屬性存在的默認時間是30分鐘(間隔時間,即所謂的發呆時間),你也可以在web.xml中修改(tomcat中的web.xml文件),或者是在程序中修改
- 當某個瀏覽器訪問網站時,服務器會給瀏覽器分配一個唯一的session id并以此來區分不同的瀏覽器
- 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;
elsepageCount = 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保存在服務器端,不需要傳輸
總結
以上是生活随笔為你收集整理的JavaEE学习笔记之Servlet的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows下控制台不能够输入中文
- 下一篇: Java开发的环境搭建