servlet的一个小项目(四)

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 案例---如何得到session

package 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值