日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java logout session_会话跟踪技术--session的使用

發(fā)布時(shí)間:2024/7/23 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java logout session_会话跟踪技术--session的使用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

會(huì)話跟蹤技術(shù)--session的使用

會(huì)話跟蹤:

1、使用隱藏表單字段

2、URL重寫

http://host/path/file.jsp?sessionid=landril

3、持久Cookie

4、會(huì)話HttpSession

一、使用session的簡(jiǎn)單步驟

獲取HttpSession(request.getSession()方法)對(duì)象,查找與該會(huì)話相關(guān)的信息(session.getAttribute()),存儲(chǔ)會(huì)話中的信息(session.setAttribute()),刪除會(huì)話中的數(shù)據(jù)(session.removeAttribute()),刪除當(dāng)前會(huì)話(session.invalidate())

在session中,可以存儲(chǔ)任意數(shù)量的鍵值對(duì),通過鍵即可獲取相應(yīng)的值,即使用:session.getAttribute(“key”);。

二、session的常用方法

1、getAttribute():從session中獲取以前存儲(chǔ)的值

2、getAttributeNames():返回session中所有屬性的名稱

3、setAttribute():將鍵與值關(guān)聯(lián)起來,存儲(chǔ)進(jìn)session

4、removeAttribute():刪除session中存儲(chǔ)的對(duì)應(yīng)鍵的值

5、invalidate():刪除整個(gè)session及其存儲(chǔ)的鍵值

6、logout():注銷當(dāng)前用戶

7、getId():獲取每個(gè)session對(duì)應(yīng)的唯一ID

8、getCreationTime():獲取session創(chuàng)建的時(shí)間

9、getLastAccessedTime():獲取session最后被訪問的時(shí)間

10、getMaxInactiveInterval():在用戶沒有訪問的情況下,會(huì)話在被自動(dòng)廢棄之前應(yīng)該保持多長(zhǎng)時(shí)間

三、使用session的一個(gè)例子,擁有購(gòu)物車的在線商店

1、CatalogPage.java

packagecom.landril.session;

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

publicclassCatalogPageextendsHttpServlet {

privateCatalogItem[]items;

privateString[]itemIds;

privateStringtitle;

protectedvoidsetItems(String[] itemIds) {

this.itemIds= itemIds;

items=newCatalogItem[itemIds.length];

for(inti = 0; i

items[i] = Catalog.getItem(itemIds[i]);

}

}

protectedvoidsetTitle(String title) {

this.title= title;

}

publicvoiddoGet(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException {

if(items==null){

response.sendError(response.SC_NOT_FOUND,"Missing Items:");

return;

}

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("

"+title+"

"+title+"

");

CatalogItem item;

for(inti = 0; i

out.println("


");

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("

");

out.println("");

out.println(newString(item.getSDesc().getBytes("utf-8"),"GBK")+"$"+item.getPrice()+item.getLDesc());

out.println("

");

}

}

}

}

2、ComputerBook.java

packagecom.landril.session;

publicclassComputerBookextendsCatalogPage{

publicvoidinit(){

String[] ids = {"book1","book2","book3","book4"};

setItems(ids);

setTitle("Japanese Book");

}

}

3、JapaneseBook.java

packagecom.landril.session;

publicclassJapaneseBookextendsCatalogPage{

publicvoidinit(){

String[] ids = {"book5","book6"};

setItems(ids);

setTitle("Computer Book");

}

}

4、OrderPage.java

packagecom.landril.session;

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.util.List;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importjavax.servlet.http.HttpSession;

publicclassOrderPageextendsHttpServlet {

publicvoiddoGet(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException {

HttpSession session = request.getSession();

ShoppingCart cart;

synchronized(session){

cart = (ShoppingCart)session.getAttribute("shop");

if(cart ==null){

cart =newShoppingCart();

session.setAttribute("shop", cart);

}

String itemId = request.getParameter("itemId");

if(itemId !=null){

String num = request.getParameter("num");

if(num ==null)

cart.addItem(itemId);

else{

intnumItems;

try{

numItems = Integer.parseInt(num);

}catch(NumberFormatException e) {

numItems = 1;

}

cart.setNum(itemId, numItems);

}

}

}

response.setContentType("text/html");

PrintWriter out = response.getWriter();

String title ="Your Order";

out.println("

"+title+"

"+title+"

");

synchronized(session){

List itemOrders = cart.getItemOrders();

if(itemOrders.size() == 0)

out.println("No items");

else{

out.println("

Item IDShort DescriptionLong DescriptionUnit PriceNumberTotal Price");

ItemOrder order;

for(inti = 0; i < itemOrders.size(); i++) {

order = (ItemOrder)itemOrders.get(i);

out.println("

"+order.getItemId()+""+order.getSDesc()+""+order.getLDesc()+""+order.getUnitPrice()+"");

out.println("

");

out.println("");

out.println("

");

out.println(order.getTotalPrice());

}

String checkURL = response.encodeURL(request.getContextPath()+"/check.html");

out.println("

");

out.println("

");

}

}

}

}

5、ShoppingCart.java

packagecom.landril.session;

importjava.util.ArrayList;

importjava.util.List;

publicclassShoppingCart {

privateListitemOrders;

publicShoppingCart() {

itemOrders=newArrayList();

}

publicList getItemOrders(){

returnitemOrders;

}

publicsynchronizedvoidaddItem(String itemId){

ItemOrder order;

for(inti=0;i

order = (ItemOrder)itemOrders.get(i);

if(itemId.equals(order.getItemId())){

order.addNum();

return;

}

}

ItemOrder newOrd =newItemOrder(Catalog.getItem(itemId));

itemOrders.add(newOrd);

}

publicsynchronizedvoidsetNum(String itemId,intnum){

ItemOrder order;

for(inti = 0; i

order = (ItemOrder)itemOrders.get(i);

if(itemId.equals(order.getItemId())){

if(num <=0)

itemOrders.remove(i);

else

order.setNum(num);

}

return;

}

ItemOrder newOrd =newItemOrder(Catalog.getItem(itemId));

itemOrders.add(newOrd);

}

}

6、CatalogItem.java

packagecom.landril.session;

publicclassCatalogItem {

privateStringitemId;

privateStringsDesc;

privateStringlDesc;

privatefloatprice;

publicString getItemId() {

returnitemId;

}

publicvoidsetItemId(String itemId) {

this.itemId= itemId;

}

publicString getLDesc() {

returnlDesc;

}

publicvoidsetLDesc(String desc) {

lDesc= desc;

}

publicfloatgetPrice() {

returnprice;

}

publicvoidsetPrice(floatprice) {

this.price= price;

}

publicString getSDesc() {

returnsDesc;

}

publicvoidsetSDesc(String desc) {

sDesc= desc;

}

publicCatalogItem(String itemId, String desc, String desc2,floatprice) {

super();

this.itemId= itemId;

sDesc= desc;

lDesc= desc2;

this.price= price;

}

}

7、ItemOrder.java

packagecom.landril.session;

publicclassItemOrder {

privateCatalogItemitem;

privateintnum;

publicItemOrder(CatalogItem item) {

setItem(item);

setNum(1);

}

publicCatalogItem getItem() {

returnitem;

}

publicvoidsetItem(CatalogItem item) {

this.item= item;

}

publicintgetNum() {

returnnum;

}

publicvoidsetNum(intnum) {

this.num= num;

}

publicString getItemId() {

returnitem.getItemId();

}

publicString getSDesc() {

returnitem.getSDesc();

}

publicString getLDesc() {

returnitem.getLDesc();

}

publicfloatgetUnitPrice() {

returnitem.getPrice();

}

publicvoidaddNum() {

setNum(num+ 1);

}

publicvoidcancelOrder() {

setNum(0);

}

publicfloatgetTotalPrice() {

returnnum* getUnitPrice();

}

}

8、Catalog.java

packagecom.landril.session;

publicclassCatalog {

privatestaticCatalogItem[]items= {

newCatalogItem("book1","Hibernate","Hibernate,Hibernate", 57),

newCatalogItem("book2","Spring","Spring,Spring", 36),

newCatalogItem("book3","Tomcat","Tomcat,Tomcat", 23),

newCatalogItem("book4","Jboss","Jboss,Jboss", 35),

newCatalogItem("book5","Japanese1","Japanese1,Japanese1", 35),

newCatalogItem("book6","Japanese2","Japanese2,Japanese2", 23) };

publicstaticCatalogItem getItem(String itemId) {

CatalogItem item;

if(itemId ==null)

returnnull;

for(inti = 0; i

item =items[i];

if(itemId.equals(item.getItemId()))

returnitem;

}

returnnull;

}

}

9、check.html

checking out

Checking out

posted on 2007-04-28 21:33 landril 閱讀(2497) 評(píng)論(1) ?編輯 ?收藏 所屬分類: Jsp&Servlet

總結(jié)

以上是生活随笔為你收集整理的java logout session_会话跟踪技术--session的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。