java struts2 生成验证码,Struts2生成验证码放入session,action无法得到session解决思路...

Struts2生成验证码放入session,action无法得到session

在一个RandomAction中生成一个验证码后通过

ActionContext.getContext().getSession().put("random", rdnu.getString());

将生成的验证码字符串保存到session里,供用户登录或注册时验证是否输入正确

在RandomAction中使用

ActionContext.getContext().getSession().get("random"),可以正常获得session中值

但在另一个LoginAction中,同样的方法,答应出来的确是null;

请问如何解决。

代码如下:

RandomAction.javaJava codeimport java.io.ByteArrayInputStream;

import Web.RandomNumUtil;

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class RandomAction extends ActionSupport{

/**

*

*/

private static final long serialVersionUID = 1L;

private ByteArrayInputStream inputStream;

public String execute() throws Exception{

RandomNumUtil rdnu=RandomNumUtil.Instance();

this.setInputStream(rdnu.getImage());

ActionContext.getContext().getSession().put("random", rdnu.getString());

System.out.println("生成验证码:"+rdnu.getString());

System.out.println("获得验证码:"+ActionContext.getContext().getSession().get("random"));

return SUCCESS;

}

public void setInputStream(ByteArrayInputStream inputStream) {

this.inputStream = inputStream;

}

public ByteArrayInputStream getInputStream() {

return inputStream;

}

}

RandomNumUtil.java(验证码生成方法类)Java codeimport java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.image.BufferedImage;

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.util.Random;

import javax.imageio.ImageIO;

import javax.imageio.stream.ImageOutputStream;

public class RandomNumUtil {

privateprovider="java:MSG">

LoginAction.java

Java codeimport com.ccniit.service.UserManager;

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport  {

/**

*

*/

private static final long serialVersionUID = 1L;

/**

*

*/

private String username;

private String password1;

private String vercode;

public String getVercode() {

return vercode;

}

public void setVercode(String vercode) {

this.vercode = vercode;

}

private String msg;

public String getMsg() {

return msg;

}

public void setMsg(String msg) {

this.msg = msg;

}

protected UserManager mgr;

public void setMgr(UserManager mgr) {

this.mgr = mgr;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword1() {

return password1;

}

public void setPassword1(String password1) {

this.password1 = password1;

}

public String showReg() throws Exception {

return SUCCESS;

}

public String login() throws Exception {

String ver2=(String) ActionContext.getContext().getSession().get("random");

System.out.println("random:" + ver2);

System.out.println("用户输入:" + getVercode());

if (getVercode().equals(getVercode())) {

if (mgr.login(getUsername(), getPassword1()) > 0) {

System.out.println("SUCCESS");

return SUCCESS;

} else {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值