用户注册表处理
将servlet和JSP结合起来实现用户注册功能。 此时,您应该已经了解了Web表单处理的重要概念。
将用户登录的信息保存在存储器中。 也就是说,它是Java程序中的变量。 首先,让我们看看要填写在用户登记表上的信息。
用户注册确定
处理用户信息的Java代码
用户信息包含用户名——用户的唯一标识符,每个用户的用户名必须不同
密码——用户登录的密码证书
电子邮件地址
用户头像URL
由此,可以设计用户类来表示用户对象:公共类用户{
私有长id;
私有字符串用户名称;
私有字符串密码;
隐私字符串电子邮件;
privatestring avatar=' images/default-avatar.JPEG ';
公共用户(字符串用户名称,字符串密码,字符串电子邮件) {
this.username=username;
this.password=password;
this.email=email;
}
}
此处,用户个人资料暂时使用默认值。 头像图像必须另存为web content/images/default-avatar.JPEG。
系统中可能有多个用户。 使用一个列表来保存它。 List作为Data类的静态变量存在于内存中。 公共类数据{
publicstaticlistusers=new ArrayList (;
静态{
USERS.add(newuser('Luoruici ',' password ',' a@b.com ' );
}
publicstaticusergetbyusername (字符串用户名称)。
return users.stream (
. filter(e-e.getusername ).equals(username ) )
. findFirst () )
. or else (空;
}
}
Data类向用户列表中添加了新用户进行测试,并提供了根据username搜索用户的函数——。 稍后经常调用此函数。
servlet处理用户表单
处理用户表单的servlet主要是获取表单数据
表单数据验证
如果验证成功,则将新对象添加到用户列表中,并在浏览器中返回成功消息。 如果验证失败,请将错误消息直接返回到表单界面,让用户重新填写。
具体处理代码如下。 @webservlet(/account/signup )
publicclassregistercontrollerextendshttp servlet {
@Override
protectedvoiddopost (httpservletrequestreq,http服务器响应响应响应响应) throws ServletException,IOException {
string username=req.getparameter (username );
string password=req.getparameter (password );
string email=req.getparameter (' email );
if (用户名称!=空! username.isempty (数据. getbyusername ) username!=空) {
req.set attribute (' username exist ',true );
requestdispatcherdispatcher=req.getrequest dispatcher ('/JSP/register.JSP ' );
dispatcher.Forward(req,resp );
} else {
用户=new user (username,password,email );
data.users.add(user;
requestdispatcherdispatcher=req.getrequest dispatcher ('/we B- INF/templates/register result.JSP ' );
dispatcher.Forward(req,resp );
}
}
}
JSP显示注册结果页面
其中data.getbyusername(username )!=null表示用户名已经存在,要求将用户名已经存在的请求与用户名一起转发到register.jsp (注册表单页)。 还必须向register.jsp中添加适当的处理代码。
用户名已经存在。 当然,这段代码有些只是对名为username的字段的检查。 其他字段可以根据业务需要编写类似的检查代码,但这里不讨论。
如果表单数据通过验证,则会将新用户添加到用户列表中,并渲染registerResult.jsp页,以通知用户已成功注册。
注册成功。 请登录。