java登录域验证失败_使用actionerror做失败登录验证

正版现货kubernetes in action

73.26元

(需用券)

去购买 >

caae3571967a8aaf99b0877a1f5571ec.png

一. 登录页面中放置如下代码:

员工登录

如果登录出现异常,就会将你设置的异常信息反馈出来.

二. 这个标签需要jsp的标签库支持,代码如下:

三. struts-tags标签库使用struts的filter进行过滤,需要在web.xml中过滤.jsp文件

代码如下:

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

struts2

*.action

*.jsp

最后actionerror需要在验证登录的时候,接收抛出的异常

如果抛出的是UnknownAccountException,

就添加一个actionerror,代码如下:

this.addActionError("用户名错误!");

如果抛出的是IncorrectCredentialsException,

就添加一个actionerror,代码如下:

this.addActionError("密码错误!");

相关代码使用shiro框架进行验证,代码如下:

@Action("userAction_login")public String login() throwsException {

String realCheckcode= (String) ServletActionContext.getRequest().getSession().getAttribute("key");if(StringUtils.isNotBlank(realCheckcode)){if(realCheckcode.equals(checkcode)){//在shiro框架基础开始认证//获取subject对象 认证状态:未认证

Subject subject =SecurityUtils.getSubject();if(subject.isAuthenticated()){return "index";

}else{//认证令牌(用户在登陆页面中输入)

AuthenticationToken token = newUsernamePasswordToken(model.getUsername(), Md5Util.encode(model.getPassword()));//认证-登陆

try{

subject.login(token);//跳转首页//从subject中获取主角对象

User user =(User) subject.getPrincipal();

ServletActionContext.getRequest().getSession().setAttribute("loginUser", user);return "index";

}catch(Exception e) {if(e instanceofUnknownAccountException){//账户错误

this.addActionError("用户名错误!"); //在登陆页面中获取错误信息。 通过strut2标签获取 问题

}if(e instanceofIncorrectCredentialsException){//密码错误

this.addActionError("密码错误!"); //在登陆页面中获取错误信息。 通过strut2标签获取 问题

}

e.printStackTrace();

}

}

}

}return "login";

}

原文链接:https://www.cnblogs.com/qingyundian/p/9260288.html

java 11官方入门(第8版)教材

79.84元

包邮

(需用券)

去购买 >

f0f3f55624fb396b1764d42d6df88864.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值