新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
不要复杂化,代码要简单化,需求是什么就写什么。参考如下:
创新互联建站专业为企业提供轵城网站建设、轵城做网站、轵城网站设计、轵城网站制作等企业网站建设、网页设计与制作、轵城企业网站模板建站服务,10多年轵城做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
//用于保存用户帐户信息的数组
Scanner scanner = new Scanner(System.in);
String[] user = new String[2];
while (true) {
//银行主界面
System.out.println("------------------------------欢迎来到银行------------------------------");
System.out.println("请选择编号:\n1:注册\n2:登录\n3退出");
int num = scanner.nextInt();
switch (num) {
case 1:
//注册
System.out.println("请输入您的账户名:");
String name = scanner.next();
user[0] = name;
System.out.println("请输入您的密码:");
String password = scanner.next();
user[1] = password;
System.out.println("注册成功!");
//返回主界面
break;
case 2:
while (true) {
//登录
System.out.println("请输入您的帐户名:");
String userName = scanner.next();
System.out.println("请输入您的密码:");
String userPwd = scanner.next();
//判断输入的用户名是否在数组中存在(判断该用户是否注册)
if(user[0].equals(userName)user[1].equals(userPwd)){
System.out.println("-----------登录成功,请选择您要办理的业务------------");
break;
}else{
System.out.println("-----------用户名或密码错误,请重新输入------------");//返回到登录界面
continue;
}
}
break;
case 3:
//退出系统 程序结束
System.out.println("退出成功,欢迎再次使用");
System.exit(0);
break;
default:
break;
}
}
; 我不得不使用好几个系统 都是B/S结构的 每次登录都需要输入用户名和密码 觉得非常麻烦 考虑到其他同事也会有这样的需求 不妨就写个自动登录的程序吧 之前 也考虑过使用单点登录 几经尝试之后还是放弃了 我习惯使用Java 本能地开始寻找Java的解决方法 在Google中输入 Java自动登录 Java网页模拟登录 JavaPost登录 结果倒是不少 内容也差不多 我尝试很多次终究也没有达到我预期的目标 后来 我都不知道这些代码应该在jsp页面中执行还是在c/s结构的程序中执行 但这些代码确实管用 我们先分析一下代码 Stringsurl= ; URLurl=newURL(surl) URLConnectionconn=url openConnection() conn setDoOutput(true) OutputStreamWriterout=newOutputStreamWriter(conn getOutputStream()) Stringstr= username=yournamepassword= ; out write(str) out flush() out close() 到这里 如果在C/S结构中 且参数正确 程序能够成功登录到这个oa系统 要看到结果 你可以通过下面的代码将系统服务器返回的结果System out println()出来 Stringsling= ; Stringscontent= ; BufferedReaderin=newBufferedReader(newInputStreamReader(conn getInputStream() UTF )) while((sling=in readLine())!=null) scontent+=in+ \r\n ; System out println(scontent) 在C/S结构下 可以到得到控制台输出了返回值 从返回内容里可以看出程序已经成功登录 但要是把这个网址浏览器打开 还是得重新登录 问题没有得到根本解决 如果只是恶意注册 到这里应该就达到目的了 看样子C/S结构下不容易实现网页程序自动登录 除非你在C/S程序中内嵌一个浏览器 直接在这个浏览器中自动访问系统 应该没有别的方法 主要问题在于我们没有办法共享Session 为了便于共享Session 我们只能在浏览器中实现网页自动登录 通过上面的代码在jsp页面中测试 达不到预期目标 网页自动登录 就是希望程序自动填充用户名和密码 然后以Post方式提交给登录页面的Form所指向的action页面或方法 我将系统的登录页面的源代码保存成一个网页 然后在username和password文本框中设置默认值 然后通过这网页登录系统 测试后 发现可行 接下来 你可能已经想到了解决方法 我们可以通过url openConnection()建立连接 将返回的scontent打印出来 然后接着打印以下代码 out println( \r\n ) out println( document getElementsByName(\ username\ )[ ] value=yourname;\r\n ) out println( document getElementsByName(\ password\ )[ ] value= ;\r\n ) out println( document forms[ ] submit() \r\n ) out println( \r\n ) 原理很简单 通过login jsp将登录页面的全部源代码写在当前页面 然后使用javascript脚本将用户名和密码的值填充上 最后提交表单 这样中 终于实现了自动登录的目标 现在我通过一个特殊的网址 就可以自动访问这个oa了 你可能注意到参数url 他的值是经过加密的 内容是用户名和密码 当然 你也可以加上有效期 即在有效期内这个链接才是有效的 才可以实现自动登录 lishixinzhi/Article/program/Java/hx/201311/26114
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;import javax.swing.*;public class Login extends JFrame{
JLabel user,passwd;
JTextField userput;
JPasswordField passput;
JButton denglu,tuichu;
public Login(){
super("用户登录");
Container c=getContentPane();
c.setLayout(null);
Font f=new Font("宋体",Font.PLAIN,12);
user=new JLabel("账号");
passwd=new JLabel("密码");
userput=new JTextField();
passput=new JPasswordField();
denglu=new JButton("登录");
denglu.setFont(f);
denglu.addActionListener(new NewAction());
tuichu=new JButton("退出");
tuichu.setFont(f);
tuichu.addActionListener(new NewAction());
user.setBounds(50,50,60,20);
userput.setBounds(110,50,150,20);
passwd.setBounds(50,80,60,20);
passput.setBounds(110,80,150,20);
denglu.setBounds(50,160,60,30);
tuichu.setBounds(200,160,60,30);
c.add(user);
c.add(userput);
c.add(passwd);
c.add(passput);
c.add(denglu);
c.add(tuichu);
setSize(350, 300);
setVisible(true);
}
class NewAction implements ActionListener{
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=CDM";
String user="sa";
String passwd="394513265";
java.sql.Connection con;
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con= DriverManager.getConnection(url,user,passwd);
}catch(Exception ep){
JOptionPane.showMessageDialog(null, "加载驱动失败!");
}
if(e.getSource()==denglu){
Find();
}
if(e.getSource()==tuichu){
dispose();
}
} public void Find(){
String lk="select * from login";
try{
Statement sql=con.createStatement();
ResultSet rs=sql.executeQuery(lk);
while(rs.next()){
if(rs.getString(1).equals(userput.getText()) rs.getString(2).equals(passput.getText()))
new MainClient();
else
JOptionPane.showMessageDialog(null, "用户名或密码错误");
}
rs.close();
}catch(SQLException p){
JOptionPane.showMessageDialog(null, p.getMessage());
}
}
}
public static void main(String[] args) {
Login l=new Login();
l.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
步骤就是建个工程 然后建个class