首页 / JAVA / java-更新对象属性
java-更新对象属性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-更新对象属性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1673字,纯文字阅读大概需要3分钟。
内容图文
![java-更新对象属性](/upload/InfoBanner/zyjiaocheng/690/906c75ab1fc84196af6a02eea7b6860a.jpg)
我正在使用Struts 2,我的问题是我不想更新所有对象属性,因为我得到了一些敏感数据.
这是我的代码示例
public class person {
private name;
private email;
private password;
}
例如,在我的表单中,我会显示要更新的名称和电子邮件,因此,在提交后更新我的人员属性时,该人员的password属性将获得值null,但是将属性密码放入< s:hidden>中.标记形式的更新工作正常.
如何使Struts 2在不使用表单中的隐藏标签的情况下记住密码的值?
解决方法:
如果您需要存储信息
>必须在请求中保持不变;
>不得显示在页面中;
然后必须通过实现SessionAware达到use the Session:
就是说,我不确定您是否应该存储用户密码,也不要将密码与用户关联;
您应该在Web应用程序中创建一个登录页面,仅在该Action中处理密码,针对数据库(或其他方式)对其进行验证,并在Session中存储一些身份验证ID,而不是密码本身(您不会验证用户的身份)再次,除非会话终止,否则用户将被重定向到登录页面……无需将密码保存在内存中.
也就是说,用户身份验证的最佳做法也不利于对照数据库中存储的密码来验证输入的密码.
您应该使用某种单向方式hashing algorithm(防止彩虹表攻击的adding a salt)对密码进行哈希处理,并对照数据库上的哈希密码进行检查.这样,即使数据库管理员也无法知道用户的密码,并且在忘记密码的情况下,密码将被重置而不被检索.
在Java中,最好的实现之一是基于BCrypt的jBCrypt.
希望有帮助…
编辑
为了从概念上分离在Web应用程序中处理的对象,可以使用两种不同的bean:“ Full Bean”用于读取,具有所有属性,而“ Subset Bean”用于写入,仅包含可以更改.
例如,ID和密码不应更改…您可以从数据库中读取“完整”,然后写入JSP,然后写入数据库中的“子集”(除了用户注册外,您将在其中写入完整内容). ..
为了使它更容易理解,Full Bean是精确映射数据库字段的Dao对象,而Subset Bean是仅通过复制Dao对象中所需的属性而创建的Presentation Object,它们都是DTO. ,但具有两个不同级别的语义.
否则,只需将您的bean放入会话中,它就是一行代码,您就可以了.
内容总结
以上是互联网集市为您收集整理的java-更新对象属性全部内容,希望文章能够帮你解决java-更新对象属性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。