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+"
"
); //向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中放入一只猫
");

从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()+"
");
// pw.println("你的猫的年龄:"+myCat.getAge()+"
");

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

//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")+"
"
); //从session中删除you属性 // ht.removeAttribute("you"); //就用下面这一句话,就把session全都删除了。 //设置其的属性为0的话,是不是就干脆不保存了? ht.setMaxInactiveInterval(0); pw.println("删除you属性后 you 的 值="+ ht.getAttribute("you")+"
"
); pw.println("删除you属性后 he 的 值="+ ht.getAttribute("he")+"
"
); } catch (Exception ex) { ex.printStackTrace(); } } //处理post请求 //req: 用于获得客户端(浏览器)的信息 //res: 用于向客户端(浏览器)返回信息 public void doPost(HttpServletRequest req,HttpServletResponse res){ this.doGet(req,res); } }

你可能感兴趣的:(web成长记)