JavaWeb实现用户登录系统以及管理员登录模式-1

JavaWeb实现用户登录系统以及管理员登录模式-1(未完善)

初步设置一下四个类
1. User
2. UserUI
3. UserListener
4. UserService

User.java

User类主要定义了用户自身的一些属性,例如账号密码之类的

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
public class User {
    private String name;
    private String pwd;
    private int score;
    private String birthday;
    private boolean isLogin;
    public User(String name,String pwd){
        this.name=name;
        this.pwd=pwd;
        this.score=10;
        this.birthday="2000/01/01";
    }
    public String getpwd(){
        return this.pwd;
    }

    public boolean checkPassword(String pwdIn){
        return pwd.equals(pwdIn);//判断输入框中的代码是否正确
    }
    public int login(String pwdIn){
        if(checkPassword(pwdIn)){
            if(isLogin){
                System.out.println("已经登陆过了");
                return 2;
            }
            isLogin=true;
            score+=10;
            System.out.println("登陆成功");
            return 1;
        }else{
            System.out.println("密码错误");
            return 0;
        }
    }
}

UserUI

UserUI就是主函数所在之处,用来展示GUI以及相关交互功能的按钮

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
public class UserUI {
    UserListener ul = new UserListener ();

    public void showLoginUI(){
        // 创建一个窗体 并设置窗体的属性
        JFrame jf = new JFrame ();
        jf.setTitle ("登录界面");
        jf.setSize (400, 500);
        jf.setLocationRelativeTo (null);// 居中显示
        jf.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        jf.setVisible (true);// 显示到屏幕上
        
        FlowLayout fl = new FlowLayout ();// 流式布局
        jf.setLayout (fl);

        // 创建一个图标对象
        ImageIcon icon = new ImageIcon ("C:\\Users\\ASUS\\IdeaProjects\\User\\src\\img.jpg");
        JLabel nameJla = new JLabel ("账号:");
        JLabel pwdJla = new JLabel ("密码:");

        JTextField nameJtf = new JTextField ();
        JPasswordField pwdJpf = new JPasswordField ();
        JLabel iconJla = new JLabel (icon);
        // 设置尺寸
        Dimension dim = new Dimension (320,35);
        nameJtf.setPreferredSize (dim);
        pwdJpf.setPreferredSize (dim);
        JButton loginBtn = new JButton ("登录");
        JButton registerBtn = new JButton ("注册");
        // 添加组件
        jf.add (nameJla);jf.add (nameJtf);
        jf.add (pwdJla);jf.add (pwdJpf);
        jf.add (loginBtn);
        jf.add (registerBtn);
        jf.add (iconJla);
        jf.setVisible (true);// 可视化

        //监听器加载给按钮
        ActionListener listener =ul;
        loginBtn.addActionListener (listener);
        registerBtn.addActionListener (listener);
        // 初始化监听器对象中的输入框对象变量名 为了在监听器中使用
        ul.nameJtf = nameJtf;
        ul.pwdJpf = pwdJpf;
    }

    public static void main(String[] args){
        UserUI ui = new UserUI ();
        ui.showLoginUI ();
    }
}

UserListener

这个类用于鼠标事件的监听,以达到相应功能的目的

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class UserListener implements ActionListener {
    public int loginCode;
    JTextField nameJtf;
    JPasswordField pwdJpf;
    static final UserService userService = new UserService ();
    public void showMainUI(){
        // 创建一个窗体 并设置窗体的属性
        JFrame jf1 = new JFrame ();
        jf1.setTitle ("信息界面");
        jf1.setSize (360, 450);
        jf1.setLocationRelativeTo (null);// 居中显示
        jf1.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
        
        FlowLayout fl1 = new FlowLayout ();// 流式布局
        jf1.setLayout (fl1);
        // 创建一些组件并添加到窗体中
        JLabel infoLabel = new JLabel("欢迎进入信息界面");
        JLabel nameJla1 =new JLabel("昵称:");
        JLabel scoreJla =new JLabel("分数:");
        JLabel birthJla =new JLabel("生日: ");

        JTextField nameJtf1=new JTextField(nameJtf.getText ());//初始化文本框
        JTextField scoreJtf1=new JTextField("10");
        JTextField birthJtf=new JTextField("2000/01/01");
        Dimension dim = new Dimension (310,35);
        infoLabel.setPreferredSize (dim);
        nameJtf1.setPreferredSize(dim);
        nameJtf1.setSelectedTextColor(Color.yellow);
        scoreJtf1.setPreferredSize(dim);
        scoreJtf1.setEditable(false);//分数不可修改
        birthJtf.setPreferredSize(dim);
        JButton saveBtn = new JButton("保存修改");
        JButton backButton = new JButton("返回登录界面");

        jf1.add(infoLabel);
        jf1.add(nameJla1);jf1.add(nameJtf1);
        jf1.add(birthJla);jf1.add(birthJtf);
        jf1.add(scoreJla);jf1.add(scoreJtf1);
        jf1.add(saveBtn);
        jf1.add(backButton);

        jf1.setVisible(true);// 显示到屏幕上
    }
    @Override
    public void actionPerformed(ActionEvent e){
        System.out.println ("点击了按钮");
        String btnAc = e.getActionCommand ();//响应事件的名称
        System.out.println (btnAc);
    // 获取输入框中文本
        String nameIn = nameJtf.getText ();
        String pwdIn = pwdJpf.getText ();
        System.out.println (nameIn + " " + pwdIn);
        if(btnAc.equals ("登录")){
            int loginCode = userService.login (nameIn, pwdIn);
            if(loginCode == 0){
            // 弹窗
                JOptionPane.showMessageDialog (null, "密码错误");
            } else if(loginCode == 1){
                JOptionPane.showMessageDialog (null, "登录成功");

                showMainUI();

            } else if(loginCode == 2){
                JOptionPane.showMessageDialog (null, "已经登录过了");
            } else if(loginCode == 3){
                JOptionPane.showMessageDialog (null, "用户名不存在");
            }
        } else if(btnAc.equals ("注册")){
            boolean rcod = userService.register (nameIn, pwdIn);
            if(rcod){
                JOptionPane.showMessageDialog (null, "注册成功");
            }else{
                JOptionPane.showMessageDialog (null, "用户名已经被注册");
            }
        }

        if(btnAc.equals("返回登录界面")){
            // 清空输入框
            //nameJtf.setText("");
            //pwdJpf.setText("");
            // 关闭当前窗口
            JFrame frame = (JFrame) SwingUtilities.getWindowAncestor(nameJtf);
            frame.dispose();
            // 打开登录界面
//            UserUI ui = new UserUI();
//            ui.showLoginUI();
        }
    }
}

UserService

UserService用于用户登录背后的逻辑判断

import java.util.HashMap;
import java.util.Map;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class UserService {
    HashMap<String,User> userMap=new HashMap<>();
    String filePath="C:\\Users\\ASUS\\IdeaProjects\\User\\src\\record.txt";
    public boolean register(String name,String pwd){
        //先判断是否已经注册过了
        boolean containsKey=userMap.containsKey(name);
        if (containsKey) {
            System.out.println("用户名已经被注册");
            return false;
        }else{
            User user =new User(name,pwd);
            userMap.put(name,user);
            System.out.println("注册成功");

            // 将哈希表中的记录写入文本文件
            try {
                BufferedWriter writer = new BufferedWriter(new FileWriter(filePath,true));
                for (Map.Entry<String, User> entry : userMap.entrySet()) {
                    String line = "账号:"+entry.getKey() + " 密码:" + entry.getValue().getpwd();
                    writer.write(line);
                    writer.newLine(); // 写入换行符
                }
                writer.close();
                System.out.println("Records written to file successfully.");
            } catch (IOException e) {
                System.err.println("Error writing records to file: " + e.getMessage());
            }

            return true;
        }
    }

    public int login(String name,String pwdIn){
        boolean containskey =userMap.containsKey(name);
        if(!containskey){
            System.out.println("用户名不存在");
            return 3;
        }else{
            User user =userMap.get(name);
            int loginCode =user.login(pwdIn);
            return loginCode;
        }
    }

}
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 管理员登录是一个常见的功能,可以通过以下步骤来实现: 1. 创建一个管理员登录页面,包含用户名和密码的输入框以及登录按钮。 2. 创建一个数据库表来存储管理员账号信息,包括用户名和密码。 3. 在后台编写登录验证的代码,将用户输入的用户名和密码与数据库中的账号信息进行比对,验证登录是否成功。 4. 如果登录成功,可以跳转到管理员后台管理页面,否则需要提示用户名或密码错误。 具体实现可以参考以下代码: 1. 创建管理员登录页面: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>管理员登录</title> </head> <body> <form action="login.jsp" method="post"> <label>用户名:</label><input type="text" name="username"><br> <label>密码:</label><input type="password" name="password"><br> <input type="submit" value="登录"> </form> </body> </html> ``` 2. 创建数据库表,例如: ```sql CREATE TABLE admin ( id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, PRIMARY KEY (id) ); ``` 3. 编写登录验证的代码,例如: ```java String username = request.getParameter("username"); String password = request.getParameter("password"); // 查询数据库中是否存在该管理员账号 Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456"); PreparedStatement ps = conn.prepareStatement("SELECT * FROM admin WHERE username=? AND password=?"); ps.setString(1, username); ps.setString(2, password); ResultSet rs = ps.executeQuery(); if (rs.next()) { // 登录成功,跳转到管理员后台管理页面 response.sendRedirect("admin.jsp"); } else { // 登录失败,提示用户名或密码错误 response.getWriter().write("用户名或密码错误!"); } ``` 4. 在后台管理页面进行相应的管理操作,例如: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>管理员后台</title> </head> <body> <h1>管理员后台</h1> <p>欢迎您,管理员!</p> <a href="logout.jsp">退出登录</a> </body> </html> ``` 以上是一个简单的管理员登录功能的实现,可以根据实际需求进行相应的改进和优化。 ### 回答2: 管理员登录是指使用JavaWeb技术实现的一种登录功能,用于管理用户信息和系统设置的权限认证。 首先,需要创建一个管理员用户表格,在表格中存储管理员的用户名和密码等信息。可以使用数据库来存储,例如MySQL。 在前端页面中,设计一个管理员登录界面,该界面应该包含输入框用于输入管理员用户名和密码,同时还有一个登录按钮。 接下来,在后端创建一个Servlet来处理管理员登录的请求。当管理员点击登录按钮后,该Servlet会获取前端页面输入的用户名和密码。 然后,该Servlet会与数据库中的管理员表进行对比,验证输入的用户名和密码是否匹配。如果匹配成功,即用户名和密码正确,那么管理员登录成功,可以跳转到管理员管理页面;如果匹配失败,即用户名和密码不匹配,那么管理员登录失败,可以给出相应的错误提示信息。 管理员登录成功后,可以在管理员管理页面中进行各种操作,例如管理用户信息、发布公告、修改系统设置等等。 为了增加安全性,还可以添加一些额外的功能,例如添加验证码功能,限制登录次数等。并且,在设计时应考虑密码加密存储和传输过程中的安全性问题。 总之,javaweb管理员登录是通过前端页面与后端Servlet的交互,验证管理员的用户名和密码,实现系统关键功能的权限认证。它是管理系统安全性的重要一环。 ### 回答3: 在JavaWeb中,实现管理员登录功能需以下步骤。 1. 创建数据库表:首先要在数据库中创建一张表来存储管理员的相关信息,比如用户名和密码等。 2. 创建登录页面:通过HTML和CSS等技术创建一个登录页面,包括输入用户名和密码的文本框以及登录按钮。 3. 创建Servlet:创建一个Servlet来处理用户的登录请求。在该Servlet中,首先获取用户输入的用户名和密码。然后,可以通过JDBC连接数据库,查询数据库中是否存在该用户名及对应的密码。如果存在,就表示登录成功;如果不存在,就表示登录失败。 4. 验证登录信息:接下来需要对用户输入的用户名和密码进行验证,以确定用户是否输入正确的凭据。这可以通过使用JDBC执行查询语句来实现。 5. 登录状态处理:如果用户名和密码验证成功,则可以在会话(session)中记录一些登录状态信息,例如用户ID等,方便在后续的操作中使用。 6. 跳转到管理页面:登录成功后,可以使用Java的重定向技术将用户导向到管理页面,并在该页面上展示相应的管理功能。 以上是一个简单的javaweb管理员登录功能的实现过程。当然,为了能够有效地保护管理员登录的安全性,还可以采取其他安全措施,例如使用加密算法对密码进行加密存储、导航栏防御等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值