一,cookie
cookie是Web服務器保存在客戶端的一系列文本信息
cookie的作用
對特定對象的追蹤
統計網頁瀏覽次數
簡化登錄
安全性能
容易信息泄露
常用方法:
方法名 說明
void setMaxAge(int expiry) 設置cookie的有效期,以秒爲單位
String getMaxAge() 獲取cookie的有效期,以秒爲單位
void setValue(Stringh newValue) 在cookie創建後,對cookie進行賦值
String getName() 獲取cookie的名稱
String getValue() 獲取cookie的值
eg:
cookieTest.jsp 設置cookie
<%
Cookie c=new Cookie("uname","asd");
//如果不設置cookie的有效期,那麼cookie不會在客戶端保存
c.setMaxAge(60);
response.addCookie(c);
response.sendRedirect("after.jsp");
%>
//after.jsp 獲取cookie
<%
Cookie[] c=request.getCookies();
String value="";
for(int i=0;i<c.length;i++){
String cname=c[i].getName();
if(cname.equals("uname")){
value=c[i].getValue();
}
}
%>
value:<%=value %>
二,JavaBean
在前面的開發中使用純jsp開發,其實沒有很好的體現Java的面向對象思想。
大量的代碼重複混亂。在Java WEB開發中如果想要編寫結構良好的代碼,則需要使用JavaBean。
JavaBean就是使用Java語言開發的一個可重用的組件(遵循一定規則的普通Java類),在JSP中可以使用JavaBean減少重複的代碼,使得整個JSP代碼的開發變得更加簡潔。
JSP中使用JavaBean的優點:
1.實現界面和Java代碼分離,這樣便於日後維護和擴展
2.可以解決代碼重複編寫,減少代碼冗餘
JavaBean分爲兩類:
封裝數據
封裝業務
JavaBean需要遵循的規則
1.所有的類必須放到一個包中,在WEB項目中沒有包的類是不存在的。
2.所有類必須聲明爲public class,這樣才能被外界訪問
3.所有屬性必須封裝,及使用private修飾
4.如果屬性要被外界訪問,則必須提供setter和getter方法
5.一個JavaBean至少存在一個無參的構造方法,此方法提供給JSP中的標籤使用。
如果在一個類中只包含屬性、setter、getter方法,那個這個類就稱爲簡單的JavaBean(封裝數據),還有人稱他們:
POJO:(Plain Orinary Java Objects):簡單Java對象
VO:(Value Object):傳輸值的對象
TO:(Transfers Object):傳輸對象
<jsp:useBean id=“實例名稱” class=“完整類名” scope=“作用域">
</jsp:useBean>
<jsp:setProperty name=“bean實例名” property="*" />
或
<jsp:setProperty name=“bean實例名” property=“bean中屬性名” />
或
<jsp:setProperty name=“bean實例名” property=“屬性名“ value=“屬性值”/>
<jsp:getProperty name=“bean實例名稱” property=“屬性名稱" />
javaBeanTest.jsp
```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'javaBeanTest.jsp' starting page</title>
</head>
<body>
姓名:<jsp:getProperty name="p1" property="name" /> <br/>
性別:<jsp:getProperty name="p1" property="sex" /> <br/>
年齡:<jsp:getProperty name="p1" property="age" /> <br/>
愛好:<jsp:getProperty name="p1" property="hb" /> <br/>
</body>
</html>
base.vo.Person
package base.vo;
public class Person {
private String name;
private String sex;
private int age;
private String hb;
public String getHb() {
return hb;
}
public void setHb(String hb) {
this.hb = hb;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}