servlet的一个小项目(四)

来源:互联网 发布:淘宝发快递一般多少钱 编辑:程序博客网 时间:2024/06/03 18:25

servlet的一个小项目(四)

ps:这个笔记用的是韩顺平老师的项目。
稍稍改动了一点。

使用session:

//session 案例---如何得到session/和在session中添加属性package com.tsinghua;import javax.servlet.http.*;import java.io.*;public class SessionTest1 extends HttpServlet {    //处理get请求    //req: 用于获得客户端(浏览器)的信息    //res: 用于向客户端(浏览器)返回信息    public void doGet(HttpServletRequest req,HttpServletResponse res){        //业务逻辑         try {            //中文乱码            res.setContentType("text/html;charset=gbk");            PrintWriter pw=res.getWriter();            //得到和req相关联的session,如果没有就创建session            HttpSession ht=req.getSession(true);            //得到session 的id,这是由容器分配的            String sessionId=ht.getId();            pw.println("sessionTest1 的session id="+sessionId+"<br>");            //向session中添加一个属性(String 类型的)            //这里还是用的像表那样的放入和取出操作。            ht.setAttribute("name","蜗牛");            //如果不指定时间,那么该session的有效期是30min            //你也可以指定时间,30s            ht.setMaxInactiveInterval(30);        }        catch (Exception ex) {            ex.printStackTrace();        }    }    //处理post请求    //req: 用于获得客户端(浏览器)的信息    //res: 用于向客户端(浏览器)返回信息    public void doPost(HttpServletRequest req,HttpServletResponse res){        this.doGet(req,res);    }}//猫类//class Cat{//  //  private String name;//  private int age;//  public Cat(String name,int age){//      //      this.name=name;//      this.age=age;//  }//  //  public String getName(){//      //      return this.name;//  }//  public int getAge(){//      //      return this.age;//  }//}/*          //向session中添加一个属性(String 类型的)            ht.setAttribute("name","蜗牛");            //如果不指定时间,那么该session的有效期是30min            //你也可以指定时间,30s            ht.setMaxInactiveInterval(30);            pw.println("在session中放入了一个属性 name=蜗牛");*///          //向session中添加一个属性(Vector v)//          //那看来session也是可以携带对象数据的。//          Cat myCat=new Cat("xiaoming",34);//          //          ht.setAttribute("maomao",myCat);//          //对象的名字后边往出拿的时候用这个。//          pw.println("在session中放入一只猫 <br>");

从session取出来:

//session 案例---如何得到sessionpackage com.tsinghua;import javax.servlet.http.*;import java.io.*;public class SessionTest2 extends HttpServlet {    //处理get请求    //req: 用于获得客户端(浏览器)的信息    //res: 用于向客户端(浏览器)返回信息    public void doGet(HttpServletRequest req,HttpServletResponse res){        //业务逻辑         try {            //中文乱码            res.setContentType("text/html;charset=gbk");            PrintWriter pw=res.getWriter();            //得到和req相关联的session,如果没有就创建session            HttpSession ht=req.getSession(true);            //得到session 的id            String sessionId=ht.getId();            pw.println("sessionTest2 的session id="+sessionId);                //得到session中的某个属性                //这个name一定不要写错了。            String myName=(String)ht.getAttribute("name");            pw.println("name="+myName);        }        catch (Exception ex) {            ex.printStackTrace();        }    }    //处理post请求    //req: 用于获得客户端(浏览器)的信息    //res: 用于向客户端(浏览器)返回信息    public void doPost(HttpServletRequest req,HttpServletResponse res){        this.doGet(req,res);    }}//          //得到session中的某个属性//          String myName=(String)ht.getAttribute("name");//          //          pw.println("name="+myName);//          //          //得到猫//          Cat myCat=(Cat)ht.getAttribute("maomao");//          //转换为cat类型的。通过对象的名字去拿到对应的对象。//          pw.println("你的猫的名:"+myCat.getName()+"<br>");//          pw.println("你的猫的年龄:"+myCat.getAge()+"<br>");

添加了属性之后,还得要删除属性:

//session 案例---如何删除属性/如何使得session无效package com.tsinghua;import javax.servlet.http.*;import java.io.*;public class SessionTest3 extends HttpServlet {    //处理get请求    //req: 用于获得客户端(浏览器)的信息    //res: 用于向客户端(浏览器)返回信息    public void doGet(HttpServletRequest req,HttpServletResponse res){        //业务逻辑         try {            //中文乱码            res.setContentType("text/html;charset=gbk");            PrintWriter pw=res.getWriter();            //得到和req相关联的session,如果没有就创建session            HttpSession ht=req.getSession(true);            //向session中添加一个属性(String 类型的)            ht.setAttribute("you","周星星");            ht.setAttribute("he","刘德华");            pw.println("在没有删除you属性前 you 的 值="+            ht.getAttribute("you")+"<br>");            //从session中删除you属性            //  ht.removeAttribute("you");            //就用下面这一句话,就把session全都删除了。            //设置其的属性为0的话,是不是就干脆不保存了?            ht.setMaxInactiveInterval(0);            pw.println("删除you属性后 you 的 值="+            ht.getAttribute("you")+"<br>");            pw.println("删除you属性后 he 的 值="+            ht.getAttribute("he")+"<br>");        }        catch (Exception ex) {            ex.printStackTrace();        }    }    //处理post请求    //req: 用于获得客户端(浏览器)的信息    //res: 用于向客户端(浏览器)返回信息    public void doPost(HttpServletRequest req,HttpServletResponse res){        this.doGet(req,res);    }}
0 0
原创粉丝点击