Hello everyone,
Got a school project here.
I need to explain the code I use in general, thats the moral of this school project.
I thought to keep it simple(It actually doesn't matter if I wrote the code myself or that I got it from somewhere, as long as I can explain it.)so I thought to create a simple register form, send the data to the db and then being able to login.
I'm working with NetBeans, but somehow it gives me some errors.

Here's the code:
register.html
Netbeans gives me an error/warning at line 7 "<th bgcolor="#CCCCFF" colspan=2>"
Saying:"Unexpected tag <TH> found, expecting one of <TFOOT>, <CAPTION>, <TBODY>, <THEAD>, <COL>, <COLGROUP>"
If I run the file it works fine though.

<html>
    <head><title>Register form</title></head>
<body>
<form action="/examples/jsp/forms/process.jsp" method=post>
<center>
<table cellpadding=4 cellspacing=2 border=0>
<th bgcolor="#CCCCFF" colspan=2>
<font size=5>USER REGISTRATION</font>
<br>
<font size=1><sup>*</sup> Required Fields</font>
</th>
<tr bgcolor="#c8d8f8">
<td valign=top>
<b>First Name<sup>*</sup></b>
<br>
<input type="text" name="firstName" value="" size=15 maxlength=20></td>
<td  valign=top>
<b>Last Name<sup>*</sup></b>
<br>
<input type="text" name="lastName" value="" size=15 maxlength=20></td>
</tr>
<tr bgcolor="#c8d8f8">
<td valign=top>
<b>E-Mail<sup>*</sup></b>
<br>
<input type="text" name="email" value="" size=25  maxlength=125>
<br></td>
<td  valign=top>
<b>Zip Code<sup>*</sup></b>
<br>
<input type="text" name="zip" value="" size=5  maxlength=5></td>
</tr>
<tr bgcolor="#c8d8f8">
<td valign=top colspan=2>
<b>User Name<sup>*</sup></b>
<br>
<input type="text" name="userName" size=10 value=""  maxlength=10>
</td>
</tr>
<tr bgcolor="#c8d8f8">
<td valign=top>
<b>Password<sup>*</sup></b>
<br>
<input type="password" name="password1" size=10 value=""
maxlength=10></td>
<td  valign=top>
<b>Confirm Password<sup>*</sup></b>
<br>
<input type="password" name="password2" size=10 value=""
maxlength=10></td>
<br>

<tr bgcolor="#c8d8f8">
<td  valign=top colspan=2>
<b>What music are you interested in?</b>
<br>
<input type="checkbox" name="faveMusic"
value="Rock">Rock
<input type="checkbox" name="faveMusic" value="Pop">Pop
<input type="checkbox" name="faveMusic" value="Bluegrass">Bluegrass<br>
<input type="checkbox" name="faveMusic" value="Blues">Blues
<input type="checkbox" name="faveMusic" value="Jazz">Jazz
<input type="checkbox" name="faveMusic" value="Country">Country<br>
</td>
</tr>
<tr bgcolor="#c8d8f8">
<td  valign=top colspan=2>
<b>Would you like to receive e-mail notifications on our special
sales?</b>
<br>
<input type="radio" name="notify" value="Yes" checked>Yes

<input type="radio" name="notify" value="No" > No
<br><br></td>
</tr>
<tr bgcolor="#c8d8f8">
<td  align=center colspan=2>
<input type="submit" value="Submit"> <input type="reset"
value="Reset">
</td>
</tr>
</table>
</center>
</form>
</body>
</html>

process.jsp

<%@ page import="java.util.*" %>
<%! 
    ResourceBundle bundle =null;
    public void jspInit() {
       bundle = ResourceBundle.getBundle("forms");
      }
%>
<jsp:useBean id="formHandler" class="foo.FormBean" scope="request">
<jsp:setProperty name="formHandler" property="*"/>
</jsp:useBean>
<% 
   if (formHandler.validate()) {
%>
    <jsp:forward page="<%=bundle.getString(\"process.success\")%>"/>
<%
   }  else {
%>
    <jsp:forward page="<%=bundle.getString(\"process.retry\")%>"/>
<%
   }
%>

FormBean.java

package foo;
import java.util.*;
public class FormBean {
  private String firstName;
  private String lastName;
  private String email;
  private String userName;
  private String password1;
  private String password2;
  private String zip;
  private String[] faveMusic;
  private String notify;
  private Hashtable errors;
  public boolean validate() {
    boolean allOk=true;
    if (firstName.equals("")) {
      errors.put("firstName","Please enter your first name");
      firstName="";
      allOk=false;
    }
    if (lastName.equals("")) {
      errors.put("lastName","Please enter your last name");
      lastName="";
      allOk=false;
    }
    if (email.equals("") || (email.indexOf('@') == -1)) {
      errors.put("email","Please enter a valid email address");
      email="";
      allOk=false;
    }
    if (userName.equals("")) {
      errors.put("userName","Please enter a username");
      userName="";
      allOk=false;
    }
    if (password1.equals("") ) {
      errors.put("password1","Please enter a valid password");
      password1="";
      allOk=false;
    }
    if (!password1.equals("") && (password2.equals("") || 
        !password1.equals(password2))) {
      errors.put("password2","Please confirm your password");
      password2="";
      allOk=false;
    }
    if (zip.equals("") || zip.length() !=5 ) {
      errors.put("zip","Please enter a valid zip code");
      zip="";
      allOk=false;
    } else {
      try {
        int x = Integer.parseInt(zip);
      } catch (NumberFormatException e) {
        errors.put("zip","Please enter a valid zip code");
        zip="";
        allOk=false;
      }
    }
    return allOk;
  }
  public String getErrorMsg(String s) {
    String errorMsg =(String)errors.get(s.trim());
    return (errorMsg == null) ? "":errorMsg;
  }
  public FormBean() {
    firstName="";
    lastName="";
    email="";
    userName="";
    password1="";
    password2="";
    zip="";
    faveMusic = new String[] { "1" };
    notify="";
    errors = new Hashtable();
  }
  public String getFirstName() {
    return firstName;
  }
  public String getLastName() {
    return lastName;
  }
  public String getEmail() {
    return email;
  }
  public String getUserName() {
    return userName;
  }
  public String getPassword1() {
    return password1;
  }
  public String getPassword2() {
    return password2;
  }
  public String getZip() {
    return zip;
  }
  public String getNotify() {
    return notify;
  }
  public String[] getFaveMusic() {
    return faveMusic;
  }
  public String isCbSelected(String s) {
    boolean found=false;
    if (!faveMusic[0].equals("1")) {
      for (int i = 0; i < faveMusic.length; i++) {
        if (faveMusic[i].equals(s)) {
          found=true;  
          break;
        }
      }
      if (found) return "checked";
    } 
    return "";
  }
  public String isRbSelected(String s) {
    return (notify.equals(s))? "checked" : "";
  }
  public void setFirstName(String fname) {
    firstName =fname;
  }
  public void setLastName(String lname) {
    lastName =lname;
  }
  public void setEmail(String eml) {
    email=eml;
  }
  public void setUserName(String u) {
    userName=u;
  }
  public void  setPassword1(String p1) {
    password1=p1;
  }
  public void  setPassword2(String p2) {
    password2=p2;
  }
  public void setZip(String z) {
    zip=z;
  }
  public void setFaveMusic(String[] music) {
    faveMusic=music;
  }
  public void setErrors(String key, String msg) {
    errors.put(key,msg);
  }
  public void setNotify(String n) {
    notify=n;
  }
}

retry.jsp

<jsp:useBean id="formHandler" class="foo.FormBean" scope="request"/>
<html> 
<body>
<form action="process.jsp" method=post>
<center>
<table cellpadding=4 cellspacing=2 border=0>
<th bgcolor="#CCCCFF" colspan=2>
<font size=5>USER REGISTRATION</font>
<br>
<font size=1><sup>*</sup> Required Fields </font>
</th>
<tr bgcolor="#c8d8f8">
<td valign=top> 
<B>First Name<sup>*</sup></B> 
<br>
<input type="text" name="firstName" 
value='<%=formHandler.getFirstName()%>' size=15 maxlength=20>
<br><font size=2 
color=red><%=formHandler.getErrorMsg("firstName")%></font>
</td>
<td  valign=top>
<B>Last Name<sup>*</sup></B>
<br>
<input type="text" name="lastName" 
value='<%=formHandler.getLastName()%>' size=15 maxlength=20>
<br><font size=2 
color=red><%=formHandler.getErrorMsg("lastName")%></font>
</td>
</tr>
<tr bgcolor="#c8d8f8">
<td valign=top>
<B>E-Mail<sup>*</sup></B> 
<br>
<input type="text" name="email" value='<%=formHandler.getEmail()%>' 
size=25  maxlength=125>
<br><font size=2 color=red><%=formHandler.getErrorMsg("email")%></font>
</td>
<td  valign=top>
<B>Zip Code<sup>*</sup></B> 
<br>
<input type="text" name="zip" value='<%=formHandler.getZip()%>' size=5  
maxlength=5>
<br><font size=2 color=red><%=formHandler.getErrorMsg("zip")%></font>
</td>
</tr>
<tr bgcolor="#c8d8f8">
<td valign=top colspan=2> 
<B>User Name<sup>*</sup></B>
<br>
<input type="text" name="userName" size=10 
value='<%=formHandler.getUserName()%>'  maxlength=10>
<br><font size=2 
color=red><%=formHandler.getErrorMsg("userName")%></font>
</td>
</tr>
<tr bgcolor="#c8d8f8">
<td valign=top>
<B>Password<sup>*</sup></B> 
<br>
<input type="password" name="password1" size=10 
value='<%=formHandler.getPassword1()%>'  maxlength=10>
<br><font size=2 
color=red><%=formHandler.getErrorMsg("password1")%></font>
</td>
<td  valign=top>
<B>Confirm Password<sup>*</sup></B>
<br>
<input type="password" name="password2" size=10 
value='<%=formHandler.getPassword2()%>'  maxlength=10>
<br><font size=2 
color=red><%=formHandler.getErrorMsg("password2")%></font>
</td>
<br>
</tr>
<tr bgcolor="#c8d8f8">
<td colspan=2 valign=top>
<B>What music are you interested in?</B>
<br>
<input type="checkbox" name="faveMusic" value="Rock" 
<%=formHandler.isCbSelected("Rock")%>>Rock    
<input type="checkbox" name="faveMusic" value="Pop" 
<%=formHandler.isCbSelected("Pop")%>>Pop  
<input type="checkbox" name="faveMusic" value="Bluegrass" 
<%=formHandler.isCbSelected("Bluegrass")%>>Bluegrass<br>
<input type="checkbox" name="faveMusic" value="Blues" 
<%=formHandler.isCbSelected("Blues")%>>Blues  
<input type="checkbox" name="faveMusic" value="Jazz" 
<%=formHandler.isCbSelected("Jazz")%>>Jazz  
<input type="checkbox" name="faveMusic" value="Country" 
<%=formHandler.isCbSelected("Country")%>>Country<br>
</td>
</tr>
<tr bgcolor="#c8d8f8">
<td colspan=2 valign=top>
<B>Would you like to receive e-mail notifications on our special 
sales?</B>
<br>
<input type="radio" name="notify" value="Yes" 
<%=formHandler.isRbSelected("Yes")%>>Yes       
<input type="radio" name="notify" value="No" 
<%=formHandler.isRbSelected("No")%>> No 
<br><br></td>
</tr>
<tr bgcolor="#c8d8f8">
<td colspan=2 align=center>
<input type="submit" value="Submit"> <input type="reset"  
value="Reset">
</td>
</tr>
</table>
</center>
</form>
</body>
</html>

success.jsp

<jsp:useBean id="formHandler" class="foo.FormBean" scope="request"/>
<html>
<body>
<center>
<table cellpadding=4 cellspacing=2 border=0>
<th bgcolor="#CCCCFF" colspan=2>
<font size=5>USER REGISTRATION SUCCESSFUL!</font>
</th>
<font size=4>
<tr bgcolor="#c8d8f8">
<td valign=top> 
<b>First Name</b> 
<br>
<jsp:getProperty name="formHandler" property="firstName"/>
</td>
<td valign=top>
<b>Last Name</b>
<br>
<jsp:getProperty name="formHandler" property="lastName"/>
</td>
</tr>
<tr bgcolor="#c8d8f8">
<td valign=top>
<b>E-Mail</b> 
<br>
<jsp:getProperty name="formHandler" property="email"/>
<br></td>
<td valign=top>
<b>Zip Code</b> 
<br>
<jsp:getProperty name="formHandler" property="zip"/>
</td>
</tr>
<tr bgcolor="#c8d8f8">
<td valign=top colspan=2>
<b>User Name</b>
<br>
<jsp:getProperty name="formHandler" property="userName"/>
</td>
</tr>
<tr bgcolor="#c8d8f8">
<td colspan=2 valign=top>
<b>What music are you interested in?</b>
<br>
<%
  String[] faveMusic = formHandler.getFaveMusic();
  if (!faveMusic[0].equals("1")) {
    out.println("<ul>");
    for (int i=0; i<faveMusic.length; i++)  
      out.println("<li>"+faveMusic[i]);
    out.println("</ul>");
  } else out.println("Nothing was selected");
%>
</td>
</tr>
<tr bgcolor="#c8d8f8">
<td colspan=2 valign=top>
<b>Would you like to receive e-mail notifications on our special 
sales?</b>
<br>
<jsp:getProperty name="formHandler" property="notify"/>
</td>
</tr>
</font>
</table>
</center>
</body>
</html>

DBHandler.java

import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import foo.FormBean;
public class DBHandler extends HttpServlet {
  public void doPost (HttpServletRequest request, HttpServletResponse response) {
    try {
      FormBean f = (FormBean) request.getAttribute("formHandler"); 
      boolean userExists = false;
      //obtain a db connection and perform a db query 
      //ensuring that the username does not exist
      //set userExists=true if user is found in db
      //for a simple test, you can disallow the registration
      //of the username "rogerm" as:
      //if (f.getUserName().equals("rogerm")) userExists=true;
      if (userExists) {
        f.setErrors("userName","Duplicate User: Try a different username"); 
        getServletConfig().getServletContext().
          getRequestDispatcher("/jsp/forms/retry.jsp").
          forward(request, response);
      } else {
        //retrieve the bean properties and store them
        // into the database. 
        getServletConfig().getServletContext().
          getRequestDispatcher("/jsp/forms/success.jsp").
          forward(request, response);
      }
    } catch (Exception ex) {
      ex.printStackTrace();
    }
  }
}

I get the most errors at the DBHandler code.
First 2 lines saying package does not exist.(I guess thats about right, since I doubt the javax libraries aren't included by default)

Line 3: Unused import
Line 4: Package foo does not exist
Line 5: Cannot find symbol: class HttpServlet
Line 6: Cannot find symbol: class HttpServletRequest, location: class DBHandler
class HttpServletResponse, location: class DBHandler
Line 18: Cannot find symbol: method getServletConfig, location: class DBHandler
Line 24: Cannot find symbol: method getServletConfig, location: class DBHandler

Need some help here lol.

It could be that this doesn't work anymore since this a bit outdated, this was posten in 2000.

Source:

http://www.javaworld.com/javaworld/jw-03-2000/jw-0331-ssj-forms.html?page=1

Recommended Answers

All 4 Replies

learn to read. It tells you exactly what's wrong. And ALL of it has to do with missing imports and/or classpath entries.
If the compiler can't find a package or class you're importing it generates an error on the import statement.
Later if you use that class, it tells you the class doesn't exist (and it doesn't, as it wasn't imported because the import failed).
ALWAYS fix errors from the top down, later errors may very well be caused by earlier ones.

learn to read. It tells you exactly what's wrong. And ALL of it has to do with missing imports and/or classpath entries.
If the compiler can't find a package or class you're importing it generates an error on the import statement.
Later if you use that class, it tells you the class doesn't exist (and it doesn't, as it wasn't imported because the import failed).
ALWAYS fix errors from the top down, later errors may very well be caused by earlier ones.

Well the problem of all the missing packages, is that I don't know where to find them.

in a jar file you should have added to the classpath when compiling.

Ask one question at a time my friend. You have asked too many question I cannot follow.
Would you just post code that is relevant to question.

In JSP project there is web-inf/libs
put your custom libraries like JDBC drivers there. I will suggest you start with checking if you are connecting to DB go on form handling...etc.
I'm new to JSP and don't know Javabeans so on that sorry :)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.