java - session属性在Java中被设置为一个对象,但在JSP中它是空的。为什么 JSP 使用新 session ?

标签 java jsp session servlets

我在调试器中运行了代码,并确认该对象是在 Java 代码中创建的,并且在 JSP 中为 null。为什么 JSP 使用新 session ?

在调试器中,它进入 Java 代码并在具有 id 的 session 中设置验证码。当我运行 JSP 时,它获取具有不同 id 的 session ,失败,然后进入 doGet() 并使用新的验证码对象设置当前 id session 。将验证码存储在 session 中,但 JSP 运行时并未使用该 session 。

这里是一些代码片段

Java:

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  ColoredEdgesWordRenderer wordRenderer = new ColoredEdgesWordRenderer(COLORS, FONTS);
  Captcha captcha = new Captcha.Builder(_width, _height).
  addText().addNoise().
  addBackground(new BrightGradiatedBackgroundProducer()).
  build();

  CaptchaServletUtil.writeImage(resp, captcha.getImage());
  req.getSession().setAttribute("simpleCaptcha", captcha); // object is getting set

}

JSP:

session=request.getSession(false);
if (session==null)
    session=request.getSession(true);

boolean isCaptchaTrue = false;
String strCaptcha = request.getParameter("captcha");
String captchaType = request.getParameter("captchaType");

if (strCaptcha != null && captchaType != null) {
  if(session.getAttribute("simpleCaptcha") instanceof Captcha){
    Captcha captcha = (Captcha) session.getAttribute("simpleCaptcha");
    isCaptchaTrue = captcha.isCorrect(strCaptcha);

  }else if(session.getAttribute("simpleCaptcha") instanceof AudioCaptcha){
    AudioCaptcha captcha = (AudioCaptcha) session.getAttribute("simpleCaptcha");
    isCaptchaTrue = captcha.isCorrect(strCaptcha);
  }
} 

最佳答案

我发现了我的问题。在 JSP 的顶部, session 已失效。我删除了 session.invalidate() 现在它可以工作了。

关于java - session属性在Java中被设置为一个对象,但在JSP中它是空的。为什么 JSP 使用新 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38206874/

相关文章:

java - 在 Web 应用程序中不使用 JavaScript 或 JQuery 时防止多次提交按钮点击?

php - 多级用户登录和 session

java - 本地主机上的 wicket 应用程序之间的 Wicket 交互

java - java中的递归函数 - N个具有变化索引的嵌套循环

java - 错误 : java. lang.NoClassDefFoundError:antlr/RecognitionException

java - 如何根据先前的下拉值过滤后选择html下拉值

php - 我需要一些有关在 codeigniter 中使用 session 的帮助

Java 格式化输出问题

javascript - 如何使用拖放

java - 如何在 JSP 中获取我的按钮的值并将其显示在 tomcat 日志和 eclipse consol 上