<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 宋雨

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

    主站蜘蛛池模板: 99久久人妻精品免费一区| 国产在线观a免费观看| 永久黄色免费网站| 图图资源网亚洲综合网站| 亚洲日韩在线观看| 老外毛片免费视频播放| **毛片免费观看久久精品| 亚洲乱亚洲乱淫久久| 黄床大片30分钟免费看| 一区国严二区亚洲三区| 国产v亚洲v天堂a无| 无码一区二区三区AV免费| 精品久久久久久亚洲| 亚洲一区二区三区免费观看| 永久免费在线观看视频| 亚洲国产亚洲综合在线尤物| 成人免费无遮挡无码黄漫视频| 含羞草国产亚洲精品岁国产精品 | 日韩电影免费在线观看中文字幕| 岛国片在线免费观看| 鲁死你资源站亚洲av| 免费阿v网站在线观看g| 亚洲精品二三区伊人久久| 日本特黄特色免费大片| www免费黄色网| 精品日韩亚洲AV无码一区二区三区| 国产免费丝袜调教视频| 亚洲电影一区二区| 在线视频精品免费| 大桥未久亚洲无av码在线 | 亚洲国产高清在线| 成人免费毛片内射美女APP| 免费在线观看一区| 亚洲午夜在线电影| 国产在线ts人妖免费视频| 国产亚洲精品免费视频播放| 亚洲人成影院77777| 亚洲国产婷婷香蕉久久久久久| 无码精品一区二区三区免费视频| 亚洲欧美成aⅴ人在线观看| 成人无遮挡裸免费视频在线观看 |