获取HttpSession(request.getSession()方法)对象,查找与该会话相关的信息(session.getAttribute()),存储会话中的信息(session.setAttribute()),删除会话中的数据(session.removeAttribute()),删除当前会话(session.invalidate())
在session中,可以存储任意数量的键值对,通过键即可获取相应的值,即使用:session.getAttribute(“key”);。
二、session的常用方法
1、 getAttribute():从session中获取以前存储的值
2、 getAttributeNames():返回session中所有属性的名称
3、 setAttribute():将键与值关联起来,存储进session
4、 removeAttribute():删除session中存储的对应键的值
5、 invalidate():删除整个session及其存储的键值
6、 logout():注销当前用户
7、 getId():获取每个session对应的唯一ID
8、 getCreationTime():获取session创建的时间
9、 getLastAccessedTime():获取session最后被访问的时间
10、 getMaxInactiveInterval():在用户没有访问的情况下,会话在被自动废弃之前应该保持多长时间
三、使用session的一个例子,拥有购物车的在线商店
1、CatalogPage.java
package com.landril.session;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CatalogPage extends HttpServlet {
private CatalogItem[] items;
private String[] itemIds;
private String title;
protected void setItems(String[] itemIds) {
this.itemIds = itemIds;
items = new CatalogItem[itemIds.length];
for (int i = 0; i < items.length; i++) {
items[i] = Catalog.getItem(itemIds[i]);
}
}
protected void setTitle(String title) {
this.title = title;
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
if(items == null){
response.sendError(response.SC_NOT_FOUND,"Missing Items:");
return;
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><head><title>"+title+"</title></head><body><h3>"+title+"</h3>");
CatalogItem item;
for (int i = 0; i < items.length; i++) {
out.println("<hr>");
item = items[i];
if(item == null)
out.println("Unknow itemId: "+itemIds[i]);
else{
out.println();
String formURL = request.getContextPath()+"/orderPage";
formURL = response.encodeURL(formURL);
out.println("<form action='"+formURL+"'>");
out.println("<input type='hidden' name='itemId' value='"+item.getItemId()+"'>");
out.println(new String(item.getSDesc().getBytes("utf-8"),"GBK")+"$"+item.getPrice()+item.getLDesc());
out.println("<input type='submit' value='add to shopping cart'></form></body></html>");
}
}
}
}
2、ComputerBook.java
package com.landril.session;
public class ComputerBook extends CatalogPage{
public void init(){
String[] ids = {"book1","book2","book3","book4"};
setItems(ids);
setTitle("Japanese Book");
}
}
3、JapaneseBook.java
package com.landril.session;
public class JapaneseBook extends CatalogPage{
public void init(){
String[] ids = {"book5","book6"};
setItems(ids);
setTitle("Computer Book");
}
}