Solved

User Login bean SQL

Posted on 2004-03-23
44
509 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
[Live Webinar] The Cloud Skills Gap

As Cloud technologies come of age, business leaders grapple with the impact it has on their team's skills and the gap associated with the use of a cloud platform.

Join experts from 451 Research and Concerto Cloud Services on July 27th where we will examine fact and fiction.

 

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
 
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

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article explains the fundamentals of industrial networking which ultimately is the backbone network which is providing communications for process devices like robots and other not so interesting stuff.
Originally, this post was published on Monitis Blog, you can check it here . In business circles, we sometimes hear that today is the “age of the customer.” And so it is. Thanks to the enormous advances over the past few years in consumer techno…
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…
There's a multitude of different network monitoring solutions out there, and you're probably wondering what makes NetCrunch so special. It's completely agentless, but does let you create an agent, if you desire. It offers powerful scalability …

627 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