在tomcat启动后,session赋值后在另一个.java文件中第一次取值为null?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在tomcat启动后,session赋值后在另一个.java文件中第一次取值为null?相关的知识,希望对你有一定的参考价值。
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分钟。。
必然赋值了啊。。验证码图片输出到页面上就已经存在session中了。
参考技术A 关于验证码,流程一般是调用一个servlet,在这里面准备验证码,就是你的getRandcode方法,把验证码放在request.getSession中,然后返回一个页面,在页面上点确定的时候,调用你的ValidateRandomCodeServlet 这个servlet,验证用户输入与session中的是否一致。如果你流程这么走的,肯定没问题的追问就是这么走的。。现在问题是,当tomcat启动的时候,第一次输入验证码,在后台验证的时候,session为空。。。。刷新一次,在输入一次就可以了。。。。。。。。。。。。。。。。。。。。。。。。。
追答你直接把项目发附件过来
参考技术B session的范围,比如是不是从request中取得session,每一个request都会独立出来一个session,其他的请求中就取不到上次请求的这个session 参考技术C 这个问题最后怎么解决的了在另一个事务中提交数据对象后在一个事务中读取数据对象 - 脏读?
【中文标题】在另一个事务中提交数据对象后在一个事务中读取数据对象 - 脏读?【英文标题】:Reading data object in one transaction after comitting data object in another transaction - dirty read? 【发布时间】:2018-10-02 01:55:07 【问题描述】:根据定义,脏读是对未提交数据的读取。我的问题是:
如果您有多个来自同一故事中不同事务的写操作紧接着发生(比如说事务 1、2 和 3),那么在写入结束时,其中一个事务提交(假设它是事务1),然后从事务 2 或 3 读取,这算作脏读吗?
例如:w1(X);w2(X);w3(X);c1;r2(X).....
【问题讨论】:
【参考方案1】:不,这些术语是不可重复读取或幻读 (source)。许多(如果不是大多数)数据库引擎默认允许它们。
【讨论】:
以上是关于在tomcat启动后,session赋值后在另一个.java文件中第一次取值为null?的主要内容,如果未能解决你的问题,请参考以下文章
Tomcat关闭后,重新启动,session中保存的对象为什么还存在解决方法
用tomcat部署上java web项目后在地址里输入地址有没有办法不加项目名