制作选课系统(1)

学生与管理员的登陆界面
一.准备数据库
我用的数据库是Mysql,准备两个表student和manager
在这里插入图片描述
在这里插入图片描述

创建JAVA文件basicLogin.java

package Basic;
import Model.Student;
import java.awt.*;
import java.awt.Color;
import java.awt.event.*;
import java.awt.Image;
import javax.swing.*;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import java.net.URISyntaxException;
import java.sql.ResultSet;
import javax.swing.JOptionPane;
import java.net.URI;
import java.io.IOException;
import java.sql.SQLException;
import javax.swing.JButton;
public class basicLogin implements ActionListener,KeyListener,MouseListener, WindowListener
{
        public static String student_ID;

        JFrame f = new JFrame("登录");

        JButton empty = new JButton("重置");

        JTextField zhanghu = new JTextField("", 10);

        JPasswordField mima = new JPasswordField("", 10);

        JButton log_in = new JButton("登录");

        JButton web_button = new JButton("管理员登录");

        JLabel copyright = new JLabel("Copy Copyright © 2019 All rights reserved.");

        ResultSet rst;

    public  ResultSet Log_in()
    {
        log_in.setBackground(Color.blue);

        empty.setBackground(Color.blue);

        log_in.setBounds(800,250,100,25);

        Panel p=new Panel();

        Panel logPanel=new Panel();

        logPanel.setLayout(null);

        ImageIcon icon =new ImageIcon(".\\pic\\背景1.png");

        icon.setImage(icon.getImage().getScaledInstance(icon.getIconWidth(),
                icon.getIconHeight(), Image.SCALE_DEFAULT));

        JLabel l3=new JLabel();

        JLabel l33=new JLabel("说明:【密码找回】 【解决无法登录问题】");

        l33.setForeground(new Color(0,0,205));

        JLabel l4=new JLabel("1.用户名:(1)教工用户名为职工号或别名,");

        JLabel l44=new JLabel ("如工号有问题请咨询人事处。");

        JLabel l5=new JLabel("(2)学生用户名为学号。2.密码:");

        JLabel l55=new JLabel("(1)首次登录:初始密码为本人身份证号后六位(字母大写)。");

        JLabel l6=new JLabel("(2)学生使用应用门户密码(即选课密码)登陆;");

        JLabel l7=new JLabel("3.服务电话:学生86604835,教师86609104,或QQ");

        l33.setBounds(740,300,400,20);

        l4.setBounds(740,330,400,20);

        l5.setBounds(740,360,400,20);

        l55.setBounds(740,390,400,20);

        l6.setBounds(740,420,400,20);

        web_button.setBounds(0,500,300,15);

        web_button.setBackground(Color.WHITE);

        web_button.addActionListener(this);

        copyright.setBounds(390,500,400,15);

        copyright.setBackground(Color.GRAY);

        l3.setBounds(0, 0, 697, 501);

        l3.setHorizontalAlignment(0);

        l3.setIcon(icon);

        f.setSize(500,500);

        log_in.setForeground(Color.white);

        empty.setForeground(Color.white);

        JLabel l=new JLabel("用户名");

        JLabel l1=new JLabel("密码");

        l.setBounds(800,100,40,25);

        zhanghu.setBounds(850,100,150,25);

        l1.setBounds(805,150,40,25);

        mima.setBounds(850,150,150,25);

        empty.setBounds(920,250,120,25);

        logPanel.add(l);

        logPanel.add(zhanghu);

        logPanel.add(l1);

        logPanel.add(mima);

        logPanel.add(log_in);

        logPanel.add(empty);

        logPanel.add(l3);

        logPanel.add(l33);

        logPanel.add(l4);

        logPanel.add(l44);

        logPanel.add(l5);

        logPanel.add(l55);

        logPanel.add(l6);

        logPanel.add(copyright);

        logPanel.add(web_button);

        f.add(logPanel);

        f.pack();

        f.setVisible(true);

        log_in.addActionListener(this);

        empty.addActionListener(this);

        mima.addMouseListener(this);

        zhanghu.addMouseListener(this);

        f.setBounds(100,100,1100,550);

        f.addWindowListener(this);

        f.setResizable(false);

        return rst;
    }
    @Override
    public void windowActivated(WindowEvent e)
    {
        // TODO Auto-generated method stub
    }

    @Override
    public void windowClosed(WindowEvent e)
    {
        // TODO Auto-generated method stub
    }

    @Override
    public void windowDeactivated(WindowEvent e)
    {
        // TODO Auto-generated method stub
    }

    @Override
    public void windowDeiconified(WindowEvent e)
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void windowIconified(WindowEvent e)
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void windowOpened(WindowEvent e)
    {
        // TODO Auto-generated method stub

    }
    @Override
    public void windowClosing(WindowEvent e)
    {
        // TODO Auto-generated method stub
        System.exit(0);
    }

    @Override
    public void actionPerformed(ActionEvent arg)
    {
        // TODO Auto-generated method stub
        boolean flag=true;

        if(arg.getSource()==web_button)
        {
            Desktop desktop=Desktop.getDesktop();

            try
            {
                desktop.browse(new URI("http://localhost:9000/real_six_war_exploded/loginForm.jsp"));
            }
            catch(URISyntaxException e)
            {
                e.printStackTrace();
            }
            catch(IOException e1)
            {
                e1.printStackTrace();
            }
        }
        if(arg.getSource()==empty)
        {
            zhanghu.setText("");

            mima.setText("");
        }
        else if(arg.getSource()==log_in)
        {
            String s1, s2;

            s1 = zhanghu.getText().toString();

            s2 = mima.getText().toString();

            if (s1.equals("") || s2.equals(""))
            {
                JOptionPane.showMessageDialog(null, "账户或密码不能为空", "出错", JOptionPane.ERROR_MESSAGE);

                zhanghu.setText("");

                mima.setText("");
            }
            else
                {
                try
                {
                    if(Student.login(s1,s2)== Student.SUCCEED)
                    {
                        JOptionPane.showMessageDialog(null, "登录成功");

                        student_ID=s1;

                        HomePage main =  new HomePage();

                        main.SelectMenu();
                    }
                    else
                    {
                        JOptionPane.showMessageDialog(null, "账户和密码不匹配!");
                    }
                }
                catch (SQLException e)
                {
                    e.printStackTrace();
                }
            }
        }

    }
    @Override
    public void mouseClicked(MouseEvent e)
    {
        // TODO Auto-generated method stub
        if(e.getSource()==mima)
        {
            mima.setText(null);
        }
        else if(e.getSource()==zhanghu)
        {
            zhanghu.setText(null);
        }
    }

    @Override
    public void mouseEntered(MouseEvent e)
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void mouseExited(MouseEvent e)
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void mousePressed(MouseEvent arg0)
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void mouseReleased(MouseEvent arg0)
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void keyPressed(KeyEvent e)
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void keyReleased(KeyEvent e)
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void keyTyped(KeyEvent e)
    {
        // TODO Auto-generated method stub
    }

}

创建JAVA文件student.java

package Model;

import java.sql.*;

public class Student
{

    private String studentid;

    public String getStudentid()
    {
        return studentid;
    }

    public String getPassword()
    {
        return password;
    }

    public String getCollege()
    {
        return college;
    }

    public String getName()
    {
        return name;
    }

    public String getSex()
    {
        return sex;
    }

    public String getScore()
    {
        return score;
    }

    private String password;

    private String college;

    private String name;

    private String sex;

    private String score;

    public static final int SUCCEED=0;

    public static final int ID_ERROR=1;

    public static final int PS_ERROR=2;

    private static String url = "jdbc:mysql://localhost:3306/friend?useUnicode=true&characterEncoding=utf-8";

    private static String user = "root";

    private static String root_password = "123456";

    //私有化构造函数,防止别人new本类的实例
    public Student(String studentid,String password,String college, String name,String sex,String score)
    {
      this.studentid=studentid;

      this.password=password;

      this.college=college;

      this.name=name;

      this.sex=sex;

      this.score=score;
    }

    //静态代码块,在类加载的时候执行,而且只执行一次
    static
    {
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
        }
        catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        }
    }

    public static Connection getConn()
    {
        Connection conn = null;
        try
        {
            conn = DriverManager.getConnection(url, user, root_password);
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
        return conn;
    }

    public static void close(ResultSet rs, Statement stm, Connection conn)
    {
        if (rs != null)
        {
            try
            {
                rs.close();
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
        }

        if (stm != null)
        {
            try
            {
                stm.close();
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
        }

        if (conn != null)
        {
            try
            {
                conn.close();
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
        }
    }

    public static int login(String name,String password) throws SQLException
    {

        Connection conn=null;

        Statement stm=null;

        try
        {
            ResultSet rs=null;

            conn = Student.getConn();

            stm = conn.createStatement();

            String sql = "select * from student";

            rs = stm.executeQuery(sql);

            while(rs.next())
            {
                if(name.equals(rs.getString(1)))
                {
                    if(password.equals(rs.getString(2)))
                    {
                        return SUCCEED;
                    }
                    else
                    {
                        return PS_ERROR;
                    }
                }
            }
            return ID_ERROR;
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
        finally
        {
            Student.close(null,stm,conn);
        }

        return SUCCEED;
    }

```创建管理员登陆文件loginForm.jsp
<%@ page import="java.util.Date" %>
<%@ page import="java.io.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body bgcolor="aqua">
<span style="font-size: xx-large; ">管理员</span>
<hr>
<span style="font-size: large; ">用户登录</span>
<%
    String message= (String) request.getAttribute("message");

    if(message!=null)
    {
        out.println(message);
    }
%>
<form name="form2" action="LoginServlet" method="post">

    <table align="center">

        <tr>
            <td>登录名称:<input type="text" name="ID" value=""></td>
        </tr>

        <tr>
            <td>登录密码:<input type="text" name="password" value=""></td>
        </tr>

        <tr>
            <td><input type="submit" name="" value="登录"></td>

            <td><input type="reset" name="" value="重置"></td>

            <td><a href="registerForm.jsp">注册</a>
        </tr>

    </table>
</form>

<hr>
<%
    out.println("系统时间:  "+new Date());
%>
<p><p>

<script>

</script>

</body>
</html>

运行结果
学生登陆界面在这里插入图片描述管理员登陆界面
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值