【转】java中 session的使用
2012-11-06 19:08
288 查看
在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");
}
}
相关文章推荐
- java 中session和cookie的使用
- java中servletContextListener、httpSessionListener和servletRequestListener使用整理
- Java for Web学习笔记(二十):Session(4)在集群中使用Session
- 微信平台无法使用session的解决方案(Java)
- JavaWeb ——使用Session防止表单重复提交
- session失效,使用ajax请求数据被拦截,此时正常的处理逻辑是跳到登录界面,而不是界面没有变化(java判断是否是ajax请求)
- 使用xmlhttp和Java session监听改善站内消息系统
- JavaWeb---总结(十三)使用Session防止表单重复提交
- JAVA Web 安全机制----使用filter验证session用户和页面缓存问题处理
- JavaWeb session的使用和获取
- 【简记】Java Web 内幕——Cookie与Session简介和使用
- java使用cookie和session
- java Session与Coockie的使用
- JAVA中怎么使用session
- java中servletContextListener、httpSessionListener和servletRequestListener使用整理
- java中使用request,application,session,cookie对象
- 使用xmlhttp和Java session监听
- java多线程使用HibernateSession 时报 No session 的解决办法(转)
- 使用xmlhttp和Java session监听改善站内消息
- java mail session使用Properties的clone方法