struts怎么找回密码?struts如何创建password?

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,演示的使用。完整的工程目录结构如下:

struts怎么找回密码?struts如何创建password?.jpg


在Struts2中,可以使用来创建HTML密码字段。例如,可以声明“s:password”键属性或者标签和名称属性。

<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. 运行示例

1.jpg

这就是整个strutspassword密码示例,大家可以自己尝试一下,另外struts可以使程序更加规范化,提高开发效率!我们可以详细了解一下这个框架哦!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

git客户端怎么删除分支?列出分支怎么弄?

java为什么会内存泄漏?java内存泄漏的原因及解决办法

java线程面试题有哪些?java线程面试题及答案