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);
}
}