`

Cookie Test

阅读更多

简单实例:

Code:
  1. packagecom.nothing2012.servlet.cookie;
  2. importjava.io.IOException;
  3. importjava.io.PrintWriter;
  4. importjavax.servlet.RequestDispatcher;
  5. importjavax.servlet.ServletException;
  6. importjavax.servlet.http.Cookie;
  7. importjavax.servlet.http.HttpServlet;
  8. importjavax.servlet.http.HttpServletRequest;
  9. importjavax.servlet.http.HttpServletResponse;
  10. /**
  11. *ServletimplementationclassSaveCookie
  12. */
  13. publicclassSaveCookieextendsHttpServlet{
  14. privatestaticfinallongserialVersionUID=1L;
  15. /**
  16. *@seeHttpServlet#HttpServlet()
  17. */
  18. publicSaveCookie(){
  19. super();
  20. //TODOAuto-generatedconstructorstub
  21. }
  22. /**
  23. *@seeHttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse)
  24. */
  25. protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
  26. //TODOAuto-generatedmethodstub
  27. doPost(request,response);
  28. }
  29. /**
  30. *@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponseresponse)
  31. */
  32. @SuppressWarnings("unused")
  33. protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
  34. //TODOAuto-generatedmethodstub
  35. response.setContentType("text/html;charset=UTF-8");
  36. PrintWriterout=response.getWriter();
  37. CookietempCookie=newCookie("temp","87654321");
  38. tempCookie.setMaxAge(-1);
  39. response.addCookie(tempCookie);
  40. Cookiecookie=newCookie("cookie","666");
  41. cookie.setMaxAge(0);
  42. response.addCookie(cookie);
  43. Stringuser=request.getParameter("user");
  44. if(user!=null){
  45. CookieuserCookie=newCookie("user",user);
  46. userCookie.setMaxAge(60*1*1);
  47. response.addCookie(userCookie);
  48. }
  49. System.out.println("=========writecookieend=========");
  50. RequestDispatcherreadCookie=getServletContext().getRequestDispatcher("/readCookie");
  51. readCookie.include(request,response);
  52. }
  53. }
Code:
  1. packagecom.nothing2012.servlet.cookie;
  2. importjava.io.ByteArrayInputStream;
  3. importjava.io.IOException;
  4. importjava.io.ObjectInputStream;
  5. importjava.io.PrintWriter;
  6. importjavax.servlet.ServletException;
  7. importjavax.servlet.http.Cookie;
  8. importjavax.servlet.http.HttpServlet;
  9. importjavax.servlet.http.HttpServletRequest;
  10. importjavax.servlet.http.HttpServletResponse;
  11. /**
  12. *ServletimplementationclassreadCookie
  13. */
  14. publicclassReadCookieextendsHttpServlet{
  15. privatestaticfinallongserialVersionUID=1L;
  16. /**
  17. *@seeHttpServlet#HttpServlet()
  18. */
  19. publicReadCookie(){
  20. super();
  21. //TODOAuto-generatedconstructorstub
  22. }
  23. protectedCookiegetCookie(Cookie[]cookies,Stringname){
  24. if(cookies!=null){
  25. for(Cookiec:cookies){
  26. if(c.getName().equals(name)){
  27. returnc;
  28. }
  29. }
  30. }
  31. returnnull;
  32. }
  33. /**
  34. *@seeHttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse)
  35. */
  36. protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
  37. //TODOAuto-generatedmethodstub
  38. doPost(request,response);
  39. }
  40. /**
  41. *@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponseresponse)
  42. */
  43. protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
  44. //TODOAuto-generatedmethodstub
  45. response.setContentType("text/html;charset=UTF-8");
  46. PrintWriterout=response.getWriter();
  47. System.out.println("========beginreadcookie===========");
  48. CookietempCookie=getCookie(request.getCookies(),"temp");
  49. if(tempCookie!=null){
  50. out.println("临时cookie值:"+tempCookie.getValue()+"<br/>");
  51. }else
  52. out.println("cookie已经被删除<br/>");
  53. Cookiecookie=getCookie(request.getCookies(),"cookie");
  54. if(cookie!=null){
  55. out.println("cookie:"+cookie.getValue()+"<br>");
  56. }else
  57. out.println("这个cookie永远不可能获得<br>");
  58. CookieuserC=getCookie(request.getCookies(),"user");
  59. if(userC!=null){
  60. out.println("user="+userC.getValue());
  61. }else
  62. out.println("user未创建");
  63. }
  64. }


package com.nothing2012.servlet.cookie;

@SuppressWarnings("serial")
public class MyCookie implements java.io.Serializable{
public String getMsg(){
return "222";
}
}

读取复杂对象:

Code:
  1. publicclassSaveComplexCookieextendsHttpServlet
  2. {
  3. @Override
  4. protectedvoidservice(HttpServletRequestrequest,
  5. HttpServletResponseresponse)throwsServletException,IOException
  6. {
  7. //创建一个用于进行Base64编码的BASE64Encoder对象
  8. sun.misc.BASE64Encoderbase64Encoder=newsun.misc.BASE64Encoder();
  9. //创建一个用于接收被序列化的对象实例字节流的ByteArrayOutputStream对象
  10. ByteArrayOutputStreamclassBytes=newByteArrayOutputStream();
  11. //创建一个用于向流中写入对象的ObjectOutputStream对象
  12. ObjectOutputStreamoos=newObjectOutputStream(classBytes);
  13. oos.writeObject(newMyCookie());//写入MyCookie对象实例
  14. oos.close();//关闭ObjectOutputStream对象
  15. //将被序列化的对象实例的字节流按Base64编码格式进行编码
  16. StringclassStr=base64Encoder.encode(classBytes.toByteArray());
  17. Cookiecookie=newCookie("mycookie",classStr);//将Base64编码写入Cookie
  18. cookie.setMaxAge(60*60*24);//Cookie的超时时间为1天
  19. response.addCookie(cookie);
  20. response.setContentType("text/html;charset=utf-8");
  21. PrintWriterout=response.getWriter();
  22. out.println("MyCookie的对象实例已写入Cookie");//输出提示消息
  23. }
  24. }
Code:
  1. publicclassReadComplexCookieextendsReadCookie
  2. {
  3. @Override
  4. publicvoidservice(HttpServletRequestrequest,
  5. HttpServletResponseresponse)throwsServletException,IOException
  6. {
  7. try
  8. {
  9. sun.misc.BASE64Decoderbase64Decoder=newsun.misc.BASE64Decoder();
  10. Cookiecookie=getCookie(request.getCookies(),"mycookie");
  11. if(cookie==null){
  12. System.out.println("----------------");
  13. return;
  14. }
  15. System.out.println("cookie更新不");
  16. StringclassStr=cookie.getValue();
  17. System.out.println(classStr);
  18. byte[]classBytes=base64Decoder.decodeBuffer(classStr);
  19. ObjectInputStreamois=newObjectInputStream(
  20. newByteArrayInputStream(classBytes));
  21. MyCookiemyCookie=(MyCookie)ois.readObject();
  22. response.setContentType("text/html;charset=utf-8");
  23. PrintWriterout=response.getWriter();
  24. out.println(myCookie.getMsg());
  25. System.out.println("========"+myCookie.getMsg());
  26. }
  27. catch(Exceptione)
  28. {
  29. e.printStackTrace();
  30. }
  31. }
  32. }

后者测试未通过:报java.io.EOFException

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics