Topic: startsWith()的问题

  Print this page

1.startsWith()的问题 Copy to clipboard
Posted by: haiyangzhixin
Posted on: 2005-09-22 14:57

客户端

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;

import javax.swing.*;

class UserLoginMessage implements Serializable
{
  String name;
  String password;
}

public class Login extends JFrame implements ActionListener
{
  
  JPanel p1;
  JLabel name,password;
  JTextField nametext;
  JPasswordField passwordtext;
  JButton login,zhuche;
  
  GridBagLayout g1;
  GridBagConstraints c1;
  Submit s;

  
  
  
  public Login()
  {
   this.setTitle("登陆");
   g1=new GridBagLayout();
   c1=new GridBagConstraints();
  
     p1=new JPanel();
   p1.setLayout(g1);
    
    getContentPane().add(p1);
    name=new JLabel("姓名:");
    nametext=new JTextField(10);
    password=new JLabel("密码:");
    passwordtext=new JPasswordField(10);
    
    login=new JButton("登 陆");
    //login.setBorder(new BevelBorder(BevelBorder.RAISED));
    zhuche=new JButton("注 册");
    //zhuche.setBorder(new BevelBorder(BevelBorder.RAISED));
    
    c1.gridx=1;
    c1.gridy=5;
    g1.setConstraints(name,c1);
    p1.add(name);
    
    c1.gridx=4;
    c1.gridy=5;
    g1.setConstraints(nametext,c1);
    p1.add(nametext);
    
    c1.gridx=1;
    c1.gridy=8;
    g1.setConstraints(password,c1);
   p1.add(password);
    
    c1.gridx=4;
    c1.gridy=8;
    g1.setConstraints(passwordtext,c1);
    p1.add(passwordtext);
    
    c1.gridx=3;
    c1.gridy=11;
    g1.setConstraints(login,c1);
    p1.add(login);
    
    c1.gridx=5;
    c1.gridy=11;
    g1.setConstraints(zhuche,c1);
    p1.add(zhuche);
    
    zhuche.addActionListener(this);
    login.addActionListener(this);
    
    this.setLocation(200,300);
  
    setSize(300,300);
    setVisible(true);
    
  }
  
  
    public static void main(String a[])
  {
    new Login();
}

  
  public void actionPerformed(ActionEvent e)
  {
    if(e.getSource()==login)
    {
      
       UserLoginMessage message = new UserLoginMessage();
        message.name=nametext.getText();
        message.password=new String(passwordtext.getPassword());
            
        try {
          Socket toServer;
          toServer = new Socket("192.168.123.56",1001);
          ObjectOutputStream streamToServer =new ObjectOutputStream(toServer.getOutputStream());
          streamToServer.writeObject(message);
          BufferedReader fromServer = new BufferedReader(new InputStreamReader(toServer.getInputStream()));
          
          String status = fromServer.readLine();
        
          if(status==null)
          {
           JOptionPane.showMessageDialog(null,"fdsfds");  
          }
          else
          {
           JOptionPane.showMessageDialog(null,status);  
          }
          
          streamToServer.close();
          fromServer.close();
        }
        catch (Exception evt)
        {
          JOptionPane.showMessageDialog(null,evt);
        }
      
      
      
    }
    
    else if(e.getSource()==zhuche)
    {
      
    s=new Submit();
  
    }
  }
  

  

  
}

服务器端

import java.awt.event.*;
import java.io.*;
import java.net.*;

class UserLoginMessage implements Serializable
{
  String name;
  String password;
}

public class ServerLogin extends Thread
{
  ServerSocket serverSocket;

  public ServerLogin()
  {
    try {
      serverSocket = new ServerSocket(1001);
    } catch (IOException e)
    {
      fail(e,"could not start ...");
    }
    System.out.println("Server started ...");
    start();
  }
  
  public void fail(Exception e, String str)
  {
    System.out.println(str + " . " + e);
  }
  
  public void run()
  {
    try {
      while(true)
      {
        Socket client = serverSocket.accept();
        Connection con = new Connection(client);
      }
    } catch (IOException e)
    {
      fail(e,"Not listening");
    }
  }
  
  public static void main(String args[])
  {
    new ServerLogin();
  }
}

class Connection extends Thread
{
  protected Socket netClient;
  protected ObjectInputStream fromClient;
  protected PrintStream toClient;
  BufferedReader in;
  String sss;
  public Connection(Socket client)
  {
    netClient = client;
    try
    {
      fromClient = new ObjectInputStream(netClient.getInputStream());
      toClient = new PrintStream(netClient.getOutputStream());
    } catch (IOException e)
    {
      try
       {
        netClient.close();
      }
      catch (IOException ee)
      {
        System.err.println("Unable to set up stream "+ ee);
        return;
      }
    }
    start();
  }
  public void run()
  {
    UserLoginMessage Message;
    try {
      for(;;) {
        Message = (UserLoginMessage) fromClient.readObject();
        if (Message == null)
          break;
          
       String s1=Message.name;
       try
{
in=new BufferedReader(new FileReader("d:\\user.txt"));
}
catch(Exception ee){}

try
{
while((sss=in.readLine())!=null)
{
if(sss.startsWith(s1))
{

toClient.println();



}
else
{
  toClient.println("用户名或密码错误,请从新填写!");
}
}
     }
     catch(Exception ee){}
           
      
        
      }
    } catch (IOException e) {}
    catch (ClassNotFoundException e1) {
      System.out.println("error in reading object " +e1);
    }
    finally
    {
      try {
        netClient.close();
      } catch (IOException e) {}
    }
  }
}

问题:
为什么通过服务器吧质料传过去就不可以用startsWith()方法验证用户存在;而不通过服务器的话就可以

2.Re:startsWith()的问题 [Re: haiyangzhixin] Copy to clipboard
Posted by: why
Posted on: 2005-09-22 22:58

> 通过服务器吧质料传过去
把資料...
唉--提問請認真一點!

use a Debugger to examine the associated variables, have you tried yet?

3.Re:startsWith()的问题 [Re: haiyangzhixin] Copy to clipboard
Posted by: why
Posted on: 2005-09-23 21:17

Examine the values of the variables before you blame startsWith()

catch (IOException e) {}... etc
Don't hide the exceptions.


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923