CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web Services / XML

哪里出错了???

楼主czhhua28(风之子)2003-08-04 20:49:08 在 Java / Web Services / XML 提问

服务器端代码:  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
  import   java.io.*;  
  import   java.net.*;  
  import   java.sql.*;  
   
  class   Net   extends   Thread{  
  private   Socket   socket;  
  private   BufferedReader   in;  
  private   PrintWriter   out;  
  private   Connection   con   =   null;  
  private   Statement   stmt;  
  private   ResultSet   rst;  
  private   String   []   str   =   new   String   [3];  
  private   boolean   flag   =   true;  
   
  public   Net   (Socket   s)   throws   IOException,   SQLException,   ClassNotFoundException{  
  socket   =   s;  
  in   =   new   BufferedReader(  
  new   InputStreamReader(  
  socket.getInputStream()));  
   
  out   =   new   PrintWriter(  
  new   BufferedWriter(  
  new   OutputStreamWriter(  
  socket.getOutputStream())),true);  
   
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
  con   =   DriverManager.getConnection("jdbc:odbc:net");  
  stmt   =   con.createStatement();  
   
  start();  
  }  
   
  public   void   run(){  
  try{  
  for(int   i   =   0;   i<3;   i++){  
  str[i]   =   in.readLine();  
  }  
  rst   =   stmt.executeQuery("select   classNO,   studentNO,   password   from   studentinfo");  
  while(rst.next()){  
  if(rst.getString(1).equals(str[0])   &&   rst.getString(2).equals(str[1])){  
  if(rst.getString(3).equals(str[2])){  
  out.print(new   Database1(rst.getString(1),   rst.getString(2)).getContent());/*关键*/  
  out.print("END");  
  break;  
  }   else   {  
  out.println("密码错误!");  
  break;  
  }  
  }   else   {  
  flag   =   false;  
  }  
  }  
  if(!flag){  
  out.println("不存在此班号或学号!");  
  }  
  System.out.println("Closing   "   +   socket);  
  }  
  catch(IOException   i){  
  }  
  catch(SQLException   s){  
  }  
  finally{  
  try{  
  rst.close();  
  stmt.close();  
  con.close();  
  socket.close();  
  }  
  catch(IOException   i){  
  System.err.println("Socket   not   closed");  
  }  
  catch(SQLException   s){  
  }  
  }  
  }  
  }  
   
  class   Database1   extends   Thread{  
  private   Connection   con   =   null;  
  private   Statement   stmt;  
  private   ResultSet   rst;  
  private   int   column;  
  private   String   []   columnname;  
  private   String   content;  
   
  public   Database1(String   str1,   String   str2){  
  try{  
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  
  con   =   DriverManager.getConnection("jdbc:odbc:net");  
  stmt   =   con.createStatement();  
  rst   =   stmt.executeQuery("select   *   from   "   +   str1   +   "   where   学号   =   '"   +   str2   +   "'");  
  ResultSetMetaData   rsmd   =   rst.getMetaData();  
  column   =   rsmd.getColumnCount();  
  columnname   =   new   String   [column   -   2];  
  for(int   i   =   0;   i<column-2;   i++){  
  columnname[i]   =   rsmd.getColumnLabel(i+3)   +   ":   ";  
  }  
  while(rst.next()){  
  content   =   rst.getString(2)   +   "\n";  
  for(int   j=0;   j<column-2;   j++){  
  String   a   =   new   String(columnname[j]   +   rst.getString(j+3)   +   "\n");  
  content   =   content   +   a;  
  }  
  }  
  }  
  catch(SQLException   s){  
  content   =   new   String("Sql");  
  }  
  catch(ClassNotFoundException   c){  
  content   =   new   String("Class");  
  }  
  finally{  
  try{  
  rst.close();  
  stmt.close();  
  con.close();  
  }   catch   (SQLException   s){  
  }  
  }  
  }  
   
  public   String   getContent(){  
  return   content;  
  }  
  }  
   
  public   class   Servernet{  
  private   static   final   int   port   =   8080;  
  public   static   void   main(String   []   args)   throws   IOException{  
  System.out.println("Server   Started...");  
  while(true){  
  ServerSocket   s   =   new   ServerSocket(port);  
  Socket   socket   =   s.accept();  
  try{  
  new   Net(socket);  
  }  
  catch(IOException   i){  
  socket.close();  
  }  
  catch(SQLException   sql){  
  }  
  catch(ClassNotFoundException   c){  
  }  
  finally{  
  s.close();  
  }  
  }  
  }  
  }  
   
  客户端代码:  
  import   java.awt.*;  
  import   java.awt.event.*;  
  import   javax.swing.*;  
  import   java.net.*;  
  import   java.io.*;  
   
  class   panel   extends   JPanel   {  
  private   JPanel   p   =   new   JPanel();  
  private   JLabel   a   =   new   JLabel("班号:",   SwingConstants.CENTER);  
  private   JLabel   b   =   new   JLabel("学号:",   SwingConstants.CENTER);  
  private   JLabel   c   =   new   JLabel("密码:",   SwingConstants.CENTER);  
  private   JTextField   classno   =   new   JTextField();  
  private   JTextField   studentno   =   new   JTextField();  
  private   JTextField   password   =   new   JTextField();  
  private   JButton   submit   =   new   JButton("发送");  
  private   JScrollPane   scroll;  
  private   JTextArea   area   =   new   JTextArea();  
  private   submitAction   action   =   new   submitAction();  
  private   int   port   =   8080;  
   
  public   panel(){  
  scroll   =   new   JScrollPane(area,   scroll.VERTICAL_SCROLLBAR_AS_NEEDED,   scroll.HORIZONTAL_SCROLLBAR_NEVER);  
  setLayout(new   BorderLayout());  
  add(p,   BorderLayout.NORTH);  
  add(scroll,   BorderLayout.CENTER);  
  p.setLayout(new   GridLayout(1,7,0,0));  
  p.add(a);p.add(classno);p.add(b);p.add(studentno);p.add(c);p.add(password);p.add(submit);  
  submit.addActionListener(action);  
  area.setLineWrap(true);  
  }  
   
  private   class   submitAction   implements   ActionListener{  
  public   void   actionPerformed(ActionEvent   e){  
  try{  
  InetAddress   addr   =   InetAddress.getByName(null);  
  Socket   socket   =   new   Socket(addr,   port);  
  try{  
  PrintWriter   out   =   new   PrintWriter(  
  new   BufferedWriter(  
  new   OutputStreamWriter(  
  socket.getOutputStream())),true);  
   
  BufferedReader   in   =   new   BufferedReader(  
  new   InputStreamReader(  
  socket.getInputStream()));  
   
  out.println(classno.getText());  
  out.println(studentno.getText());  
  out.println(password.getText());  
  while(true){  
  String   str   =   in.readLine();  
  if(!str.equals("密码错误!")   &&   !str.equals("不存在此班号或学号!")){  
  if(str.equals("END"))break;  
  area.setText(str);  
  }   else   {  
  area.setText(str);  
  break;  
  }  
  }  
  }  
  finally{  
  socket.close();  
  }  
  }  
  catch(IOException   i){  
  area.setText("网络没有开通!");  
  }  
  }  
  }  
  }  
   
  class   frame   extends   JFrame{  
  public   frame(){  
  Container   c   =   getContentPane();  
  c.add(new   panel());  
  }  
  }  
   
  public   class   Clinet   extends   frame{  
  public   static   void   main(String   []   args){  
  frame   f   =   new   frame();  
  f.setDefaultCloseOperation(EXIT_ON_CLOSE);  
  f.setTitle("Clinet");  
  f.setSize(500,   300);  
  f.setResizable(false);  
  f.show();  
  }  
  }  
  程序运行后,当密码输入错误时,客户端会出现"密码错误!"字样。当班号或学号输入错误时,客户端也会出现"不存在此班号或学号!"字样。  
  但是当一切输入正确时,客户端不会出现任何字样!请各位指点,谢谢! 问题点数:0、回复次数:1Top

1 楼jkit(不再灌水)回复于 2003-08-04 21:18:46 得分 0

偶看可能是抛exception了,  
  在Database1   里面catch(Exception   e)试试看.Top

相关问题

  • 哪里出错了
  • 到底哪里出错了?
  • 到底出错在哪里???????
  • 急!哪里出错啊,
  • 这个哪里出错了?
  • 哪里出错了呢???
  • 哪里出错了?求教!
  • 这段JAVA程序哪里出错阿?
  • 分页程序哪里出错了?
  • 安装时哪里出错了?

关键词

  • socket
  • con
  • private
  • import java

得分解答快速导航

  • 帖主:czhhua28

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo