我是装的netbean,自带了tomcat。那这个session文件存储的默认目录是哪里呢?
怎么改呢?还有一个取值问题。有两个jsp页面,一个是产生随机数的,一个是测试session的,放在同一目录运行
//index.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="java.awt.List,java.lang.Integer"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script type="text/javascript" src="./rc/js/dhtml.inc.js"></script>
<title>GTNT</title>
</head>
<body><jsp:useBean id="image" scope="page" class="myBean.ImageEnsure"/>
<%
/*
HttpSession session1 = request.getSession();
out.println(session1.getId()+"<br>");
*/
/*
//判断跳转
String admin = (String)session.getAttribute("login");
if(admin==null||admin.equals("")){
// out.println("<script type='text/JavaScript'>\n window.location='login.jsp';\n window.close();</script>");
//两中页面转换的方法
response.sendRedirect("login.jsp");
}
*/
//request.getParameter()
if(session.isNew())
{
session.setMaxInactiveInterval(5);
session.setAttribute("login","true");
out.println("session is new<br>");
}
String str=";";
//String str=image.getEnsure(0,0,response.getOutputStream());
session.setAttribute("strEnsure",str); out.println("此次产生的sessionId为:"+session.getId());
out.println("<br>session的过期时间为:"+Integer.toString(session.getMaxInactiveInterval())+"秒");
out.println("<br>session.strEnsure:"+session.getAttribute("strEnsure")+"<br>");
List list = (List)session.getAttribute("GoodsList");
String basestr="zhoupeng";
if (list == null)
{
list = new List();
}
if(list.getItemCount()==0)
list.add(basestr+Integer.toString(list.getItemCount()+1));
else
list.add(basestr+Integer.toString(list.getItemCount()+1));
session.setAttribute("GoodsList",list);
list = (List)session.getAttribute("GoodsList");
out.println("list.getItemCount:"+list.getItemCount());
out.println("<br>");
for(int i=0;i<list.getItemCount();i++)
{
out.println(list.getItem(i));
out.println("<br>");
}
%>
<img src="randImage.jsp">
<%
out.print("<br>randimage:"+(String)session.getAttribute("rand"));
//注销session
//session.invalidate();
%>
</body>
</html>//randImage.jsp页面
<%@page pageEncoding="UTF-8"%>
<%@page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
//给定范围获得随机颜色
Color getRandColor(int fc,int bc){
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
//随机取的字符库数组
char mapTable[]={
'A','B','C','D','E','F',
'G','H','I','J','K','L',
'M','N','O','P','Q','R',
'S','T','U','V','W','X',
'Y','Z','0','1','2','3',
'4','5','6','7','8','9'
};
%>
<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0); //在内存中创建图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //获取图形上下文
Graphics g = image.getGraphics(); //生成随机类
Random random = new Random(); //设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height); //设定字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18)); //画边框
g.setColor(getRandColor(100,250));
g.drawRect(0,0,width-1,height-1); //随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++) {
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
} //取随机产生的认证码(4位数字)
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
//将认证码显示到图象中
//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
g.drawString(rand,13*i+6,16);
} //将认证码存入SESSION
session.removeAttribute("rand");
session.setAttribute("rand",sRand);
//图象失效
g.dispose(); //输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
%> 你看运行一下index.php,老是显示上一次的随机数。。郁闷…………
怎么改呢?还有一个取值问题。有两个jsp页面,一个是产生随机数的,一个是测试session的,放在同一目录运行
//index.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="java.awt.List,java.lang.Integer"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script type="text/javascript" src="./rc/js/dhtml.inc.js"></script>
<title>GTNT</title>
</head>
<body><jsp:useBean id="image" scope="page" class="myBean.ImageEnsure"/>
<%
/*
HttpSession session1 = request.getSession();
out.println(session1.getId()+"<br>");
*/
/*
//判断跳转
String admin = (String)session.getAttribute("login");
if(admin==null||admin.equals("")){
// out.println("<script type='text/JavaScript'>\n window.location='login.jsp';\n window.close();</script>");
//两中页面转换的方法
response.sendRedirect("login.jsp");
}
*/
//request.getParameter()
if(session.isNew())
{
session.setMaxInactiveInterval(5);
session.setAttribute("login","true");
out.println("session is new<br>");
}
String str=";";
//String str=image.getEnsure(0,0,response.getOutputStream());
session.setAttribute("strEnsure",str); out.println("此次产生的sessionId为:"+session.getId());
out.println("<br>session的过期时间为:"+Integer.toString(session.getMaxInactiveInterval())+"秒");
out.println("<br>session.strEnsure:"+session.getAttribute("strEnsure")+"<br>");
List list = (List)session.getAttribute("GoodsList");
String basestr="zhoupeng";
if (list == null)
{
list = new List();
}
if(list.getItemCount()==0)
list.add(basestr+Integer.toString(list.getItemCount()+1));
else
list.add(basestr+Integer.toString(list.getItemCount()+1));
session.setAttribute("GoodsList",list);
list = (List)session.getAttribute("GoodsList");
out.println("list.getItemCount:"+list.getItemCount());
out.println("<br>");
for(int i=0;i<list.getItemCount();i++)
{
out.println(list.getItem(i));
out.println("<br>");
}
%>
<img src="randImage.jsp">
<%
out.print("<br>randimage:"+(String)session.getAttribute("rand"));
//注销session
//session.invalidate();
%>
</body>
</html>//randImage.jsp页面
<%@page pageEncoding="UTF-8"%>
<%@page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
//给定范围获得随机颜色
Color getRandColor(int fc,int bc){
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
//随机取的字符库数组
char mapTable[]={
'A','B','C','D','E','F',
'G','H','I','J','K','L',
'M','N','O','P','Q','R',
'S','T','U','V','W','X',
'Y','Z','0','1','2','3',
'4','5','6','7','8','9'
};
%>
<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0); //在内存中创建图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //获取图形上下文
Graphics g = image.getGraphics(); //生成随机类
Random random = new Random(); //设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height); //设定字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18)); //画边框
g.setColor(getRandColor(100,250));
g.drawRect(0,0,width-1,height-1); //随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++) {
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
} //取随机产生的认证码(4位数字)
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
//将认证码显示到图象中
//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
g.drawString(rand,13*i+6,16);
} //将认证码存入SESSION
session.removeAttribute("rand");
session.setAttribute("rand",sRand);
//图象失效
g.dispose(); //输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
%> 你看运行一下index.php,老是显示上一次的随机数。。郁闷…………
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货