黑狐家游戏

java web用户登录,javaweb简单的用户登录界面代码

欧气 3 0

标题:Java Web 实现简单用户登录界面

在当今的互联网时代,用户登录是许多 Web 应用程序的关键功能之一,它允许用户验证自己的身份,并访问受保护的资源,我们将使用 Java Web 技术来实现一个简单的用户登录界面。

一、环境搭建

我们需要搭建 Java Web 开发环境,这里我们使用的是 Java EE 8 和 Tomcat 9。

1、安装 JDK 8,并配置环境变量。

2、下载并安装 Tomcat 9。

3、创建一个新的 Java Web 项目,并将其部署到 Tomcat 服务器上。

二、数据库设计

为了实现用户登录功能,我们需要一个数据库来存储用户信息,这里我们使用 MySQL 数据库。

1、创建一个新的数据库,并命名为user_login

2、创建一个名为users 的表,用于存储用户信息,该表包含以下字段:

字段名 数据类型 描述
idINT 用户 ID,自增主键
usernameVARCHAR(50) 用户名,唯一
passwordVARCHAR(50) 密码

三、实体类设计

我们需要创建一个实体类来表示用户信息,这里我们创建一个名为User 的类。

public class User {
    private int id;
    private String username;
    private String password;
    // 省略构造方法、getter 和 setter 方法
}

四、DAO 层设计

DAO 层用于与数据库进行交互,这里我们创建一个名为UserDAO 的接口,并实现其方法。

import java.util.List;
public interface UserDAO {
    // 根据用户名查询用户信息
    User findUserByUsername(String username);
    // 添加用户信息
    void addUser(User user);
}
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
public class UserDAOImpl implements UserDAO {
    private EntityManagerFactory entityManagerFactory;
    public UserDAOImpl() {
        entityManagerFactory = Persistence.createEntityManagerFactory("user_login");
    }
    @Override
    public User findUserByUsername(String username) {
        EntityManager entityManager = entityManagerFactory.createEntityManager();
        Query query = entityManager.createQuery("SELECT u FROM User u WHERE u.username = :username");
        query.setParameter("username", username);
        User user = (User) query.getSingleResult();
        entityManager.close();
        return user;
    }
    @Override
    public void addUser(User user) {
        EntityManager entityManager = entityManagerFactory.createEntityManager();
        entityManager.getTransaction().begin();
        entityManager.persist(user);
        entityManager.getTransaction().commit();
        entityManager.close();
    }
}

五、Service 层设计

Service 层用于处理业务逻辑,这里我们创建一个名为UserService 的接口,并实现其方法。

import java.util.List;
public interface UserService {
    // 根据用户名查询用户信息
    User findUserByUsername(String username);
    // 添加用户信息
    void addUser(User user);
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImp implements UserService {
    @Autowired
    private UserDAO userDAO;
    @Override
    public User findUserByUsername(String username) {
        return userDAO.findUserByUsername(username);
    }
    @Override
    public void addUser(User user) {
        userDAO.addUser(user);
    }
}

六、Controller 层设计

Controller 层用于处理用户请求,这里我们创建一个名为UserController 的类。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class UserController {
    @Autowired
    private UserService userService;
    // 登录页面
    @GetMapping("/login")
    public String login() {
        return "login";
    }
    // 登录处理
    @PostMapping("/login")
    public String login(@RequestParam("username") String username, @RequestParam("password") String password, Model model) {
        User user = userService.findUserByUsername(username);
        if (user == null ||!user.getPassword().equals(password)) {
            model.addAttribute("error", "用户名或密码错误");
            return "login";
        }
        return "redirect:/home";
    }
    // 注册页面
    @GetMapping("/register")
    public String register() {
        return "register";
    }
    // 注册处理
    @PostMapping("/register")
    public String register(User user, Model model) {
        User existingUser = userService.findUserByUsername(user.getUsername());
        if (existingUser!= null) {
            model.addAttribute("error", "用户名已存在");
            return "register";
        }
        userService.addUser(user);
        return "redirect:/login";
    }
    // 主页
    @GetMapping("/home")
    public String home() {
        return "home";
    }
}

七、视图层设计

视图层用于展示页面,这里我们创建两个 JSP 页面:login.jspregister.jsp

<!DOCTYPE html>
<html>
<head>
    <title>用户登录</title>
</head>
<body>
    <h2>用户登录</h2>
    <form action="/login" method="post">
        <label for="username">用户名:</label><input type="text" id="username" name="username"><br>
        <label for="password">密码:</label><input type="password" id="password" name="password"><br>
        <input type="submit" value="登录">
    </form>
    <c:if test="${not empty error}">
        <p style="color: red;">${error}</p>
    </c:if>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
    <title>用户注册</title>
</head>
<body>
    <h2>用户注册</h2>
    <form action="/register" method="post">
        <label for="username">用户名:</label><input type="text" id="username" name="username"><br>
        <label for="password">密码:</label><input type="password" id="password" name="password"><br>
        <input type="submit" value="注册">
    </form>
    <c:if test="${not empty error}">
        <p style="color: red;">${error}</p>
    </c:if>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
    <title>主页</title>
</head>
<body>
    <h2>欢迎来到主页!</h2>
</body>
</html>

八、测试

1、启动 Tomcat 服务器。

2、在浏览器中访问http://localhost:8080/login,进入登录页面。

3、输入用户名和密码,点击登录按钮。

4、如果用户名和密码正确,将跳转到主页。

5、如果用户名或密码错误,将显示错误信息。

九、总结

本文介绍了如何使用 Java Web 技术实现一个简单的用户登录界面,通过使用数据库、实体类、DAO 层、Service 层和 Controller 层,我们实现了用户信息的存储、查询和验证功能,我们还使用了 JSP 页面来展示页面,通过这个示例,我们可以更好地理解 Java Web 开发的基本流程和技术。

标签: #JavaWeb #用户登录 #登录界面 #代码

黑狐家游戏
  • 评论列表

留言评论