在tomcat启动后,session赋值后在另一个.java文件中第一次取值为null? 25
publicvoidgetRandcode(HttpServletRequestrequest,HttpServletResponseresponse){session....
public void getRandcode(HttpServletRequest request,
HttpServletResponse response) {
session.removeAttribute(“RANDOMVALIDATECODEKEY”);
session.setAttribute(“RANDOMVALIDATECODEKEY”, randomString);
System.out.println("刚设置完::::::::::"+session.getAttribute("RANDOMVALIDATECODEKEY"));
}//成功》》》》》》》》》》》》》》》》》》》》》》》
public class ValidateRandomCodeServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(true);
String vercode = request.getParameter("verCode").toUpperCase();
System.out.println("输入的::::"+vercode);
try {
if(session.getAttribute("RANDOMVALIDATECODEKEY") == null){
response.getWriter().print(0);
System.out.println("为空~~~~~~~~~~~~~~~~~~~~~~~");//失败??????
}
else{
String randomcode = (String)session.getAttribute("RANDOMVALIDATECODEKEY");
System.out.println("验证码:::"+randomcode);
if(randomcode.equals(vercode)){
response.getWriter().print(1);
}
else{
response.getWriter().print(0);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
在tomcat第一次启动,每次获取session里的值 都是 null。。。。。但是刷新一次就好了。可以获取到。
求大神解答。。。。 session 时间设置 30分钟。。 展开
HttpServletResponse response) {
session.removeAttribute(“RANDOMVALIDATECODEKEY”);
session.setAttribute(“RANDOMVALIDATECODEKEY”, randomString);
System.out.println("刚设置完::::::::::"+session.getAttribute("RANDOMVALIDATECODEKEY"));
}//成功》》》》》》》》》》》》》》》》》》》》》》》
public class ValidateRandomCodeServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(true);
String vercode = request.getParameter("verCode").toUpperCase();
System.out.println("输入的::::"+vercode);
try {
if(session.getAttribute("RANDOMVALIDATECODEKEY") == null){
response.getWriter().print(0);
System.out.println("为空~~~~~~~~~~~~~~~~~~~~~~~");//失败??????
}
else{
String randomcode = (String)session.getAttribute("RANDOMVALIDATECODEKEY");
System.out.println("验证码:::"+randomcode);
if(randomcode.equals(vercode)){
response.getWriter().print(1);
}
else{
response.getWriter().print(0);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
在tomcat第一次启动,每次获取session里的值 都是 null。。。。。但是刷新一次就好了。可以获取到。
求大神解答。。。。 session 时间设置 30分钟。。 展开
4个回答
展开全部
关于验证码,流程一般是调用一个servlet,在这里面准备验证码,就是你的getRandcode方法,把验证码放在request.getSession中,然后返回一个页面,在页面上点确定的时候,调用你的ValidateRandomCodeServlet 这个servlet,验证用户输入与session中的是否一致。如果你流程这么走的,肯定没问题的
追问
就是这么走的。。现在问题是,当tomcat启动的时候,第一次输入验证码,在后台验证的时候,session为空。。。。刷新一次,在输入一次就可以了。。。。。。。。。。。。。。。。。。。。。。。。。
追答
你直接把项目发附件过来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
session的范围,比如是不是从request中取得session,每一个request都会独立出来一个session,其他的请求中就取不到上次请求的这个session
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询