【转】java中 session的使用


获取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");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值