嵌入式狗的JAVA之路 JavaBean
繼續 中間耽誤了幾天~~ 嵌入式太苦逼,以前linux開發做的少,搞個小專案處處是坑,抽點時間出來繼續java
在Jsp頁面中如何使用Javabeans
方法二:在Jsp頁面中通常使用jsp動作標籤使用Javabean
作用:在jsp頁面中例項化或者在指定範圍內使用javabean
作用:給已經例項化的Javabean物件的屬性賦值,一共有四種形式
1)
說明:JavaBean例項名 即 useBean 的 id; 表示對所有的屬性進行匹配
2)
說明:對部分屬性進行匹配
3)
4)
作用:獲取指定JavaBean物件的屬性值。
JavaBean四個作用域範圍:
1.page範圍:範圍最小,與當前頁面相對應,JavaBean的生命週期存在於一個頁面之中,當頁面關閉時JavaBean被銷燬。
2.request範圍:與JSP的request生命週期相對應,JavaBean的生命週期存在於request物件之中,當request物件銷燬時JavaBean也被銷燬。
3.session範圍:與JSP的session生命週期相對應,JavaBean的生命週期存在於session會話之中,當session超時或會話結束時JavaBean被銷燬。
4.application範圍:與JSP的application生命週期相對應,在各個使用者與伺服器之間共享,只有當伺服器關閉時JavaBean才被銷燬。
這4種作用範圍與JavaBean的生命週期是息息相關的,當JavaBean被建立後,透過
JavaBean的四個作用域範圍
page //僅當前頁面有效
request //可以透過HttpRequest.getAttribute()方法獲得JavaBean物件。
session //可以透過HttpSession.getAttribute()方法獲得JavaBean物件。
application //可以透過application.getAttribute()方法獲得JavaBean物件。
javabean web開發模型
Model1:jsp+javabean,其中jsp為表示層和控制層,javabean為模式層
Model2:jsp+servlet+javabean,jsp為表示層,servlet為控制層,javabean為模式層
模式層Model,表示層View,控制層Control,合起來即為MVC。
Model1分為三層:
1.介面層:由JSP頁面進行與客戶端瀏覽器的互動,可以直接呼叫JavaBeans。
2.業務邏輯層:由JavaBeans進行處理業務邏輯,封裝資料,並與資料庫層進行互動。
3.資料庫層:底層資料庫,可被JavaBeans訪問。
http協議的無狀態性
1、無狀態是指,當瀏覽器傳送請求給伺服器的時候,伺服器會響應。但當同一個瀏覽器再次傳送請求時,伺服器不會知道是剛才那個瀏覽器。
2、簡單說,伺服器【不會儲存使用者狀態】,不會記得客戶端是否訪問過,所以這就是無狀態協議。
儲存使用者資料:session和cookie
cookie是web伺服器儲存在客戶端的一系列文字資訊,線上影片,購物車等使用者記錄
1、對特地物件的追蹤
2、儲存使用者網頁瀏覽記錄與習慣
3、簡化登入
安全風險:容易洩露使用者資訊
建立Cookie物件
Cookie cookie=new Cookie(String key,Object value);
寫入Cookie
response.addCookie(cookie);
讀取Cookie
Cookie[] cookies=request.getCookies();
- setMaxAge( expiry ) 設定cookie的有效期,以秒為單位 getMaxAge() 獲取cookie的有效時間,以秒為單位
- setValue(String value) 在cookie建立後,對cookie進行賦值 getValue() 獲取cookie的值
- getName() 獲取cookie的名稱
4.setValue()和getValue()涉及的都是字串,對應前面提到的 Cookie是web伺服器儲存在客戶端的文字檔案。
解決Cookie中中文出錯
import="java.util.,java.net."
request.setCharacterEncoding("utf-8");
String username = URLEncoder.encode(request.getParameter("username"),"utf-8");
//使用URLEncoder解決無法在Cookie當中儲存中文字串問題
username = URLDecoder.decode(c.getValue(),"utf-8");
session和cookie的對比
session在伺服器端儲存使用者資訊,cookie在客戶端儲存使用者資訊
session中儲存的是Object型別,cookie儲存的是String型別
session隨著會話結束將儲存的資料銷燬,cookie可以長期儲存在客戶端
session儲存重要資訊,cookie儲存不重要資訊
1.常用的三種指令:page,include,taglib。
2.page:位於頁面頂端,一個頁面可以包含多個page指令
include:將一個外部檔案嵌入jsp中,同時解析這個頁面中的jsp語句。
taglib:使用標籤庫,自定義新的標籤,在jsp中啟動定製行為。
3.include指令
1.語法 。
案例:顯示當前時間的頁面。(1)寫一個只輸出時間的方法的date.jsp。(2)用於顯示的頁面,包含
cookie是伺服器儲存在客戶端的一系列的文字資訊,主要的應用是,記錄使用者的登入資訊,以方便使用者下次登陸,實現購物車。cookie中常用的方法有setMaxAge(時間)設定生存期限,setName(string name)
設定cookie的名字,setValue(string value)設定cookie的值,getName()獲取cookie的名字,getValue()獲取cookie的值,是string型別的,getMaxage()獲得生存期限,建立cookie物件用Cookie c=new Cookie(string key,object value);新增cookie物件用response.addCookie(c);request.getCookies()獲取cookie的值,注意是一個cookie陣列,要獲取每個值還要遍歷,獲取核取方塊的值用request.getParameterValues()得到的是一個字串陣列,如果使用者選了儲存,則講cookie儲存,如果沒有儲存則將相應的值刪除。如果想在cookie中儲存漢字的話要用到一個方法,在java.net.*下,存的時候要進行編碼用URLEncoder.encoder(string s,"utf-8"),讀資料的時候要進行解碼用UrlDecoder.decode(string s,"utf-8"),cookie中存的資訊是有大小限制的。
include動作
page:包含的頁面
flush:被包含的頁面時否從緩衝區讀取
inlude指令與include動作的區別:
include指令是編譯階段的指令,是將主頁面和包含頁面轉換成一個servlet,因此編譯較慢,執行較快。
include動作在編譯階段是將主頁面和包含頁面編譯成倆個servlet,在執行期間呼叫頁面輸出。因此編譯較快,執行較慢。
因此include指令用於不經常變化的內容,難以維護;include動作方便維護。
forward動作
語法:
等同於:request.getRequestDispatcher("/url").forward(request,response);
param動作:
param動作,傳遞方法為post
1、語法:
實現DBHelper型別
private static final String driver="com.mysql.jdbc.Driver";//資料庫驅動
//連結資料庫的URL地址
private static final String url="jdbc:mysql://localhost(資料庫主機IP):3306(埠號)/shopping(資料庫名)?useUnicode=true(unicode是一個字元編碼方式,它保證了世界各國字元都能被覆蓋到)&characterEncoding=UTF-8(防止中文亂碼)";
private static final String username="root";//資料庫的使用者名稱
private static final String password="";//資料庫的密碼
//建立私有型別的連線物件
private static Connection conn=null;
//靜態程式碼塊負責載入驅動try/catch(防止出現異常)
static{
try{
class.forName(driver);
}catch(Exception ex){
ex.printStackTrace();
}
}
//單例模式,返回一個資料庫連結物件
public static Connection getConnection(){
if(conn==null){
conn=DriverManager.getconnection(url,username,password);
}
return conn;
}
//透過main函式判斷連線是否成功
public static void main(String[]args){
try{
Connection conn=DBHelper.getConnection();
if(conn!=null){
System.out.println("資料庫連線成功!");
}else{System.out.println("資料庫連線失敗!");}
}catch(Exception ex){
ex.printStacktrace();
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3016/viewspace-2798751/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 嵌入式狗的JAVA之路 web應用 1JavaWeb
- 嵌入式狗的 JAVA 入門筆記4 進階。。Java筆記
- 嵌入式狗的 JAVA 入門筆記·2 程式碼實踐Java筆記
- javaBean分析JavaBean
- 如何學習嵌入式系統?我的嵌入式成長之路
- 十、理解JavaBeanJavaBean
- 標準javabeanJavaBean
- 狗汪汪玩轉嵌入式 -- WINKHUB 邊通道攻擊 (NAND Glitch)NaN
- javabean:VO和POJO的區別?JavaBeanPOJO
- JavaBean之Builder模式JavaBeanUI模式
- Java後端避坑——如何使用註解忽略掉JavaBean的屬性值Java後端Bean
- JavaBean重寫Object類中的方法JavaBeanObject
- 我的 Java 轉 Go 之路JavaGo
- 學JAVA的艱難之路Java
- 內省機制(操作javaBean的資訊)JavaBean
- 聊聊我的 Java 自學之路Java
- java學習之路Java
- Java成長之路--一個非科班生的進階之路Java
- lombok get/set 與 JavaBean get/setLombokJavaBean
- 實驗四 JavaBean及Servlet使用JavaBeanServlet
- 狗汪汪玩轉嵌入式 -- KACO 電源逆變器系統 XP100U
- 我的Java後端學習之路Java後端
- 基於java jsp的寵物狗銷售網站系統JavaJS網站
- 反向控制(Ioc)以及裝配JavaBean方法的變革JavaBean
- Java演算法之路Java演算法
- Java之路第3天Java
- Java新人之路 -- String類Java
- Java8學習之路-Java8的發展Java
- JDBC與JavaBean學習筆記(二)JDBCJavaBean筆記
- Java開發之路—java語言概述Java
- Java學習之路 -- Java怎麼學?Java
- 痞子衡嵌入式:工作多年的工程師且看這四條進階之路工程師
- Java程式設計師的成長之路Java程式設計師
- 我的阿里之路+Java面經考點阿里Java
- Java中Lambda表示式的進化之路Java
- Java爬取並下載酷狗TOP500歌曲Java
- 菜狗的KMP學習KMP
- Java工程師成神之路Java工程師