java单点登录的实现

java单点登录的实现
java单点登录的实现

java单点登录的实现

在门户项目中,经常会遇到如何实现单点登录的问题,下面就本人的经验做个总结。欢迎大家进行补充讨论。单点登录的具体实现有很多种选择,包括:

1.采用专门的SSO商业软件:主要有:Netgrity的Siteminder,已经被CA收购。Novell 公

司的iChain。RSA公司的ClearTrust等。

2.采用门户产品供应商自己的SSO产品,如:BEA的WLES,IBM 的Tivoli Access Manager,

Sun 公司的identity Server,Oracle公司的OID等。

3.这些商业软件一般适用于客户对SSO的需求很高,并且企业内部采用COTS软件如:

Domino,SAP,Sieble的系统比较多的情况下采用。并结合身份管理。统一认证等项目采用。

采用这些软件一般都要对要集成的系统做些改造,如在要集成的系统上安装AGENT。

现在一般只提供常见软件如:Domino,SAP,Sieble,常见应用服务器:weblogic,websphere

等的AGENT。要先统一这些系统的认证。一般采用LDAP或数据库。然后才能实现SSO。

比较麻烦。

4.另外,如果不想掏银子,也有OPEN SOURCE的SSO软件可选:主要有:

https://www.360docs.net/doc/5d7437797.html,/ https://https://www.360docs.net/doc/5d7437797.html,/ https://www.360docs.net/doc/5d7437797.html, 等。具体怎么样

就不清楚了。

如果项目对SSO的要求比较低,又不想对要被集成的系统做任何改动,可采用下面介绍的方式简单实现:下面我们通过一个例子来说明。假如一个门户项目要对下面的几个系统做SSO。

用户在这些系统中的用户名,密码各不相同,如:员工号为001的员工在这些系统中的用户名,密码分别如下:

用户系统用户名密码

001Portal系统A1234

001邮件系统B2345

001DOMINO系统C AAAA

001报销系统D CCCC

001工资系统E BBBB

首先,建立员工在PORTAL系统中的用户名和其他系统中的用户名之间的对应关系

首先,要建立员工在PORTAL系统中的用户名和其他系统中的用户名之间的对应关系并保存。可保存在表中或LDAP中或文件系统中。当然要考虑这些系统之间的数据同步问题。比较好的方式是找到用户在这些系统中的都存在的唯一信息(如员工号,MAIL地址,姓名等)。通过唯一信息实时到各个系统中去取认证所需要的信息。就不需要考虑数据同步问题。比较实用。可以建立类似下面的表:密码可采用加密保存。如果是采用BEA的Weblogic Portal,可采用UUP来保存这些信息。

(

user

varchar2(20),

app_name varchar2(20),

architect varchar2(4),

app_company varchar2(50),

app_department varchar2(50),

app_user varchar2(15),

app_passwd varchar2(15),

app_cookie varchar2(30),

form_user varchar2(20),

form_passwd varchar2(20),

app_special varchar2(20)

);

通过IFRAME或超连接方式集成目标系统,并进行SSO

通过IFRAME或超连接方式集成目标系统,并在URL中带上用户名和密码。如集成DOMINO可采用如下方式:

width=" >

或:

Href src=“http:// host1/names.nsf?Login&Username=admin&Password=pass&RedirectTo=/names.nsf”

以上采用的是在HTTP中直接传递明码,为提高安全性,可采用HTTPS来传递用户名和密码。另外采用这种方式被集成的系统必须支持FORM方式认证。J2EE应用,DOMINO等都支持FORM 认证。

这两种方式如果SSO成功,就自动进入目标系统的界面,如果实现会显示目标系统的登录界面。其效果图如下:

这种方式,必须维护对应关系表,如上面的sso_info。更好的方式是提供界面,让最终用户自己维护这种对应关系,可模仿Compoze portlets for lotus的做法,在用户第一次进入要与之做SSO的系统时,如DOMINO系统,显示一个界面,让用户自己输入他在该系统中的用户名/密码等信息。并保存到表中或LDAP等其他数据源中。以后用户要进入这些系统时,就直接从表中或其他数据源中取用户的用户名/密码等信息,帮助用户做认证。建议采用这种方式。如下图所示。如果用户改变了自己在DOMINO系统中的用户名,密码。从门户系统进入DOMINO系统时,认证会失败,就重新显示类似下面的界面。让用户重新输入他在DOMINO系统中新的用户名,密码并保存。

以上这种实现方式,一般需要浏览器支持COOKIE,所以要注意浏览器的配置,在开发阶段,为方便调试,可设置IE,让它显示COOKIE的名称。如下所示:

采用这种方式,对要集成的系统不需要做任何的改动。如果PORTAL系统中的用户在被集成的系统中的权限都一样,可采用建立一个通用用户的做法。也就是所有在PORTAL系统中的用户都采用这个通用用户进入目标系统。这种方式等于是采用页面集成方式做集成。比较方便使用。另外,有时候需要采用调用API,或配置Adapter等应用集成方式来集成其他系统,一般也是通过定义一个连接专用的用户。在API中或在配置Adapter的时候写死。如采用JA V A API方式集成DOMINO:lotus.domino.Session dominoSession = NotesFactory.createSession(dominoServer, “admin”, “password”);

CS结构实现方式

经常有人问CS结构的应用如何实现SSO,本人的建议是对这种系统不要自己去实现SSO。很麻烦,其实输个用户名,密码没什么大不了的。如果要实现,一是采用商业软件。另外也可以采用以下方式:在PORTAL的PORTLET上建立超连接。并通过APPLET方式启动CS结构的应用系统的登录界面。然后通过如下的方式把用户名/密码传递过去。

-不能做任何改动的客户端- WIN消息(给登录窗口发送用户名,密码等登录所需要的信息),模拟键盘(java有模拟键盘输入的API)

-可以做改动的客户端- 参数传递,并让登录的EXE文件读取参数进行认证。

因为要让APPLET执行本地的EXE文件,所以必须对IE中的JRE的安全进行设置。

其他:

在采用以上方式实现了SSO后,要注意LOGOUT,可采用与LOGIN相同的方式。也可以通过被集成系统的超时设置来实现。

单点登录SSO技术资料收集

?统一用户认证和单点登录解决方案: 计算机世界网上的文章,比较全面的介绍统一用户认证和单点登录解决方案

?惠普灵动单点登录(SSO)解决方案: 包括C/S结构的系统单点登录解决方案

?网站用户单点登录系统解决方案: 通过令牌方式实现网站用户单点登录

?WebLogic平台的Web SSO(SAML)解决方案: 在WebLogic 8.1SP4中,提供了用于和Microsoft Windows客户端进行SSO的Single Pass Negotiate Identity Assertion Provider。

本文对其做了详细的介绍。

?https://www.360docs.net/doc/5d7437797.html,/index.php?blogId=4: 收录了一些SSO方面的文章

?应用整合中SSO的技术实现: 作者介绍了南京地税进行应用整合SSO的技术实现方案

JAVA语言登陆界面设计

登陆界面设计 程序: import javax.swing.*; import java.awt.*; public class登陆界面设计extends JFrame{ public登陆界面设计(){ //构造方法名称要与类名称一致this.setTitle("学生系统登陆界面"); this.setForeground(Color.blue); this.setBounds(200, 200, 400, 400); this.setDefaultCloseOperation(EXIT_ON_CLOSE); JLabel labname=new JLabel("登陆名:"); JLabel labpassed=new JLabel("登陆密码:"); JTextField tex1=new JTextField(""); JTextField tex2=new JTextField(""); JButton bun1=new JButton("登陆"); JButton bun2=new JButton("退出"); JPanel panel =(JPanel) this.getContentPane(); panel.setLayout(null); panel.setBackground(Color.green); panel.add(labname); labname.setBounds(100, 60, 100, 30); // labname.setForeground(Color.red); labname.setFont(new Font(null,Font.ITALIC,20)); panel.add(tex1); tex1.setBounds(200, 60, 100, 30); // tex1.setForeground(Color.red); tex1.setFont(new Font(null,Font.ITALIC,20)); panel.add(labpassed); labpassed.setBounds(100, 120, 100, 30); // labpassed.setForeground(Color.red); labpassed.setFont(new Font(null,Font.ITALIC,20)); panel.add(tex2); tex2.setBounds(200, 120, 100, 30); // tex2.setForeground(Color.red); tex2.setFont(new Font(null,Font.ITALIC,20)); panel.add(bun1); bun1.setBounds(100, 180, 100, 50); bun1.setForeground(Color.red); bun1.setFont(new Font(null,Font.ITALIC,20)); panel.add(bun2);

java 学生信息管理登陆界面

package登陆界面; import java.awt.*; import java.awt.event.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.*; import主窗体.MainFrame; import https://www.360docs.net/doc/5d7437797.html,monaJdbc; public class Landing_interface extends JFrame implements ActionListener{ public static String str; JFrame jf=new JFrame("登录系统"); JPanel p1=new JPanel(); JPanel p2=new JPanel(); JPanel p3=new JPanel(); JPanel p4=new JPanel(); JPanel p5=new JPanel(); JPanel p6=new JPanel(); JPanel p7=new JPanel(); String username; static String passwd; JLabel name=new JLabel("用户名:"); static JTextField nametext=new JTextField(10); JLabel pwd=new JLabel("密码:"); JPasswordField password=new JPasswordField(10); JButton login=new JButton(""); public Landing_interface(){

QQ登录界面java代码(优选.)

最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改 赠人玫瑰,手留余香。 package denglu; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.*; public class Dl extends JFrame{ private static final long serialVersionUID = 1L; Font f1=new Font("宋体", Font.PLAIN, 14); JLabel lb1,lb2,lb3,lb4; JButton b1,b2,b3; JComboBox cb; JTextField tf; JTextField pw; public void CreateJFrame(String title) { JFrame jf = new JFrame(title); Container container = jf.getContentPane(); lb1=new JLabel(new ImageIcon("image/tou.gif")); lb2=new JLabel(new ImageIcon("image/qqtou.gif"));

jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String args[]) { // 在主方法中调用createJFrame()方法 new Dl().CreateJFrame("QQ登陆界面"); } } jp=new JPanel(); jp.setLayout(null); jp_jlb1=new JLabel(new ImageIcon("image/qqtou.gif")); jp_jlb1.setBounds(18, 10, 85, 85); //设置标签位置前提是要空布局 jp_jtf=new JTextField("QQ号码/手机/邮箱"); jp_jtf.setForeground(Color.LIGHT_GRAY);//设置颜色 jp_jtf.addMouseListener(this); jp_jtf.setBounds(118, 11, 170, 25); jp_pw=new TextField("密码",24); jp_pw.setForeground(Color.LIGHT_GRAY); jp_pw.addMouseListener(this); jp_pw.setBounds(118, 45, 170, 24);

基于java的图书管理系统登录界面

package library; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import https://www.360docs.net/doc/5d7437797.html,.PasswordAuthentication; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.AbstractButton; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JRadioButton; import javax.swing.JTextField; public class login extends JFrame implements ActionListener { private JTextField namefield; private JTextField numfield; private JButton button; private String number; private AbstractButton button1; private JComboBox box; public login() { init(); } private void init() { setDefaultCloseOperation(EXIT_ON_CLOSE); setBounds(200, 200, 450, 400); setResizable(false); setLayout(null); setTitle("登录界面");

java登录窗口代码

import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class text extends JFrame { /** * @param args */ public String str="左自强"; public String strc="1234567"; protected JButton a=new JButton("注册"); protected JButton b=new JButton("登录"); protected JPanel bb=new JPanel(); protected JLabel aa=new JLabel(" 如果你是新用户请先注册帐号"); text() { setLayout(new GridLayout(3,1)); bb.setLayout(new FlowLayout()); bb.add(a); bb.add(b); add(aa); add(bb); b.addActionListener(new ActionListener()//创建事件监听器 { @Override public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub System.out.print("zuoziqiang"); loade jf=new loade(); jf.pack();

Java--登陆注册系统(模仿qq登陆界面)

Java--登陆注册系统(数据库) import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; public class DengLu extends JFrame implements ActionListener,KeyListener,ItemListener,FocusListener{ JLabel top,bott; JComboBox combobox; JPasswordField password; JButton b_login,b_regedit; JPanel panelMain,panel_center; public DengLu (){ super("登陆系统"); panelMain = new JPanel(new BorderLayout(10, 10)){ public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D)g; super.paintComponent(g); Image img = Toolkit.getDefaultToolkit().getImage("G:\\image\\Denglubg.jpg"); g2.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this); } }; top = new JLabel (); top.setPreferredSize(new Dimension(this.getWidth(),30)); bott = new JLabel (); bott.setForeground(Color.white); bott.setPreferredSize(new Dimension(this.getWidth(),25)); centerBuild(); additem(); panelMain.add(top,BorderLayout.NORTH); panelMain.add(bott,BorderLayout.SOUTH); panelMain.add(panel_center,BorderLayout.CENTER); combobox.addItemListener(this);

javaWeb项目实现简单的登录注册

JavaWeb项目实现登录注册 一. 电脑,eclipse,tomcat,mysql数据库 数据库连接架包 二.项目开始 1.打开eclipse创建一个新的JavaWeb项目,将下载的数据库连接架包放到WebContent 目录下的WEB-INFO中的lib下,右键加入构建路劲。 2.在WebContent下新建一个login.jsp的登录页面 代码如下: <%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String path = request.getContextPath();//获取项目名String basePath = request.getScheme() + "://" + request.getServerName() + ":"+ request.getServerPort() + path + "/"; //项目的绝对路径

%> 登录页面

登录页面

${message}

Java qq登陆界面

以下是效果截图: 素材: 以下是源代码: import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.*; public class QqClientLogin2 extends JFrame implements MouseListener{ //北部区域标签,放图片QQ2012 JLabel jlb;

//中部区域 JPanel jp; JComboBox cb;//组合框设置状态用的 JLabel jp_jlb1,jp_jlb3,jp_jlb4; //标签"注册账号""找回密码" JTextField jp_jtf; // QQ号码/手机/邮箱 JTextField jp_jtf; // QQ号码/手机/邮箱 TextField jp_pw; //密码 JCheckBox jp_jcb1,jp_jcb2;//复选框设置"记住密码""自动登录" Font f1=new Font("宋体", Font.PLAIN, 14); //设置字体 JButton jp_jb1,jp_jb2,jp_jb3;//按钮设置登陆等 public static void main(String[] args) { QqClientLogin2 acl=new QqClientLogin2(); } public QqClientLogin2() { jlb=new JLabel(new ImageIcon("image/tou.gif")); //图片路径可要根据你放置的位置修改不然显示不出来若是和文件放同一个地方则image/ 可以去掉 jp=new JPanel(); jp.setLayout(null); jp_jlb1=new JLabel(new ImageIcon("image/qqtou.gif")); jp_jlb1.setBounds(18, 10, 85, 85); //设置标签位置前提是要空布局 jp_jtf=new JTextField("QQ号码/手机/邮箱"); jp_jtf.setForeground(Color.LIGHT_GRAY);//设置颜色 jp_jtf.addMouseListener(this); jp_jtf.setBounds(118, 11, 170, 25); jp_pw=new TextField("密码",24); jp_pw.setForeground(Color.LIGHT_GRAY); jp_pw.addMouseListener(this); jp_pw.setBounds(118, 45, 170, 24); jp_jlb3=new JLabel("注册账号"); jp_jlb3.setFont(f1); jp_jlb3.setForeground(Color.BLUE); jp_jlb3.setBounds(300, 10, 70, 25); jp_jlb4=new JLabel("找回密码"); jp_jlb4.setFont(f1);//设置"找回密码"字体 jp_jlb4.setForeground(Color.BLUE); //设置"找回密码"字体颜色 jp_jlb4.setBounds(300, 43, 70, 25); String[] s={"在线","隐身","忙碌","离线"}; //设置状态

java 登录界面

实验2 1、数据库及表 数据库名:haier。 数据表:数据表名为“userdetail”,表中有五个字段:username (用户名)、userpass(密码)、role(权限)、regtime(注册时间)、lognum(登陆次数)。其中username为主键,userpass非空。Role 的默认值为0,lognum的默认值为0。 2、注册页面 存放位置:存放在WebContent根目录中。 Action=:“RegistServlet”。 Web.xml 中的servlet-mapping中的:“/RegistServlet”。 3 数据库操作类 类名:“DBOper”。 包:“com.haiersoft.db”。 方法:有4个方法分别为获取数据库连接、关闭数据库、查询数据、更新数据。 4 Web.xml的配置 在Web.xml配置文件中,配置了4个初始参数,分别是连接数据库时用到的服务器地址、数据库名、用户以及密码信息。 5 RegisterServlet类 获取表单的数据:获取表单的用户名和密码。

获取Web.xml中的初始化参数:通过ServletContext获得。 连接数据库的方法:用getConn()连接数据库。 插入数据的方法:调用DBOper类中的executeUpdate()方法将新用户信息插入到数据库。 实践2.G.2 1 登陆界面 文件名:index.html 存放路径:在WebContent根目录下。 Action=:“LoginServlet”。 Web.xml中的servlet-mapping中的:“/LoginServlet”。 2 LoginServlet 文件存放的包:com.haiersoft.servlet。 获取表单的数据:使用request.getParameter()获取表单参数信息。 获取session:用request.getSession()获取session。 将session存入cookie:使用session中的setAttribute()方法保存数据。 3 MainServlet 包:com.haiersoft.servlet。 如何获取session:用request.getSession()获取session。 如何访问url:打开IE,在地址栏中输入http://localhost:

java登录界面

Java图形界面用户登陆界面 班级:15级计科2班 姓名:刘宗华 学号:20150521242

一、登录界面 package qq; import java.awt.Image; import java.util.EventObject; import java.awt.*; import java.awt.event.*; import java.awt.event.ActionListener; import javax.imageio.ImageIO; import javax.swing.*; import java.io.File; import javax.swing.JFrame; import java.awt.image.BufferedImage; publicclass jiemian extends JFrame{ JButton qr=new JButton("确认"); JButton qx=new JButton("取消"); JTextField s1=new JTextField(10); JTextField s2=new JTextField(10); publicstaticvoid main(String[] args) {

// TODO Auto-generated method stub jiemian jiemian=new jiemian(); jiemian.setTitle("登录界面"); jiemian.setSize(400, 300); jiemian.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jiemian.setVisible(true); //背景图片 ImageIcon bg=new ImageIcon("D:\\p.jpg"); JLabel label=new JLabel(bg); label.setBounds(0,0,bg.getIconWidth(),bg.getIconHeight()); jiemian.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE)); JPanel jp=(JPanel)jiemian.getContentPane(); jp.setOpaque(false); } public jiemian() { //创建组件 qr.setForeground(Color.RED); qx.setForeground(Color.RED); JLabel yhm=new JLabel("用户名:"); JLabel mm=new JLabel("密码:"); yhm.setForeground(Color.RED); mm.setForeground(Color.RED); //面板 JPanel a1=new JPanel(); JPanel a2=new JPanel(); JPanel a3=new JPanel(); a1.setOpaque(false); a2.setOpaque(false); a3.setOpaque(false); //getContentPane().add(a1); //getContentPane().add(a2); //getContentPane().add(a3); //设置布局 GridLayout x=new GridLayout(3,2); setLayout(x);//三行两列

java管理员登陆界面

import java.awt.*; import java.awt.event.*; public class glydenglu extends Frame implements ActionListener { Label username=new Label("管理员姓名:");//使用文本创建一个用户名标签 TextField t1=new TextField();//创建一个文本框对象 Label password=new Label("密码:");//创建一个密码标签 TextField t2=new TextField(); Button b1=new Button("登陆");//创建登陆按钮 Button b2=new Button("取消");//创建取消按钮 public glydenglu() { this.setTitle("管理员登陆窗口");//设置窗口标题 this.setLayout(null);//设置窗口布局管理器 username.setBounds(50,40,60,20);//设置姓名标签的初始位置 this.add(username);// 将姓名标签组件添加到容器 t1.setBounds(120,40,80,20);// 设置文本框的初始位置 this.add(t1);// 将文本框组件添加到容器 password.setBounds(50,100,60,20);//密码标签的初始位置 this.add(password);//将密码标签组件添加到容器 t2.setBounds(120,100,80,20);//设置密码标签的初始位置 this.add(t2);//将密码标签组件添加到容器 b1.setBounds(50,150,60,20);//设置登陆按钮的初始位置 this.add(b1);//将登陆按钮组件添加到容器 b2.setBounds(120,150,60,20);//设置取消按钮的初始位置 this.add(b2);// 将取消按钮组件添加到容器 b1.addActionListener(this);//给登陆按钮添加监听器 b2.addActionListener(this);// 给取消按钮添加监听器 this.setVisible(true);//设置窗口的可见性 this.setSize(300,200);//设置窗口的大小 addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });//通过内部类重写关闭窗体的方法 } public void actionPerformed(ActionEvent e) { if(e.getSource()==b1)//处理登陆事件 { String username=t1.getText(); String password=t2.getText(); if(username.equals("laoshi")&&password.equals("123456")) {new guanliyuan();} } }

java编写的登录界面连接SQL Server2008问题

import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPasswordField; import javax.swing.JTextField; import com.microsoft.sqlserver.jdbc.SQLServerConnection; public class LoginForm extends JFrame { /** * Launch the application * @param args */ public static void main(String args[]) { EventQueue.invokeLater(new Runnable() { public void run() { try { LoginForm frame = new LoginForm(); frame.setV isible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame */ public LoginForm() { super(); getContentPane().setLayout(null);

注册页面连接数据库 java

这是我自己做的一个管理系统的登录界面,代码虽然有点繁琐,不过简单易懂,你根据自己的需要进行修改吧。 import java.awt.Dimension; import java.awt.GridLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JDialog; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; /** * * @author mzhe * */ class Loginfrm extends JDialog implements ActionListener { JLabel l_name,l_pass,l_error; JTextField t_name; JButton b_enter,b_cancle,b_clear; JPanel pan1,pan2,pan3,pan4; JPasswordField t_pass; String sname,spass; int sunit; NetConn sql; Statement sqll; ResultSet rs; Librarybox lbox; int until=0;

用JAVA编写一个用户登陆界面,用户验证通过数据库实现

这是我以前写的系统登录框的login package java1; import java.awt.*; import java.awt.event.*; import java.sql.*; import java.util.*; import javax.swing.*; import javax.swing.event.*; import java.awt.Rectangle; import java.awt.Font; public class login extends JFrame { public login() { try { jbInit(); } catch (Exception ex) { ex.printStackTrace(); } } public static void main(String[] args) { login frm=new login(); frm.setBounds(300,200,300,260); frm.setVisible(true); } private void jbInit() throws Exception { this.getContentPane().setLayout(null); jLabel1.setForeground(Color.red); jLabel1.setText("用户名"); jLabel1.setBounds(new Rectangle(25, 72, 68, 29)); jButton2.setBounds(new Rectangle(142, 159, 81, 30)); jButton2.setText("取消"); jButton2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jButton2_actionPerformed(e); } }); jButton1.setBounds(new Rectangle(38, 159, 81, 29)); jButton1.setText("确定"); jButton1.addActionListener(new ActionListener() {

JAVA连接数据库的登陆框,登陆界面

package a; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.*; public class ha extends JFrame { private Connection conn=null; private Statement stmt=null; private ResultSet rs=null; private final String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=students"; private final String USER="sa"; private final String PASSWORD="sa"; public ha() { try { jbInit(); } catch (Exception ex) { ex.printStackTrace(); } } public static void main(String[] args) { ha javalogin=new ha(); } private void jbInit() throws Exception { this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); this.getContentPane().setLayout(null); jButton1.setBounds(new Rectangle(42, 167, 128, 45)); jButton1.setText("登陆"); jButton1.addActionListener(new ha_jButton1_actionAdapter(this)); JUser.setBounds(new Rectangle(129, 36, 223, 25)); jLabel2.setText("密码:"); jLabel2.setBounds(new Rectangle(58, 78, 37, 51)); jLabel1.setText("用户名:"); jLabel1.setBounds(new Rectangle(48, 27, 46, 36)); jLabel3.setFont(new java.awt.Font("黑体", Font.PLAIN, 12)); jLabel3.setForeground(Color.red); jLabel3.setText("数据库用户登陆初始状态:用户名:han密码:110 "); jLabel3.setBounds(new Rectangle(13, 229, 387, 40)); JPass.setBounds(new Rectangle(128, 90, 223, 29));

用户登录与输入密码java程序

如果输入的用户名和密码正确,还需要判断用户是否是管理员和普通会员,如果是普通会员,进入管理员界面,否则进入普通用户界面。额外:输入用户名时先判断用户名是否正确,正确则提示输入密码,不存在则提示用户名不存在;密码正确进入管理员界面或者普通用户界面,密码错误超过5次以上提示休息30s在输入密码。 public static void main(String[] args) { // 设置用户名和密码 String userName = "yangweili"; String userPassword = "12345678"; // 设置用户的身份 String rule = "管理员"; Scanner input = new Scanner(System.in); for (int i = 1; i <= 100; i++) { System.out.println("请输入用户名:"); String user1 = input.next(); if (user1.equals(userName)) { System.out.println("请输入用户密码:"); for (int j = 1; j <= 5; j++) { String password = input.next(); if (userPassword.equals(password)) { System.out.print("请输入用户身份\n1.管理员\t2.普通会员\n请输入编号"); String no = input.next(); String rule1=""; switch(no){ case"1": rule1="管理员"; break; case"2":rule1="普通会员"; break; } if(rule1.equals(rule)){ System.out.println("用户登陆成功,并进入管理员界面"); }else{ System.out.println("用户登陆成功,进入普通会员界面"); } } else { System.out.println("密码输入错误,请重新第"+j+"输入:");

Java编写的登陆界面

import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class Boy extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; JPanel p; JButton a; JButton b; JLabel u; JLabel m; JLabel se; JLabel t; JLabel shfen; JComboBox kuang3; ImageIcon tu; JTextField kuang1; JPasswordField kuang2; String role[] = { "管理员", "其他" }; public Boy() { se = new JLabel("商品销售管理系统"); se.setBounds(115, 20, 420, 50); se.setFont(new Font("楷体", Font.BOLD, 20)); se.setForeground(Color.blue); u = new JLabel("用户名 :"); u.setFont(new Font("楷体", Font.BOLD, 15)); u.setForeground(Color.blue); m = new JLabel("密码 : "); m.setFont(new Font("楷体", Font.BOLD, 15)); m.setForeground(Color.blue); shfen = new JLabel("身份 :"); shfen.setFont(new Font("楷体", Font.BOLD, 15));//设置字体 shfen.setForeground(Color.blue); shfen.setBounds(130, 200, 100, 50); kuang3 = new JComboBox(role); kuang3.setForeground(Color.blue);

相关主题
相关文档
最新文档