Hi,
My first time using servlets and I am getting a null pointer exception. I have a jsp page with populated fields (including dates and drop down lists) that the user can edit. When the user clicks "OK" is when I get the null pointer exception. Can anyone see what I am missing? Here is some of the code:
JSP Page
<jsp:useBean id="admin" class="admin.getAdminData"></jsp:useBean>
<body>
<form action="/partnerDB/servlet/editAgreementData" method="get" style="margin:0">
<%
String pid = request.getParameter("partID");
String aid = request.getParameter("agreeID");
%>
<%
// Connection
Vector statList = new Vector();
admin.getAgreeStatus(statList);
String day = null;
String month = null;
String year = null;
String recdate = null;
String rendate = null;
String termdate = null;
try {
ResultSet rs = statement.executeQuery("Select p.*, a.agreeid, a.type, a.status, a.recdate, "
+ "a.descrip, a.termdate, a.rendate, a.statuscode "
+ "from partDB.partner p, partDB.agreement as a "
+ "where p.partid = '" + pid + "'"
+ "and a.agreeid = '" + aid + "' ");
while (rs.next()) {
String Status = rs.getString("statuscode").trim();
//format dates
if (rs.getString("recdate") !=null) {
day = (rs.getString("recdate").substring(8,10));
month = (rs.getString("recdate").substring(5, 7));
year = (rs.getString("recdate").substring(0, 4));
recdate = month + "/" + day + "/" + year;
} else {
recdate = "";
}
if (rs.getString("rendate") !=null) {
day = (rs.getString("rendate").substring(8,10));
month = (rs.getString("rendate").substring(5, 7));
year = (rs.getString("rendate").substring(0, 4));
rendate = month + "/" + day + "/" + year;
} else {
rendate = "";
}
if (rs.getString("termdate") !=null) {
day = (rs.getString("termdate").substring(8,10));
month = (rs.getString("termdate").substring(5, 7));
year = (rs.getString("termdate").substring(0, 4));
termdate = month + "/" + day + "/" + year;
} else {
termdate = "";
}
out.println("<tr><td class=\"formfieldlabel\">Agreement:</td><td class=\"formfieldvalue\">" + rs.getString("type") + "</td></tr>");
out.println("<tr><td class=\"formfieldlabel\">Date Received:</td><td class=\"formfieldvalue\"><input type=\"text\" name=\"newdate\" size=\"10\" value=\"" + recdate + "\"> "
+ " <a href=\"javascript:void(0)\"onClick=\"setDateField(newdate);openWindow('dialogCalendar.html','ur',230,210)\">"
+ " <img src=\"../images/date.gif\" align=\"absmiddle\" border=\"1\" hspace=\"0\"></a></td></tr>");
out.println("<tr><td class=\"formfieldlabel\">Status:</td><td class=\"formfieldvalue\"><select name=\"newstatus\">");
char quote = '"';
for (int i = 0; i < statList.size(); i++) {
String stat = statList.get(i).toString();
int start = stat.indexOf(quote);
int end = stat.indexOf(quote, start + 1);
if (Status.equals(stat.substring(start+1, end))) {
stat = stat.substring(0, end+1) + " SELECTED" + stat.substring(end+1);
}
out.println(stat);
}
out.println("</select></td></tr>");
out.println("<tr><td class=\"formfieldlabel\">Description:</td><td class=\"formfieldvalue\"><input type=\"text\" name=\"newdescrip\" size=\"70\" value=\"" + rs.getString("descrip") + "\"></td></tr>");
out.println("<tr><td class=\"formfieldlabel\">Renewal Date:</td><td class=\"formfieldvalue\"><input type=\"text\" name=\"newren\" size=\"10\" value=\"" + rendate + "\"> "
+ "
"
+ " <img src=\"../images/date.gif\" align=\"absmiddle\" border=\"1\" hspace=\"0\"></td></tr>");
out.println("<tr><td class=\"formfieldlabel\">Termination Date:</td><td class=\"formfieldvalue\"><input type=\"text\" name=\"newterm\" size=\"10\" value=\"" + termdate + "\"> "
+ "
"
+ " <img src=\"../images/date.gif\" align=\"absmiddle\" border=\"1\" hspace=\"0\"></td></tr>");
} }
catch (Exception e){
out.println("<pre>");
PrintWriter errorOut = new PrintWriter(out);
e.printStackTrace(errorOut);
out.println("<br></pre>" + e);
}
connection.close();
%>
</table>
</div>
</div>
</td></tr>
<input type="hidden" name="partID" value="<%= pid %>"></input>
<input type="hidden" name="agreeID" value="<%= aid %>"></input>
<tr><td id="dialogbuttons">
<!-- InstanceBeginEditable name="dialogbuttons" -->
<input type="submit" value=" OK " class="mmhide_btn" onmouseover="hov(this,'mmhide_btn mmhide_btnhov')" onmouseout="hov(this,'mmhide_btn')" />
<input type="button" value=" Cancel " class="mmhide_btn" onmouseover="hov(this,'mmhide_btn mmhide_btnhov')" onmouseout="hov(this,'mmhide_btn')" onclick="window.location.href='editAgree.jsp?partID=<%= pid %>&agreeID=<%= aid %>'" />
<!-- InstanceEndEditable --></td>
</tr>
</table>
</form>
</body>
SERVLET
public class editAgreementData extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
String partID = request.getParameter("partID");
String agreeID = request.getParameter("agreeID");
String dbType = request.getParameter("type");
String dbDate = request.getParameter("newdate");
String dbStatus = request.getParameter("newstatus");
String dbDescrip = request.getParameter("newdescrip");
String dbRen = request.getParameter("newren");
String dbTerm = request.getParameter("newterm");
String next = null;
if (dbType.length() == 0 ) {
next = "/partnerDB/partners/editAgree.jsp?agreeID=" + agreeID + "&type=" + dbType;
}
else {
try {
//connection
statement.executeUpdate("Update partdb.agreement set recdate = \"" + dbDate + "\", status = \"" + dbStatus
+ "\", descrip = \"" + dbDescrip + "\", rendate = \"" + dbRen + "\", termdate = " + dbTerm + "\" "
+ "where partid = \"" + partID + "\" and agreeid = \"" + agreeID + "\"");
next = "/partnerDB/partners/PartnerAgree.jsp?partID=" + partID + "&agreeID=" + agreeID;
connection.close();
}
catch (Exception e) {
PrintWriter out = response.getWriter();
out.println("<pre>");
PrintWriter errorOut = new PrintWriter(out);
e.printStackTrace(errorOut);
out.println("<br></pre>" + e);
}
}
response.sendRedirect(next);
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
doPost(request, response);
}
}