struts采用Java Servlet/JSP技术,实现了基于Java EE Web应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。那在使用struts的过程中我们要如何找回密码呢?下面来我们就来给大家讲解一下。
可以通过发邮件找密码。首先建一张表ab,存放用户名、URL信息和创建URL时间。邮件发送的URL一定是唯一的。可以通过发送时间和用户ID组合起来MD5 32位或64位加密来生成唯一ID。(用UUID生成也可,保证唯一性就OK。)
假设生成的URL地址是http://www.test.com/forgotPassword.html?ABID=91bfc6feb8987aaa21fe369bab4d4fde",表的URL信息存的是ABID,同时将生成的ABID和用户名存入数据库中,以便以后查询。然后在验证的页面是forgotPassword.jsp中写方法接受ABID的参数。通过URL查询数据库中ab表中是否存在该参数。如果有,取出用户名并跳至密码设置页面。当然,有的用户可能重复多次发送,或着有验证时间限制,在ab表中有字段创建时间,判断是否已经过期之类的。
struts如何创建password?
我们创建一个Web工程为:struts2passwd,演示
在Struts2中,可以使用
<s:password key="password" /> //or < s: textfield label = "Password" name = "password" / >
两者都产生相同的HTML输出(在默认的XHTML主题)。
<td class="tdLabel"> <label for="registerUser_password" class="label">Password:</label> </td> < td > <input type="password" name="password" id="registerUser_password"/> < /td>/ /
Struts2
一个页面,“密码”和“确认密码”字段,并做了验证,以确保“确认密码”是与“密码”相匹配。
1. 属性文件
global.properties
# Global messages username = 用名名 password = 密码 confirmPassword = 确认密码 submit = 提交
RegisterAction.properties
# error message username.required = Username is required password.required = Password is required cpassword.required = Confirm password is required cpassword.notmatch = Confirm password is not match //
2. 动作 - Action
RegisterAction.java
package com.yiibai.user.action; import com.opensymphony.xwork2.ActionSupport; public class RegisterAction extends ActionSupport { private String username; private String password; private String confirmPassword; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getConfirmPassword() { return confirmPassword; } public void setConfirmPassword(String confirmPassword) { this.confirmPassword = confirmPassword; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } //business logic public String execute() { return "SUCCESS"; } //simple validation public void validate() { if ("".equals(getUsername())) { addFieldError("username", getText("username.required")); } if ("".equals(getPassword())) { addFieldError("password", getText("password.required")); } if ("".equals(getConfirmPassword())) { addFieldError("confirmPassword", getText("cpassword.required")); } if (!(getPassword() .equals(getConfirmPassword()))) { addFieldError("confirmPassword", getText("cpassword.notmatch")); } } }
3. 视图页面
结果页面使用 Struts2 的“s:password”标签来创建一个HTML密码字段。
register.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> </head> <body> <h1>Struts 2 - password 示例</h1> <s:form action="registerUser" namespace="/user"> <s:textfield key="username" /> <s:password key="password" /> <s:password key="confirmPassword" /> <s:submit key="submit" name="submit" /> </s:form> </body> </html>
welcome.jsp
<%@ page contentType="text/html;charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <body> <h1>Struts 2 - password 示例</h1> <h2>Password : <s:property value="password"/></h2> <h2>Confirm Password : <s:property value="%{confirmPassword}"/></h2> </body> </html>
4. struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.custom.i18n.resources" value="global" /> <constant name="struts.devMode" value="true" /> <package name="user" namespace="/user" extends="struts-default"> <action name="register"> <result>/pages/register.jsp</result> </action> <action name="registerUser" class="com.yiibai.user.action.RegisterAction"> <result name="SUCCESS">/pages/welcome.jsp</result> <result name="input">/pages/register.jsp</result> </action> </package> </struts>
5. 运行示例
这就是整个strutspassword密码示例,大家可以自己尝试一下,另外struts可以使程序更加规范化,提高开发效率!我们可以详细了解一下这个框架哦!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。
推荐阅读: