问:下面是我的代码:
导入java.rmi。*;
导入java.rmi.server。*;
导入java.net。*;
导入java.io. *;
导入javax.swing。*;
导入java.awt.event。*;
导入java.lang。*;
导入java.awt。*;
导入javax.swing.filechooser.FileSystemView;
导入java.util.StringTokenizer;
导入java.net.InetAddress;
导入java.rmi.Naming;
导入java.util.Date;
导入java.util.Vector;
导入java.util.Random;
公共类Login扩展javax.swing.JFrame {
// String honey =“ 127.0.0.1”;
RMISIntf参考;
JOptionPane op;
向量v =新向量(2);
字符串sss = null;
静态字符串用户名;
/ **创建新表单登录* /
公共Login(){
initComponents();
}
private void initComponents(){
// GEN-BEGIN:initComponents
jPan = new javax.swing.JPanel();
jLabel1 =新的javax.swing.JLabel();
用户=新的javax.swing.JTextField();
jLabel2 =新的javax.swing.JLabel();
提交=新的javax.swing.JButton();
reset =新的javax.swing.JButton();
exit =新的javax.swing.JButton();
通过= new javax.swing.JPasswordField();
jLabel3 = new javax.swing.JLabel();
op = new JOptionPane();
getContentPane()。setLayout(null);
jPanel1 = new javax.swing.JPanel();
listres = new javax.swing.JList();
jLab = new javax.swing.JLabel();
下载= new javax.swing.JButton();
resArea =新的TextArea();
保存=新的javax.swing.JButton();
getContentPane()。setLayout(null);
addWindowListener(new java.awt.event.WindowAdapter(){
public void windowClosing(java.awt.event.WindowEvent evt){
exitForm(evt);
}
});
jPan.setLayout(null);
jPan.setBackground(new java.awt.Color(0,116,232));
jPan.setBorder(new javax.swing.border.EtchedBorder());
jLab.setFont(new java.awt.Font(“ Arial”,0,14));
jLab.setForeground(new java.awt.Color(255,255,255));
jLab.setText(“ User ID:”);
jPan.add(jLab);
jLab.setBounds(40,40,90,30);
jPan.add(用户);
user.setBounds(140,40,100,30);
jLabel2.setFont(new java.awt.Font(“ Arial”,0,14));
jLabel2.setForeground(new java.awt.Color(255,255,255));
jLabel2.setText(“ Password:”);
jPan.add(jLabel2);
jLabel2.setBounds(40,90,90,30);
Submit.setBackground(new java.awt.Color(255,255,255));
Submit.setFont(new java.awt.Font(“ Arial”,0,14));
Submit.setForeground(new java.awt.Color(0,0,0));
Submit.setText(“ Submit”);
Submit.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
SubmitActionPerformed(evt);
}
});
jPan.add(submit);
Submit.setBounds(20,150,80,27);
reset.setBackground(new java.awt.Color(255,255,255));
reset.setFont(new java.awt.Font(“ Arial”,0,14));
reset.setForeground(new java.awt.Color(0,0,0));
reset.setLabel(“ Reset”);
reset.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
resetActionPerformed(evt);
}
});
jPan.add(reset);
reset.setBounds(120,150,80,27);
exit.setBackground(new java.awt.Color(255,255,255));
exit.setFont(new java.awt.Font(“ Arial”,0,14));
exit.setForeground(new java.awt.Color(0,0,0));
exit.setLabel(“ Exit”);
exit.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
exitActionPerformed(evt);
}
});
jPan.add(exit);
exit.setBounds(220,150,70,27);
jPan.add(pass);
pass.setBounds(140,91,100,30);
getContentPane()。add(jPan);
jPan.setBounds(60,100,320,200);
jLabel3.setFont(new java.awt.Font(“ Arial”,0,20));
jLabel3.setForeground(new java.awt.Color(255,0,0));
jLabel3.setText(“确保云计算中的数据存储安全”);
getContentPane()。add(jLabel3);
jLabel3.setBounds(200,10,700,30);
JLabel imageLabel =新的JLabel();
ImageIcon ii =新的ImageIcon(LoginDialog.class.getResource(“ images / network.JPG”));
imageLabel.setIcon(ii);
imageLabel.setBounds(400,50,481,241);
imageLabel.setBackground(new Color(0,116,232));
this.getContentPane()。add(imageLabel);
包();
jPanel1.setLayout(null);
jPanel1.setBackground(new java.awt.Color(0,116,232));
jPanel1.setBorder(new javax.swing.border.EtchedBorder());
listres.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED));
jPanel1.add(listres);
listres.setBounds(20,50,150,220);
jLabel1.setFont(new java.awt.Font(“ Arial”,0,17));
jLabel1.setForeground(new java.awt.Color(255,255,255));
jLabel1.setText(“可用资源:”);
jPanel1.add(jLabel1);
jLabel1.setBounds(20,5,200,40);
download.setBackground(new java.awt.Color(255,255,255));
download.setFont(new java.awt.Font(“ Arial”,0,15));
download.setForeground(new java.awt.Color(0,0,0));
download.setText(“ Download”);
download.addActionListener(新java.awt.event.ActionListener(){
公共无效的actionPerformed(java.awt.event.ActionEvent中EVT){
downloadActionPerformed(EVT);
}
});
jPanel1.add(下载);
download.setBounds(180,60,110,27);
getContentPane()。add(jPanel1);
jPanel1.setBounds(20,40,340,280);
getContentPane()。add(resArea);
resArea.setBounds(20,330,450,200);
save.setBackground(new java.awt.Color(255,0,0));
save.setFont(new java.awt.Font(“ Arial”,0,15));
save.setForeground(new java.awt.Color(255,255,255));
save.setText(“ Save”);
save.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
saveActionPerformed(evt);
}
});
getContentPane()。add(save);
save.setBounds(500,340,70,27);
resArea.setVisible(false);
save.setVisible(false);
jPanel1.setVisible(false);
setBackground(new java.awt.Color(0,204,204));
}
// GEN-END:initComponents
私人无效exitActionPerformed(java.awt.event.ActionEvent evt){
// GEN-FIRST:event_exitActionPerformed
System.exit(0);
}
private void resetActionPerformed(java.awt.event.ActionEvent evt){
// GEN-FIRST:event_resetActionPerformed
user.setText(“”);
pass.setText(“”);
}
私有无效的commitActionPerformed(java.awt.event.ActionEvent evt){
试试{
ref =(RMISIntf)Naming.lookup(“ rmi://127.0.0.1/RMIServer”);
//System.out.println(ref.res("sdsd","dsa“));
如果(user.getText()。trim()。equals(“”)){
op.showConfirmDialog(this,“输入用户名”,“警报”,JOptionPane.DEFAULT_OPTION,JOptionPane.ERROR_MESSAGE);
user.grabFocus();
} else {
if(pass.getText()。trim()。equals(“”)){
op.showConfirmDialog(this,“ Enter the PassWord”,“ Alert”,JOptionPane.DEFAULT_OPTION,JOptionPane.ERROR_MESSAGE);
pass.grabFocus();
} else {
InetAddress地址= InetAddress.getLocalHost();
字符串c = Address.getHostAddress();
ref =(RMISIntf)Naming.lookup(“ rmi:
字符串ss = ref.CliDet(user.getText(),pass.getText(),c);
如果(ss.equals(“ notok”)){
op.showConfirmDialog(this,“未经授权的用户”,“警报”,JOptionPane.DEFAULT_OPTION,JOptionPane.ERROR_MESSAGE);
user.grabFocus();
}其他{
用户名= user.getText();
字符串键=(字符串)JOptionPane.showInputDialog(this,“输入您的密钥:”);
ref =(RMISIntf)Naming.lookup(“ rmi://127.0.0.1/RMIServer”);
字符串状态= ref.CliDet_key(user.getText(),key);
如果(status.equals(“ ok”)){
用户名= user.getText();
//getContentPane().remove(jPan);//.visible(false);
jPan.setVisible(false);
jPanel1.setVisible(true);
resArea.setVisible(true);
save.setVisible(true);
StringTokenizer令牌=新的StringTokenizer(ss,“;”);
while(token.hasMoreTokens()){
字符串nextToken = token.nextToken();
v.addElement(nextToken);
System.out.println(nextToken);
}
listres.setListData(v);
} ///如果
不是{
则内部{
user.grabFocus();
}
}
}
}
} catch(Exception e){
System.out.println(e);
}
}
私人无效downloadActionPerformed(java.awt.event.ActionEvent evt){
//System.out.println ( username);
// GEN-FIRST:event_downloadActionPerformed
sss =(String)listres.getSelectedValue();
System.out.println(sss);
int ch = 0;
尝试{
InetAddress地址= InetAddress.getLocalHost();
字符串c = Address.getHostAddress();
//////////////////////////////////////////////////// ///
String aa [] = new String [4];
ref =(RMISIntf)Naming.lookup(“ rmi://127.0.0.1/RMIServer”);
////////////////////////
字符串chh = ref.checkipp(c,sss);
StringTokenizer st =新的StringTokenizer(chh,“;”);
字符串ipp = null;
字符串opp = null;
// while(st.hasMoreTokens()){
ipp = st.nextToken();
System.out.println(ipp +“ hai”);
opp = st.nextToken();
System.out.println(opp);
//}
字符串optiontest =“ null”;
如果(ipp.equals(“ ok”)|| opp.equals(“ true”)){
optiontest =“ true”;
字符串a =(String)JOptionPane.showInputDialog(this,“输入您的密码:”);
aa [0] = a;
a =(String)JOptionPane.showInputDialog(this,“输入您的正确密码:”);
aa [1] = a;
a =(String)JOptionPane.showInputDialog(this,“输入正确的密码:”);
aa [2] = a;
System.out.println(aa [0] + aa [1]);
aa [3] = new Date()。toString();
ref.store(aa,c,用户名,sss);
}
////////// change
字符串ssss = ref.res(sss,c,optiontest);
/ ********文件ss = ref.res(sss,c,);
// File file = new File(ss);
FileInputStream in = new FileInputStream(ss);
int i = in.available();
char st [] = new char [i];
int j = 0;
while((ch = in.read())!=-1)
{
st [j] =(char)ch;
j ++;
}
String str = new String(st);
resArea.setText(str);
*********** /
System.out.println(“ new” + ssss);
resArea.setText(ssss);
} catch(Exception e){
System.out.println(e);
}
}
private void saveActionPerformed(java.awt.event.ActionEvent evt){
// GEN-FIRST:event_saveActionPerformed
尝试{
FileDialog fd = new FileDialog(this,“ File Store”,FileDialog.SAVE);
fd.setVisible(true);
字符串f = fd.getFile();
fd.setFile(f); //文件名过滤器
fd.setDirectory(“。”); //当前目录
//fd.show();
FileOutputStream out =新的FileOutputStream(f);
字符串s = resArea.getText();
System.out.println(s);
字节b [] = s.getBytes();
out.write(b);
} catch(Exception e){
System.out.println(e);
}
}
/ **退出应用程序* /
private void exitForm(java.awt.event.WindowEvent evt){
// GEN-FIRST:event_exitForm
System.exit(0);
}
/ **
* @param args命令行参数
* /
public static void main(String args []){
JFrame jf1 = new Login();
jf1.setResizable(false);
jf1.setSize(900,600);
jf1.setTitle(“确保云计算中的数据存储安全”);
jf1.show();
}
//变量声明-请勿修改// GEN-BEGIN:变量
private javax.swing.JButton出口;
私有javax.swing.JLabel jLabel1;
私有javax.swing.JLabel jLabel2;
私有javax.swing.JLabel jLabel3;
私人javax.swing.JPanel jPan;
私人javax.swing.JPasswordField通过;
私人javax.swing.JButton重设;
私人javax.swing.JButton提交;
私人javax.swing.JTextField用户;
私人javax.swing.JButton下载;
私有javax.swing.JLabel jLab;
私人javax.swing.JPanel jPanel1;
私有javax.swing.JList listres;
私有java.awt.TextArea resArea;
私有javax.swing.JButton保存;
//变量结尾声明// GEN-END:变量
}
答:请替换为rmi://127.0.0.1:8080 / RMIServer而不是rmi://127.0.0.1/RMIServer
答:即使在登录表包含详细信息的情况下,在“提交”按钮中,它仍直接转到else阻止未经授权的用户