<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的java歷程

    會話跟蹤技術--session的使用

     

    會話跟蹤技術--session的使用

     

    會話跟蹤:

    1、 使用隱藏表單字段

    <INPUT TYPE=”HIDDEN” NAME=”session” VALUE=”landril”

    2、 URL重寫

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

    3、 持久Cookie

    4、 會話HttpSession

     

    一、使用session的簡單步驟

    獲取HttpSessionrequest.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的一個例子,擁有購物車的在線商店

     

    1CatalogPage.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>");

               }

           }

        }

    }

     

    2ComputerBook.java

     

    package com.landril.session;

     

    public class ComputerBook extends CatalogPage{

        public void init(){

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

           setItems(ids);

           setTitle("Japanese Book");

        }

    }

     

    3JapaneseBook.java

     

    package com.landril.session;

     

    public class JapaneseBook extends CatalogPage{

        public void init(){

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

           setItems(ids);

           setTitle("Computer Book");

        }

    }

     

    4OrderPage.java

     

    package com.landril.session;

     

    import java.io.IOException;

    import java.io.PrintWriter;

    import java.util.List;

     

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    import javax.servlet.http.HttpSession;

     

    public class OrderPage extends HttpServlet {

     

        public void doGet(HttpServletRequest request, HttpServletResponse response)

               throws ServletException, IOException {

           HttpSession session = request.getSession();

           ShoppingCart cart;

           synchronized(session){

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

               if(cart == null){

                  cart = new ShoppingCart();

                  session.setAttribute("shop", cart);

               }

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

               if(itemId != null){

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

                  if(num == null)

                      cart.addItem(itemId);

                  else{

                      int numItems;

                  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("<html><head><title>"+title+"</title></head><body><h3>"+title+"</h3>");

           synchronized(session){

               List<ItemOrder> itemOrders = cart.getItemOrders();

               if(itemOrders.size() == 0)

                  out.println("No items");

               else{

                  out.println("<table border=1><tr><th>Item ID<th>Short Description<th>Long Description<th>Unit Price<th>Number<th>Total Price");

                  ItemOrder order;

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

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

                      out.println("<tr><td>"+order.getItemId()+"<td>"+order.getSDesc()+"<td>"+order.getLDesc()+"<td>"+order.getUnitPrice()+"<td>");

                      out.println("<form><input type='hidden' name='itemId' value='"+order.getItemId()+"'>");

                      out.println("<input type='text' name='num' size=3 value='"+order.getNum()+"'>");

                      out.println("<input type='submit' value='update order'></form><td>");

                      out.println(order.getTotalPrice());

                   }

                 

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

                  out.println("</table><form action='"+checkURL+"'>");

                  out.println("<input type='submit' value='submit'></form></body></html>");

               }

           }

        }

    }

     

    5ShoppingCart.java

     

    package com.landril.session;

     

    import java.util.ArrayList;

    import java.util.List;

     

    public class ShoppingCart {

        private List<ItemOrder> itemOrders;

     

        public ShoppingCart() {

           itemOrders = new ArrayList<ItemOrder>();

        }

       

        public List<ItemOrder> getItemOrders(){

           return itemOrders;

        }

       

        public synchronized void addItem(String itemId){

           ItemOrder order;

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

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

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

                  order.addNum();

                  return;

               }

           }

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

           itemOrders.add(newOrd);

        }

       

        public synchronized void setNum(String itemId,int num){

           ItemOrder order;

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

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

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

                  if(num <=0)

                      itemOrders.remove(i);

                  else

                      order.setNum(num);

               }

               return;

           }

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

           itemOrders.add(newOrd);

        }

    }

     

    6CatalogItem.java

     

    package com.landril.session;

     

    public class CatalogItem {

        private String itemId;

     

        private String sDesc;

     

        private String lDesc;

     

        private float price;

     

        public String getItemId() {

           return itemId;

        }

     

        public void setItemId(String itemId) {

           this.itemId = itemId;

        }

     

        public String getLDesc() {

           return lDesc;

        }

     

        public void setLDesc(String desc) {

           lDesc = desc;

        }

     

        public float getPrice() {

           return price;

        }

     

        public void setPrice(float price) {

           this.price = price;

        }

     

        public String getSDesc() {

           return sDesc;

        }

     

        public void setSDesc(String desc) {

           sDesc = desc;

        }

     

        public CatalogItem(String itemId, String desc, String desc2, float price) {

           super();

           this.itemId = itemId;

           sDesc = desc;

           lDesc = desc2;

           this.price = price;

        }

    }

     

    7ItemOrder.java

     

    package com.landril.session;

     

    public class ItemOrder {

        private CatalogItem item;

     

        private int num;

     

        public ItemOrder(CatalogItem item) {

           setItem(item);

           setNum(1);

        }

     

        public CatalogItem getItem() {

           return item;

        }

     

        public void setItem(CatalogItem item) {

           this.item = item;

        }

     

        public int getNum() {

           return num;

        }

     

        public void setNum(int num) {

           this.num = num;

        }

     

        public String getItemId() {

           return item.getItemId();

        }

     

        public String getSDesc() {

           return item.getSDesc();

        }

     

        public String getLDesc() {

           return item.getLDesc();

        }

     

        public float getUnitPrice() {

           return item.getPrice();

        }

     

        public void addNum() {

           setNum(num + 1);

        }

     

        public void cancelOrder() {

           setNum(0);

        }

     

        public float getTotalPrice() {

           return num * getUnitPrice();

        }

     

    }

     

    8Catalog.java

     

    package com.landril.session;

     

    public class Catalog {

        private static CatalogItem[] items = {

               new CatalogItem("book1", "Hibernate", "HibernateHibernate", 57),

               new CatalogItem("book2", "Spring", "SpringSpring", 36),

               new CatalogItem("book3", "Tomcat", "TomcatTomcat", 23),

               new CatalogItem("book4", "Jboss", "JbossJboss", 35),

               new CatalogItem("book5", "Japanese1", "Japanese1Japanese1", 35),

               new CatalogItem("book6", "Japanese2", "Japanese2Japanese2", 23) };

     

        public static CatalogItem getItem(String itemId) {

           CatalogItem item;

           if (itemId == null)

               return null;

           for (int i = 0; i < items.length; i++) {

               item = items[i];

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

                  return item;

           }

           return null;

        }

    }

     

    9check.html

     

    <html>

    <head>

    <title>checking out</title>

    </head>

    <body>

    Checking out

    </body>

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

    Feedback

    # re: 會話跟蹤技術--session的使用 2008-07-14 22:30 宋雨

    沒有注釋看不懂啊  回復  更多評論   

    主站蜘蛛池模板: 日本免费人成视频在线观看| 性盈盈影院免费视频观看在线一区| 亚洲AV乱码久久精品蜜桃| 亚洲视频免费在线播放| 毛片亚洲AV无码精品国产午夜| av在线亚洲欧洲日产一区二区| 国产精品区免费视频| 亚洲欧美日本韩国| 亚洲精品夜夜夜妓女网| 野花高清在线电影观看免费视频| 国产成人亚洲精品电影| 久久99亚洲网美利坚合众国| 免费jjzz在线播放国产| 我们的2018在线观看免费高清| 人妻仑刮八A级毛片免费看| 亚洲日韩乱码中文无码蜜桃| 亚洲精品视频在线观看你懂的| 亚洲毛片免费视频| 国产精品高清免费网站| 亚洲中文字幕无码久久2020| 亚洲成AV人片在线观看| 国产三级电影免费观看| 无码av免费毛片一区二区| 在线播放免费人成毛片乱码| 国产精品亚洲精品爽爽| 亚洲一区在线视频| 久久国产亚洲观看| 亚洲午夜福利精品久久| 成人免费视频观看无遮挡| 在线看无码的免费网站| 国产A∨免费精品视频| 国产成人高清亚洲一区久久| 久久精品国产亚洲av日韩| 在线观看午夜亚洲一区| 免费在线观看理论片| 成人午夜性A级毛片免费| 91高清免费国产自产拍2021| 三级黄色片免费看| 老司机免费午夜精品视频| 亚洲国产精品成人综合色在线| 亚洲日韩在线视频|