Cookie技术

Cookie技术

n  1Cookie技术:网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。

Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。 

为你所专有,不能作为代码执行,也不会传送病毒,只能由提供它的服务器来读取。

作用

n  1、记录访问者的访问次数、访问时间、访问路径

n  2、实现自动登录

n  3、个性化服务

如:根据用户的爱好定制站点

n  4、发送广告

n  1)建立Cookie

n  Cookie 对象名=new Cookie(“索引值”,”字符串信息内容”)

例:Cookie c = new Cookie("Name", name);

注:Cookie对象不能单独使用,必须和request对象或response对象结合使用才起作用。

n  2)Cookie信息传送到客户端方法:

n  response.addCookie(对象名);

n  3)取得客户端所有Cookie对象的数组

n  request.getCookies()

n  Cookie cookies[] = request.getCookies();

n  //得到客户端所有的Cookie的数组

n  if(cookies[i].getName().equals("Name"))

n  //查找是否存在名称为NameCookie

n  name = cookies[i].getValue();

n  //取得Cookie

n  4)取得Cookie的索引值和信息内容

n  Cookie名称.getName()

n  Cookie名称.getValue()

n  5)设置Cookie()有效期

n  Cookie名称.setMaxAge(有效期)

代码解析:将信息写入Cookie

Cookie c = new Cookie("Phone", phone);

c.setMaxAge(30);      

// Cookie 的有效期为 30

response.addCookie(c);

结果集类型( resultSetType)有3种:

¨  ResultSet.TYPE_FORWORD_ONLY:不可滚动,默认值。

¨  ResultSet.TYPE_SCROLL_INSENSITIVE

¨  ResultSet.TYPE_SCROLL_SENSITIVE

结果集的并发性(Concurrency)决定ResultSet对象是否可以修改数据库中的行。

¨  ResultSet.CONCUR_READ_ONLY,不能修改数据库,默认值。

¨  ResultSet.CONCUR_UPDATABLE,可以修改数据库

三层结构设计:分为用户界面层、业务处理层和数据库存储操作层。

将编译成功含有Bean的包或者Bean(无包)放置在虚拟目录/WEB-INF/classes目录下

package db;

import java.sql.*;

public class condb{

            String d="sun.jdbc.odbc.JdbcOdbcDriver";

            String u="jdbc:odbc:shopcart";

            public Statement stm=null;

            public Connection con=null;

            ResultSet rs=null;

            public condb(){

                        try{

                                    Class.forName(d);

                                    con=DriverManager.getConnection(u,"sa","sa");

                        }catch(Exception e){System.out.println(e);}

            }

            public ResultSet exeQuery(String s){

                        try{

                                    stm=con.createStatement();

                                    rs=stm.executeQuery(s);

                        }catch(Exception e){System.out.println(e);}

                return rs;

            }

  public static void main(String args[])throws Exception{

            condb c=new condb();

            ResultSet r=c.exeQuery("select * from product");

            while(r.next()){

                        System.out.println(r.getString(2));

                       

                        }

            }

}

package product;

public class Product{

    private String name;

    private float price;

    public Product(){name="JSP book";price=21.3f;}

    public String getName(){return name;}

    public void setName(String n){name=n;}

    public float getPrice(){return price;}

    public void setPrice(float p){price=p;}

    public boolean isName(String n){

        if (name.equals(n)) return true;

        else return false;

    }

            public static void main(String args[]){

        Product p=new Product();

        System.out.println(p.getName());

        System.out.println(p.getPrice());

    }

 

}

<%@ page import="db.condb"%>

<%@ page import="java.sql.*"%>

<%@ page contentType="text/html;charset=GB2312"%>

<jsp:useBean id="c" class="condb" scope="page"/>

<html>

<body>

<%String sql="select * from product";

  ResultSet r=c.exeQuery(sql);

  while(r.next()){

     out.print("<center>"+r.getString(2)+"<br></center>");

  }

  %>

</body>

Counter.java

package pack;

public class Counter

{   long count=0;

    public synchronized long getCount()

    {   count++;

        return count;

     }

}

<%@ page import=pack.Counter"%>

<HTML><BODY ><Font size=1>

<jsp:useBean id="people" class="Counter" scope="application" >

</jsp:useBean>

  <% if(session.isNew())

  { %>

  <P>您是第

  <jsp:getProperty  name= "people"  property="count"  />

  位访问本站的人

  <%

  }

  else

   { out.print("禁止通过刷新增加计数!");

   }

实例2:简易购物车

实例:chap4-8.html   4-8.jsp   Buy.java

u  chap4-8.html

u  <form action = "4-8.jsp" method="post">

u              <select name="item">

u                          <option selected>衬衫</option>

u                          <option>休闲长裤</option>

u                          <option>旅游鞋</option>

u                          <option>羊毛外套</option>

u        </select>

u  <Input type="submit" name="submit" value="add">

u  <Input type="submit" name="submit" value="remove">

u  </form>

<%request.setCharacterEncoding("GBK");%>

<jsp:useBean id="cart" scope="session" class="ch4.Buy" />

<jsp:setProperty name="cart" property="item"   value="<%=request.getParameter(/"item/")%>"/>

<jsp:setProperty name="cart" property="submit" value="<%=request.getParameter(/"submit/")%>"/>

<%       cart.processRequest();   %>

<br> 您选择了如下商品:

<%   String[] items = cart.getItems();

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

%>   <li> <%= items[i] %>

<%       }   %>

<%@ include file ="chap4-8.html" %>

package ch4;

import java.util.Vector;

public class Buy {

    Vector v = new Vector();

    String submit = null;

    String item = null;

    private void addItem(String name) {

                        v.addElement(name);

    }

    private void removeItem(String name) {

                        v.removeElement(name);

    }

    public void setItem(String name) {

                        item = name;

    }

    public void setSubmit(String s) {

                        submit = s;

    }

    public String[] getItems() {

                        String[] s = new String[v.size()];

                        v.copyInto(s);

                        return s;

    }

    public void processRequest() {

                        if (submit.equals("add"))

                            addItem(item);

                        else if (submit.equals("remove"))

                            removeItem(item);    

                            reset();

    }

    private void reset() {

                        submit = null;

                        item = null;

    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值