下面代码是怎么基本使用session和cookie:
session.java
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter out=resp.getWriter();
String uname=req.getParameter("uname");
String pw=req.getParameter("pw");
System.out.println("这是从表单中得到的值:"+uname+" "+pw);
/*session的初步使用*/
HttpSession session=req.getSession(); //创建session
session.setAttribute("myname",uname); //添加
String string;
string =(String)session.getAttribute("myname"); //得到
System.out.println("这是从session中取出来的数据:"+string);
session.removeAttribute("myname"); //移除添加的
session.invalidate(); //删除所有session中保存的键
/*cookie的初步使用 注意,有时候tomcat对中文的不支持会使cookie使用时(resp.add())报错
*
* 设置Cookie时,name=URLEncoder.encode(name,"UTF-8");
* 读取Cookie时,name=URLDecoder.decode(name,"UTF-8");
*
* 在win7系统下,cookie保存在
* C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Cookies
*
* 用360浏览器在该目录下没有找到cookie,但用ie浏览器后可以找到
* */
uname=URLEncoder.encode(uname,"UTF-8");
Cookie c1=new Cookie("myCookie",uname);
c1.setMaxAge(60*60*1);
resp.addCookie(c1);
System.out.println("cookie保存成功!");
out.println("<a href=\"cookie\">点击获取cookie</a>");
//resp.sendRedirect("cookie");
out.flush();
out.close();
}
下面是获取cookie
getCookie.java
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter out=resp.getWriter();
out.println("look:");
out.println("下面是获取cookie");
Cookie[] cookies=req.getCookies();
Cookie c=null;
String name;
String val;
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
if("myCookie".equals(cookies[i].getName())){
System.out.println("找到cookie");
name=cookies[i].getName();
val=cookies[i].getValue();
name=URLDecoder.decode(name,"UTF-8");
val=URLDecoder.decode(val,"UTF-8");
System.out.println(name+" "+val);
out.println(name+" "+val);
}
}
}else {
out.println("没有找到cookie!");
}
out.flush();
out.close();
}