100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > jsp注册页面java代码_使用Servlet和JSP实现用户注册功能

jsp注册页面java代码_使用Servlet和JSP实现用户注册功能

时间:2021-04-26 07:00:39

相关推荐

jsp注册页面java代码_使用Servlet和JSP实现用户注册功能

用户注册表单处理

结合Servlet和JSP来实现一个用户注册功能,此时你应该已经了解Web表单处理的关键概念。

我们将用户注册的信息存放在内存中(即Java程序中的某个变量)。首先看看用户注册表单需要填写的信息:

用户注册

确定

处理用户信息的Java代码

用户信息包括:用户名——用户的唯一标识符,每一个用户的用户名必须不同

密码——用户登录的密码凭证

电子邮箱

用户头像URL

根据此可以设计User类来表示用户对象:public class User {

private long id;

private String username;

private String password;

private String email;

private String avatar = "images/default-avatar.jpeg";

public User(String username, String password, String email) {

this.username = username;

this.password = password;

this.email = email;

}

}

这里用户头像我们暂时使用默认值。需要把头像图片保存为WebContent/images/default-avatar.jpeg。

系统中可能有多个用户,我们使用一个List来保存它,List作为Data类的静态变量存在于内存中:public class Data {

public static List users = new ArrayList<>();

static {

users.add(new User("luoruici", "password", "a@"));

}

public static User getByUsername(String username) {

return users.stream()

.filter(e -> e.getUsername().equals(username))

.findFirst()

.orElse(null);

}

}

Data类中还向用户列表中添加了一个新用户用作测试,另外提供了一个函数——根据username查找用户,这个函数在后面会经常被调用。

Servlet处理用户表单

处理用户表单的Servlet主要做这样几件事情:获取表单数据

对表单数据进行校验

如果校验成功,向用户列表中添加一个新的对象,并返回成功提示信息到浏览器;如果校验失败,直接将错误信息返回到表单界面,让用户重新填写。

具体处理代码如下:@WebServlet("/account/signup")

public class RegisterController extends HttpServlet {

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

String username = req.getParameter("username");

String password = req.getParameter("password");

String email = req.getParameter("email");

if (username != null && !username.isEmpty() && Data.getByUsername(username) != null) {

req.setAttribute("usernameExist", true);

RequestDispatcher dispatcher = req.getRequestDispatcher("/jsp/register.jsp");

dispatcher.forward(req, resp);

} else {

User user = new User(username, password, email);

Data.users.add(user);

RequestDispatcher dispatcher = req.getRequestDispatcher("/WEB-INF/templates/registerResult.jsp");

dispatcher.forward(req, resp);

}

}

}

JSP显示注册结果页面

其中Data.getByUsername(username) != null表明用户名已经存在,此时应该将请求转发给register.jsp也就是注册表单页面,同时告知用户名已经存在。那么register.jsp中也应该加入相应的处理代码:

用户名已经存在

当然这部分代码只是对username这一个字段的校验,其他字段可以根据业务需求写出类似的校验代码,这里就不一一赘述了。

如果表单数据通过校验,则用户列表中会新添加一个用户,此时渲染registerResult.jsp页面,告知用户已经注册成功:

注册成功

注册成功!请登录。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。