2014-04-06 79 views
-1

當我從用戶 爲什麼jsp頁面等待用戶輸入。如果在語句中使用

獲取用戶名使用的代碼,當我用if(STR!= NULL),那麼它等待用戶輸入,當我刪除如果聲明它打印用戶名無效或不存在!馬上爲什麼出現這種情況

<% 

     String str1=request.getParameter("username"); 
     String str2=request.getParameter("type"); 
     if(str1!=null) 
     { 
       int flag=0; 

     try{ 
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
    Connection c=                         DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","pass"); 
          Statement s= c.createStatement(); 
        if(str2 == "student") 
       { 
      String sql="select pass from student where username='"+str1+"'"; 
       ResultSet rs= s.executeQuery(sql); 
       if(rs.next()) 
        flag=1; 
       else 
        flag=0; 

       if(flag==1) 
       { 
       out.println("YOUR PASSWORD IS "+rs.getString(2)+"!!!"); 
       } 
       else 
       out.println("UserName Not Valid Or Does Not Exist!!!"); 
       rs.close(); 
      } 
      else 
      { 
      String sql1="select pass from faculty where username='"+str1+"'"; 
       ResultSet rs1= s.executeQuery(sql1); 
       if(rs1.next()) 
        flag=1; 
       else 
        flag=0; 

       if(flag==1) 
       { 
       out.println("YOUR PASSWORD IS "+rs1.getString(2)+"!!!"); 
       } 
       else 
       out.println("UserName Not Valid Or Does Not Exist!!!"); 
       rs1.close(); 
      } 
      s.close(); 
      c.close(); 
      }catch(Exception e) { out.println(e);} 
     } 
    %> 

回答

0

在沒有看到頁面的其餘部分,我猜測這是在那個做了處理,以及採取形式的輸入頁面頂部的代碼。因此,如果您在沒有if()語句的情況下加載頁面,則會立即嘗試使用不返回任何內容的查詢來查詢數據庫。當它進入if(rs.next())時,它將返回false。所以該標誌設置爲0,然後您的消息立即打印。再一次,這只是一個猜測而沒有看到頁面的其餘部分。