Solved

User Login bean SQL

Posted on 2004-03-23
44
502 Views
Last Modified: 2007-12-19
hey Kennethxu and rrz
 hey guys
again it is Gaz

i have used the code from before for a couple of forms successfully
i am working on a login page for the application
i can get the data from the user and validate it but i want to be able to check the entered
email,username and password  against those in the database table

here is what i have so far but i am a bit lost, can you help out?:

  public void userlogCheck() throws ClassNotFoundException, SQLException  {
 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = null;
PreparedStatement ps = null;
                  
try {
conn = DriverManager.getConnection( "jdbc:odbc:BillboardCompany");
  ps = conn.prepareStatement( "SELECT EmailAddress, Username, Password FROM UserRegInformation    WHERE EmailAddress = ?" +      "AND Username = ? AND Password = ?)" );
              
  ps.getString( 1, emailAddress);
  ps.getString( 2, userName );
  ps.getString( 3, repassWord );
  }
finally {
         if( ps != null )
          try {ps.close(); }
        catch( Throwable t ) { t.printStackTrace(); }
         if( conn!=null)
         try {conn.close(); }
  catch( Throwable t ) { t.printStackTrace(); }
                                  
   }
            
    }      
0
Comment
Question by:Gar04
  • 23
  • 18
  • 2
  • +1
44 Comments
 
LVL 92

Assisted Solution

by:objects
objects earned 100 total points
ID: 10665373
looks like you are on the right track, you need to now execute the query and see if you got any results:

...
ps = conn.prepareStatement( "SELECT EmailAddress, Username, Password FROM UserRegInformation    WHERE EmailAddress = ?" +     "AND Username = ? AND Password = ?)" );
           
  ps.getString( 1, emailAddress);
  ps.getString( 2, userName );
  ps.getString( 3, repassWord );
ResultSet rs = ps.executeQuery();
if (rs.next())
{
   // found the user do as required
}
else
{
   // nothing return, invalid login
}
...
0
 

Author Comment

by:Gar04
ID: 10668333
is it possible to make this a boolean method
because i think that it would make more sense to me and i think that i could
do the redirection in jsp or is this completely wrong???
gaz

public boolean userlogCheck() throws ClassNotFoundException, SQLException  {
       
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      Connection conn = null;
      PreparedStatement ps = null;

                  
            try {
                  if (!isValid() ){
                 throw new SQLException( "invalid data - from UserRegBean.insertData" );
                 }
                 else {
                  
                  conn = DriverManager.getConnection( "jdbc:odbc:BillboardCompany");
                    ps = conn.prepareStatement( "SELECT EmailAddress, Username, Password FROM UserRegInformation UserRegInformation WHERE"
                    + "EmailAddress = ? AND Username = ? AND Password = ?)" );
              
                    ps.setString( 1, emailAddress);
                    ps.setString( 2, userName );
                    ps.setString( 3, passWord );
                    ResultSet rs = ps.executeQuery();
                  
                        if (rs.next()) {
                              
                        return true;      here, i would like to redirect the user to another jsp page
                     
                        }
                              else {
                                 return false; here i would like to return the user to the login page and call the     propertyStat
                              }

                          }
              
                    }
                  
                  finally {
                                  if( ps != null )
                                
                                  try {ps.close(); }
                                
                                  catch( Throwable t ) { t.printStackTrace(); }
                                  
                                
                                  if( conn!=null)
                                
                                  try {conn.close(); }
                                
                                  catch( Throwable t ) { t.printStackTrace(); }
                                  
                               
                               }
            
    }      
0
 

Author Comment

by:Gar04
ID: 10668471
i think that i have confused myself with the isValid method and how i would go about using these emthod in the jsp page
essentially if the data is valid(i.e. the correct type of data and is entered) i want it then to check if the data matches the data in the database, moreover, if the data matches i would like to redirect to the appropriate page if not return to the login page with the appropriate message from propertyStatusMsg.

should i make userlogCheck() a boolean, is this possible??

the isValid() method looks like so:
public boolean isValid() {
       return firstName != null &&
                  lastName != null && orgName != null &&
            StringFormat.isValidEmailAddr(emailAddress) && userName != null &&
            passWord != null && repassWord != null && repassWord.equals(passWord);
       }

if this is not valid it goes to the propertyStatusMsg() method:

public String getPropertyStatusMsg() {
               
               String msg ="Thank you for registering!";
          if (!isInitialized ()) {
          msg ="Please enter values in all fields";
          }
          else if (!isValid()) {
          msg ="The Following data is missing or invalid: ";
          }
          return msg;
          
          }
          
    public String[] getPropertyStatusDetails() {
    Vector details = new Vector();
    if (isInitialized() && !isValid()) {
          
   
          if (emailAddress == null) {
                      details.addElement("An Email Address is Missing");
                      }
                else if (!StringFormat.isValidEmailAddr(emailAddress))  {
                                  details.addElement("Invalid Email Format:"+emailAddress+",try this format:'bob@name.com'");
                            }
                            
                            
          if (userName == null) {
                      details.addElement("A User Name is Missing");
                      }      
                      
          if (passWord == null) {
                      details.addElement("A Password is Missing");
                      }
                      
   
          }
          
          String[] arr = new String[details.size()];
          details.copyInto(arr);
          return arr;
    }      
0
 

Author Comment

by:Gar04
ID: 10668558
this compiles fine but i need to test it to see if it works

is it correct to make this a boolean??
0
 

Author Comment

by:Gar04
ID: 10668798
hey there seems to be a problem with this

 ps.getString( 1, emailAddress);
  ps.getString( 2, userName );
  ps.getString( 3, repassWord );
ResultSet rs = ps.executeQuery();
 the compiler doesn't like the getString() it cannot resolve symbol??
sos about before i had setString() by mistake and it compiled but i don't think that would work in ru time??

gaz
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10668830
you need to use ps.setString, not getString. that's the problem
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10668837
for sure you can make it boolean and you did it very well ;-)
0
 

Author Comment

by:Gar04
ID: 10668968
cheers
i'll test it and should i require your(pl) assistance i know where to find yee
slan
Gaz
0
 

Author Comment

by:Gar04
ID: 10669438
hey guys

 <% if(Bean2.isValid())
 Bean.isUser();%>

how can i get this to forward to the appropriate page if isUser() is true
 can i nestle a <jsp:forward: page "main.jsp"/> into it like this :
<% if(Bean2.isValid())
 Bean.isUser <jsp:forward: page "main.jsp"/>;%>
or shall i i just call it seperately
like:
<% if(Bean2.isUser())
<jsp:forward: page "main.jsp"/>;%>
????
i can't find a good example
0
 

Author Comment

by:Gar04
ID: 10669561
another general question but relative


if a user registers and his data is correct is there a way to send them to a conformation page
that loads for like 10 second
and says "thanks for registering" and displays their registration details and then forwards the user to the main page

i guess it would be like a pop up page or someting
and would that mean that i have to have session scope for all???
0
 
LVL 14

Accepted Solution

by:
kennethxu earned 400 total points
ID: 10670380
<% if( Bean2.isValid() && Bean2.isUser() ) { %>
  <jsp:forward: page "main.jsp"/>
<% } %>
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10670412
Yes, the confirmation page should have:
<% response.setHeader( "Refresh", "10; main.jsp" ); %>
0
 

Author Comment

by:Gar04
ID: 10670925
hey thats great!
however, i am having a bit of bother with the same thing on another page:
 obviously i can't do this??

<% if(Bean1.isValid())
Bean1.insertData(); %>

<% if( Bean1.isValid() && Bean1.insertData() ) { %>
 <jsp:forward: page "Success.jsp"/>
<% } %>
 how do i get it to forward even though it has already called the methods
and the buffer has been flushed
i hope that i understood that right and that you do too??
gaz
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10671004
you need to put the code in the beginning of your jsp page. can you show me the page?
0
 

Author Comment

by:Gar04
ID: 10671475
i will show you the login.jsp as it is a little smaller but has the same problem
i thought the code would have to go into the form because that is where the two functions are being process
i guess i won't get good marks for layout, it is all over the shop!!!
sorry

<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" %>
<jsp:useBean id="Bean2" class="com.ora.jsp.beans.userinfo.UserLoginBean" scope="request"/>
<jsp:setProperty name="Bean2" property="*"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>User Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript"function mmLoadMenus() {
  if (window.mm_menu_1_0) return;
      window.mm_menu_1_0 = new Menu("root",181,16,"Times New Roman, Times, serif",10,"#000000","#FFFFFF","#000084","center","middle",1,0,500,-5,7,true,true,true,0,true,true);
  mm_menu_1_0.addMenuItem("48 Sheet Billboard Format"Shopperlite"Commuterlites");
   mm_menu_1_0.hideOnMouseOut=true;
   mm_menu_1_0.bgColor='#336666';
   mm_menu_1_0.menuBorder=1;
   mm_menu_1_0.menuLiteBgColor='#336666'
   mm_menu_1_0.menuBorderBgColor='#000000'
  window.mm_menu_0309135707_0 = new
  mm_menu_0309135707_0.addMenuItem("48&nbsp;Sheet&nbsp;Billboard&nbsp;Format"Shopperlites");
   mm_menu_0309135707_0.hideOnMouseOut=true;
   mm_menu_0309135707_0.bgColor='#336666'
   mm_menu_0309135707_0.menuBorder=1;
   mm_menu_0309135707_0.menuLiteBgColor='#336666'
   mm_menu_0309135707_0.menuBorderBgColor='#000000'

  window.mm_menu_0309140128_0 = new
  mm_menu_0309140128_0.addMenuItem("Belfast&nbsp;City&nbsp;Area"Northern&nbsp;Ireland");
   mm_menu_0309140128_0.hideOnMouseOut=true;
   mm_menu_0309140128_0.bgColor='#336666'
   mm_menu_0309140128_0.menuBorder=1;
   mm_menu_0309140128_0.menuLiteBgColor='#336666'
   mm_menu_0309140128_0.menuBorderBgColor='#000000'

  window.mm_menu_0309133610_0 = new
  mm_menu_0309133610_0.addMenuItem(");
   mm_menu_0309133610_0.hideOnMouseOut=true;
   mm_menu_0309133610_0.bgColor='#336666'
   mm_menu_0309133610_0.menuBorder=1;
   mm_menu_0309133610_0.menuLiteBgColor='#336666'
   mm_menu_0309133610_0.menuBorderBgColor='#000000'

  window.mm_menu_0316175720_0 = new
  mm_menu_0316175720_0.addMenuItem(");
   mm_menu_0316175720_0.hideOnMouseOut=true;
   mm_menu_0316175720_0.bgColor='#336666'
   mm_menu_0316175720_0.menuBorder=1;
   mm_menu_0316175720_0.menuLiteBgColor='#336666'
   mm_menu_0316175720_0.menuBorderBgColor='#000000'

mm_menu_0316175720_0.writeMenus();
} // mmLoadMenus()ogin></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript"function mmLoadMenus() {
  if (window.mm_menu_1_0) return;
      window.mm_menu_1_0 = new Menu("root",181,16,"Times New Roman, Times, serif",10,"#000000","#FFFFFF","#000084","center","middle",1,0,500,-5,7,true,true,true,0,true,true);
  mm_menu_1_0.addMenuItem("48 Sheet Billboard Format"Shopperlite"Commuterlites");
   mm_menu_1_0.hideOnMouseOut=true;
   mm_menu_1_0.bgColor='#336666';
   mm_menu_1_0.menuBorder=1;
   mm_menu_1_0.menuLiteBgColor='#336666'
   mm_menu_1_0.menuBorderBgColor='#000000'
  window.mm_menu_0309135707_0 = new
  mm_menu_0309135707_0.addMenuItem("48&nbsp;Sheet&nbsp;Billboard&nbsp;Format"Shopperlites");
   mm_menu_0309135707_0.hideOnMouseOut=true;
   mm_menu_0309135707_0.bgColor='#336666'
   mm_menu_0309135707_0.menuBorder=1;
   mm_menu_0309135707_0.menuLiteBgColor='#336666'
   mm_menu_0309135707_0.menuBorderBgColor='#000000'

  window.mm_menu_0309140128_0 = new
  mm_menu_0309140128_0.addMenuItem("Belfast&nbsp;City&nbsp;Area"Northern&nbsp;Ireland");
   mm_menu_0309140128_0.hideOnMouseOut=true;
   mm_menu_0309140128_0.bgColor='#336666'
   mm_menu_0309140128_0.menuBorder=1;
   mm_menu_0309140128_0.menuLiteBgColor='#336666'
   mm_menu_0309140128_0.menuBorderBgColor='#000000'

mm_menu_0309140128_0.writeMenus();
}
>
<!--



function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
<script language="JavaScript" src="mm_menu.js"></script>
</head>
<body onLoad="MM_preloadImages('images/home2.gif','images/company2.gif','images/contact2.gif','images/yboards2.gif','images/campaign2.gif','images/formats2.gif','images/register2.gif','images/links2.gif')">
<script language="JavaScript1.2">mmLoadMenus();</script>
<table width="702" border="1" align="center" cellpadding="0" cellspacing="1" bgcolor="#FFFFFF">
  <!--DWLayoutTable-->
  <tr>
    <td width="602" height="123" rowspan="2" align="center" valign="bottom" bgcolor="#FFFFFF">
      <div align="left"><img src="graphic3.gif" width="90" height="123"></div>
      <div align="right"></div>
      <div align="right"></div></td>
    <td width="602" height="42" align="left" valign="bottom" bgcolor="#FFFFFF"><img src="topnavbar/toplogin.gif" width="600" height="40"></td>
  </tr>
  <tr>
    <td height="73" align="left" valign="bottom" bgcolor="#FFFFFF"><img src="banner.gif" width="600" height="80"></td>
  </tr>
  <tr align="center" valign="top">
    <td rowspan="2" bordercolor="#0099CC" bgcolor="#0099CC">&nbsp;</td>
    <td height="42" valign="bottom" bgcolor="#FFFFFF"><font color="#0033CC" size="5" face="Times New Roman, Times, serif">Welcome
      to the Look-See Login Page</font></td>
  </tr>
  <tr align="center" valign="top">
    <td bgcolor="#FFFFFF"><img src="RegBar.gif" width="600" height="20"></td>
  </tr>
  <tr align="center" valign="top">
    <td rowspan="5" bordercolor="#0099CC" bgcolor="#0099CC"> <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td align="center" valign="top"><a href="main.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Home','','images/home2.gif',1)"><img src="images/home1.gif" alt="Home" name="Home" width="90" height="21" border="0"></a></td>
        </tr>
        <tr>
          <td><a href="CompanyInformation.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Company Information','','images/company2.gif',1)"><img src="images/company1.gif" alt="Company Information" name="Company Information" width="90" height="21" border="0"></a></td>
        </tr>
        <tr>
          <td><a href="ContactUs.htm" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Contact Us','','images/contact2.gif',1)"><img src="images/contact1.gif" alt="Contact Us" name="Contact Us" width="90" height="21" border="0"></a></td>
        </tr>
        <tr>
          <td height="21"><a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Why Billboards?','','images/yboards2.gif',1)"><img src="images/yboards1.gif" alt="Why Use Billboards?" name="Why Billboards?" width="90" height="21" border="0"></a></td>
        </tr>
        <tr>
          <td height="21"><a href="#" onMouseOut="MM_swapImgRestore();MM_startTimeout()" onMouseOver="MM_swapImage('Campaign Information','','images/campaign2.gif',1);MM_showMenu(window.mm_menu_0309133610_0,90,0,null,'Campaign Information')"><img src="images/campaign1.gif" alt="Campaign Information" name="Campaign Information" width="90" height="21" border="0"></a></td>
        </tr>
        <tr>
          <td height="21"><a href="#" onMouseOut="MM_swapImgRestore();MM_startTimeout()" onMouseOver="MM_swapImage('Billboard Formats','','images/formats2.gif',1);MM_showMenu(window.mm_menu_0316175720_0,90,0,null,'Billboard Formats')"><img src="images/formats1.gif" alt="Billboard Format Information" name="Billboard Formats" width="90" height="21" border="0"></a></td>
        </tr>
        <tr>
          <td height="21"><a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Register','','images/register2.gif',1)"><img src="images/register.gif" alt="Register" name="Register" width="90" height="21" border="0"></a></td>
        </tr>
        <tr>
          <td height="21"><img src="images/loginused.gif" alt="This page!" width="90" height="21"></td>
        </tr>
        <tr>
          <td height="21"><a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Links','','images/links2.gif',1)"><img src="images/links1.gif" alt="Links" name="Links" width="90" height="21" border="0"></a></td>
        </tr>
      </table></td>
    <td height="17" valign="bottom" bgcolor="#FFFFFF"><font color="#336699" size="2" face="Times New Roman, Times, serif">Please
      Enter Your Valid Email Address, Username and Password in the Fields Below</font></td>
  </tr>
  <tr align="center" valign="top">
    <td height="21" valign="bottom" bgcolor="#FFFFFF"><font color="#993300" size="2" face="Times New Roman, Times, serif">Note*
      All Fields Required</font></td>
  </tr>
  <tr align="center" valign="top">
    <td height="208" valign="top" bgcolor="#FFFFFF">
      <form method="POST" name="UserLoginForm" id="UserLoginForm" action="UserLogin.jsp">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr align="center" valign="middle">
           <td height="21" colspan="2">  
              <ul>
                <font color="#CC3300"> </font></ul></td>
          </tr>
          <tr align="center">
            <td height="13" colspan="2">
              <%-- Output a list of values that are invalid, if any --%>
              <font color="#FF0000">
              <jsp:getProperty name="Bean2" property="propertyStatusMsg"/>
              </font>
              <%-- List continues with propertyStatusDetails() call --%>
            </td>
          </tr>
          <tr align="center" valign="top">
            <td height="50" colspan="2"><font color="#CC3300">
              <% String[] details= Bean2.getPropertyStatusDetails();
                                            for(int j=0; j<details.length;j++) {
                                          out.print("<li>"+ details[j] +"</li>");
                                          }
                     %>
              </font></td>
          </tr>
          <tr align="center">
            <td height="11" colspan="2"> </td>
          </tr>
          <tr>
            <td height="21" align="center">Enter Email Address</td>
            <td><input name="emailAddress" type="text" id="emailAddress" value="<jsp:getProperty name="Bean2" property="emailAddress"/>" size="25%">
            </td>
          </tr>
          <tr>
            <td height="21" align="center">&nbsp;</td>
            <td width="50%">&nbsp;</td>
          </tr>
          <tr>
            <td width="50%" height="21" align="center">Enter Username</td>
            <td><input name="userName" type="text" id="Username2" value="<jsp:getProperty name="Bean2" property="userName"/>" size="25%">
            </td>
          </tr>
          <tr>
            <td height="21">&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td height="21" align="center">Enter Password</td>
            <td><input name="passWord" type="password" id="passWord" value="<jsp:getProperty name="Bean2" property="passWord"/>" size="25%"></td>
          </tr>
          <tr>
            <td height="21">&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td height="21" align="center"> <input type="submit" name="Submit" value="Submit"></td>
            <td align="center"><input name="Reset" type="button" id="Reset" value="Reset"
                  onClick="if (confirm('Are you sure you want to clear the form ?')) formCleanUp(document.UserLoginForm);"></td>
          </tr>
              <script language="JavaScript" type="text/JavaScript">
function formCleanUp(frm){
  var i
  for(i=0; i<frm.elements.length; i++) {
    var elt = frm.elements[i]
    var t = elt.type;
    switch(t) {
      case "text":
      case "hidden":
      case "password":
      case "textarea":
        elt.value="" ;
      break;
      case "checkbox":
        elt.checked=false;
      break;
      case "option":
        elt.selected=false;
      break;
    }
  }
}
</script>

        </table>
      </form></td>
  </tr>
  <tr>
    <td height="24" align="center" valign="bottom" bgcolor="#FFFFFF">&nbsp;</td>
  </tr>
  <tr valign="top">
    <td height="25" align="center" bgcolor="#FFFFFF"><font color="#336699" size="2" face="Times New Roman, Times, serif">Look-See&copy;2004</font></td>
  </tr>
</table>
</body>
</html>
0
 

Author Comment

by:Gar04
ID: 10672670
hey Kennethxu
i hope that you meant the jsp page and not the error page
if the latter, i am sorry for sending you the jsp
have you any more ideas as to what i need to do?
0
 

Author Comment

by:Gar04
ID: 10672700
this is the error message that i most frequently get:

HTTP Status 500 -
-------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: /TMPdlv5nv3ktf.jsp(264,16) equal symbol expected
      at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:94)

0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10672745
the forward code should go right after <jsp:setProperty>
0
 

Author Comment

by:Gar04
ID: 10672848
so like this:

<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" %>

<jsp:useBean id="Bean2" class="com.ora.jsp.beans.userinfo.UserLoginBean" scope="request"/>
<jsp:setProperty name="Bean2" property="*"/><% if( Bean2.isValid() && Bean2.isUser() ) { %>
  <jsp:forward: page "main.jsp"/>
<% } %>

???
 i tried it and it gave the same error, but i guess that i am wrong!
gaz
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10672878
what does isValid() and isUser() return, boolean?
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10672889
which line of the jsp page that the error pointing to? can you post the line arround that number?
0
 

Author Comment

by:Gar04
ID: 10672912
yeah they have boolean return values
in the bean  isValid() looks like this:
public boolean isValid() {
       return StringFormat.isValidEmailAddr(emailAddress) && userName != null &&
              passWord != null;
       }
 


isUser() looks like this:

public boolean isUser() throws ClassNotFoundException, SQLException  {
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      // initialise connection, statement and result set variables
      Connection conn = null;
      PreparedStatement ps = null;
                                  try {
                  if (!isValid() ){
                 throw new SQLException( "invalid data - from UserRegBean.insertData" );
                 }
                 else {
      // make a connection to the BillBoardCompany Database
      conn = DriverManager.getConnection( "jdbc:odbc:BillboardCompany");
      // create statement object to interface with the SQL engine in database
        ps = conn.prepareStatement( "SELECT EmailAddress, Username, Password FROM UserRegInformation UserRegInformation WHERE"
        + "EmailAddress = ? AND Username = ? AND Password = ?)" );
              ps.setString( 1, emailAddress);
              ps.setString( 2, userName );
              ps.setString( 3, passWord );
              ResultSet rs = ps.executeQuery();
            if (rs.next()) {
                      return true;
                  }
            else {
                     return false;
               }
                }
              
}
                  
finally {
        if( ps != null )
         try {ps.close(); }
         catch( Throwable t ) { t.printStackTrace(); }
         if( conn!=null)
        try {conn.close(); }
         catch( Throwable t ) { t.printStackTrace(); }
        }
            
    }      
0
Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

 
LVL 14

Expert Comment

by:kennethxu
ID: 10672935
it must be something else in the jsp page, try the login jsp that you have posted and let me the error is pointing to which line.
0
 

Author Comment

by:Gar04
ID: 10672986
the error doesn't seem to be pointing to any line
but here is the error:

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /TMPkzut4v3ue5.jsp(4,16) equal symbol expected
      at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:94)
      at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:428)
      at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:126)
      at org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:169)
      at org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:136)
      at org.apache.jasper.compiler.Parser.parseForward(Parser.java:517)
      at org.apache.jasper.compiler.Parser.parseAction(Parser.java:661)
      at org.apache.jasper.compiler.Parser.parseElements(Parser.java:803)
      at org.apache.jasper.compiler.Parser.parse(Parser.java:122)
      at org.apache.jasper.compiler.ParserController.parse(ParserController.java:199)
      at org.apache.jasper.compiler.ParserController.parse(ParserController.java:153)
      at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:227)
      at org.apache.jasper.compiler.Compiler.compile(Compiler.java:369)
      at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
      at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
      at java.lang.Thread.run(Thread.java:479)

0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10673012
>> org.apache.jasper.JasperException: /TMPkzut4v3ue5.jsp(4,16) equal symbol expected
it is pointing to line 4 of TMPkzut4v3ue5.jsp
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10673022
eh, here it is:
  <jsp:forward: page "main.jsp"/>
should be
  <jsp:forward: page="main.jsp"/>
you are missing the equal symble.
0
 

Author Comment

by:Gar04
ID: 10673056
hey well spotted
but i am still getting the same error!!
it does say equal sign??
what could it be ...
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10673062
take the line number that's reported and see if there is any syntax error.
0
 

Author Comment

by:Gar04
ID: 10673100
<jsp:useBean id="Bean2" class="com.ora.jsp.beans.userinfo.UserLoginBean" scope="request"/>
<jsp:setProperty name="Bean2" property="*"/><% if( Bean2.isValid() && Bean2.isUser() ) { %>
  <jsp:forward page="main.jsp"/>
<% } %>

when i test the page, it opens the login.jsp and when i enter the data it returns the same error as above
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10673112
could the error be in the forwarded page? you need to check the jsp page name in the error message
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10673114
find the exact line in exact jsp file mentioned in the error message.
0
 

Author Comment

by:Gar04
ID: 10673142


so it reports
/UserLogin.jsp(4,16) equal symbol expected
i checked line 4  and there are no syntax errors that i can see
i am not sure what the 16 refers to cos it doesn't refer to any of the jsp

gaz
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10673151
16 referes to the 16 the character in the line.
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10673156
do a refresh, or delete your IE's temp files.
0
 

Author Comment

by:Gar04
ID: 10673175
i guess that it is the jsp if statement
why wouldn't it work....?

line 4 =  <jsp:setProperty name="Bean2" property="*"/><% if( Bean2.isValid() && Bean2.isUser() ) { %>
line 5 =  <jsp:forward page="Success.jsp"/>
line 6 =  <% } %>
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10673253
you Bean2 is com.ora.jsp.beans.userinfo.UserLoginBean, make sure the both method are returning boolean.

you can test it by changing the code to:

<%=Bean2.isValid() %><p>
<%=Bean2.isUser() %><p>

also, try to break and add space to see if the line number changes:

<jsp:setProperty name="Bean2" property="*"/>
<% if( Bean2.isValid() && Bean2.isUser() ) { %>
<jsp:forward page="Success.jsp"/>
0
 

Author Comment

by:Gar04
ID: 10673359
this is what i tried and i got a bizarre error
i used some of the old code from UserRegBean and its method insertData
to produce the isUser() for UserLoginBean and this method seems to be using it
i am confused
can you shed any light?????

<jsp:setProperty name="Bean2" property="*"/>
<% if( Bean2.isUser() ) { %>
<jsp:forward page="Success.jsp"/>

javax.servlet.ServletException: invalid data - from UserRegBean.insertData
      at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:536)
      at org.apache.jsp.TMPnp0qdv3xw2_jsp._jspService
0
 

Author Comment

by:Gar04
ID: 10673394
should i give the class a different package folder & recompile it??
this is weird
0
 

Expert Comment

by:kuching
ID: 10673435
ken, i admire you a lot....
0
 

Author Comment

by:Gar04
ID: 10673442
thanks Kuching
thats nice
0
 

Author Comment

by:Gar04
ID: 10673613
hey ken i
have a different error now that mucked about with the bean
any ideas?????

i have a : org.apache.jasper.JasperException: [Microsoft][ODBC Microsoft Access Driver] Syntax error in FROM clause.

i checked the sql but can't see ought??

      ps = conn.prepareStatement( "SELECT EmailAddress, Username, Password FROM UserRegInformation WHERE"
                    + "EmailAddress = ? AND Username = ? AND Password = ?)" );


                    ps.setString( 1, emailAddress);
                    ps.setString( 2, userName );
                    ps.setString( 3, passWord );
                    ResultSet rs = ps.executeQuery();
                  
                        if (rs.next()) {
                              
                              return true;
                        }
                              else {
                                 
                                 return false;
                                 
                              }
0
 

Author Comment

by:Gar04
ID: 10673920
hey ken
i spotted it eventually
there is no space between where and email and there is an extra )
well it works fine now
again you pulled me kicking and screaming through that one
you have the patience of a saint
i appreciate it
i will open another thread to award you more points
thanks
Gaz
0
 
LVL 92

Expert Comment

by:objects
ID: 10674043
Thanks for the points :-)

http://www.objects.com.au/staff/mick
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 10674246
I left my office so couldn't get back to you soon. glad to know your problem was resolved eventually.
don't worry about the points.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

In this article, I show you step by step with screenshots to assist you - HOW TO: Deploy and Install the VMware vCenter Server Appliance 6.5 (VCSA 6.5), with some helpful tips along the way.
We have come a long way with backup and data protection — from backing up to floppies, external drives, CDs, Blu-ray, flash drives, SSD drives, and now to the cloud.
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now