request.getCookies()取不到自定义的cookie,而是内存的cookie
base64.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.net.URLEncoder" %>
<%@page import="sun.misc.BASE64Encoder;"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>Cookie Encoding</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<%
File file = new File (this.getServletContext().getRealPath("xishuangbanna.jpg"));
byte[] binary = new byte[(int)file.length()];
InputStream ins = this.getServletContext().getResourceAsStream("/" + file.getName());
ins.read(binary);
ins.close();
String content = BASE64Encoder.class.newInstance().encode(binary);
content.replace("\r\n", "<br>");
content.replace("\n", "<br>");
Cookie cookie = new Cookie("file", URLEncoder.encode(content));
response.addCookie(cookie);
%>
<body>
从Cookie中获取的二进制图片:<img src="base64_decode.jsp" /><br/>
<textarea id="cookieArea" style="width:100%;height:200px;"></textarea>
<script type="text/javascript">
cookieArea.value = document.cookie;
</script>
</body>
</html>
base64_decode.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="sun.misc.BASE64Decoder;"%>
<%
out.clear();
for (Cookie cookie : request.getCookies()) {
if (cookie.getName().equals("file")) {
byte[] binary = BASE64Decoder.class.newInstance().decodeBuffer(cookie.getValue().replace(" ", ""));
response.setHeader("Content-type", "image/jpg");
response.setHeader("Content-Disposition", "inline;filename=new.jpg");
response.setHeader("Connection", "close");
response.setContentLength(binary.length);
response.getOutputStream().write(binary);
response.getOutputStream().flush();
response.getOutputStream().close();
}
}
%>
base64.jsp和base64_decode.jsp都是在项目的根目录下
请高手指点