Hi;
I am new to jsp and this is a part of my final project. I have been trying to find the solution to the error but cannot understand much since am new to the language. Debugging is difficult. Help wld be really appreciiated.
I have 2 jsp files.
a. search.jsp
b. sresults.jsp
In the search.jsp file I am creating a session bean called "qsender" after doing some processing on the user query am calling the sresults.jsp page with the forward tag <jsp:forward page="sresults.jsp?pNum=1"/>.
Once in the sresults.jsp page I want to access the parameter pNum from the search.jsp where it is instantiated to a value=1. But am getting a null pointer exception at the line where I am assigning the value of pNum to varaialbe pt of type String. I am unable to debug it.
---------------------------------------------search.jsp----------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE >QUESTION ANSWERING SYSTEM</TITLE>
</HEAD>
<BODY BGCOLOR="#F5F5DC">
<jsp:useBean id="qsender" scope="session" class="IRDemo.QuerySender"/>
<center><br><br><br><br>
<font COLOR="#DC143C" align="center" style=bold size=5>QUESTION ANSWERING SYSTEM </font>
<br>
<%
String pNum="1";
String qry=request.getParameter("txtquery");
if(!qry.equals("")) {
%>
<h4></h4>
<%
// out.println(request.getParameter("txtquery"));
out.println("Query Entered : " +qry );
char space=32;
String nqry=qry.replace('?' ,space);
String st=qsender.main(nqry);
%>
<jsp:forward page="sresults.jsp?pNum=1"/>
<%
}
else {
%>
Time: <%= new java.util.Date() %>
<form action='<%= request.getRequestURI() %>' method="get" >
<input type=text size=25 name="txtquery" />
<input type=submit name=btnaction value="Answer" /><br>
<font size=2 style="bold"><i>Please enter your Question in english </i></font>
</form>
<%
}
%>
</center>
</BODY>
</HTML>
----------------------------------------------------end of search.jsp-------------------------------------------------
---------------------------------------------------sresults.jsp------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ page import="java.sql.*" %>
<HTML>
<%
//define connection
Connection con = null;
ResultSet rs=null;
Statement stmt=null;
ResultSet rs1=null;
Statement stmt1=null;
try{
//get the class
String url="jdbc:odbc:IRdsn";
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection(url, "", "");
stmt = con.createStatement ();
stmt1 =con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
}
//please catch your exceptions!
catch(Exception e){
out.println(e.getMessage());
}
%>
<HEAD>
<TITLE >QUESTION ANSWERING SYSTEM</TITLE>
</HEAD>
<BODY BGCOLOR="#F5F5DC">
<jsp:useBean id="qsender" scope="session" class="IRDemo.QuerySender"/>
<br><br><br><br>
<center><font COLOR="#DC143C" align="center" style=bold size=5> QUESTION ANSWERING SYSTEM </font></center>
<br>
<%
int rowCount=0;
try {
String query="select * from qa_system order by rank desc";
rs = stmt.executeQuery (query);
%>
<br><br>
<font COLOR="#FF0000" size=4 style=bold > Search Results ... </font><br><br>
<table width="1000" ><tr align="right"><td align="right">
search again...</td></tr></table>
<% while(rs.next()) {
rowCount=rs.getRow();
//out.println("no of records:" + rowCount);
}
out.print("Total results : ");
out.println(rowCount);
int cPage; int limit=10;
cPage = (rowCount / limit) ;
int reminder=(rowCount % limit) ;
if ((cPage * limit) >= rowCount)
{
cPage++;
}
if (reminder >0)
cPage++;
out.println(", # of Pages : " + (cPage ) + "<br><p><p>");
int p;
for(p = 1; p <= cPage ; p++)
{
out.println("<a href=sresults.jsp?pNum=" + p + ">"+ p +"</a> | ");
}
out.println("<hr>");
int cpage;
int currentRs=0;
String pt;
pt = request.getParameter("pNum");
cpage = Integer.parseInt((String)pt);
currentRs = limit * (cpage);
rs.close();stmt.close();
rs1 = stmt1.executeQuery (query);
if(cpage >1) {
rs1.absolute((cpage-1)*limit);
//rs1.previous();
rs1.moveToCurrentRow();
}
int count=0;
%>
<br><table border=1>
<% while(rs1.next() && count < 10) { %>
<tr bgcolor= "FFFF99" ><td>
<%
//out.println("row no:" +rs1.getRow());
String url= "http://" + rs1.getString(3) ;
//out.println("<a href=response.redirect(url))>url </a>");
//out.println("<a href= rs1.getString('url')"></a>");
//String str="http://www.msn.com"
%>
<a href= <%= url %> >
<% out.println(url); %>
</a>
<%
out.println("<br><br>");
out.println(rs1.getString("snippet"));
count++;
%>
</td></tr>
<% } %>
</table>
<%
rs1.close();
stmt1.close();
con.close();
}catch(SQLException e) {
out.println(e.getMessage());
}
%>
</BODY>
</HTML>
------------------------------------------------------end of sresults.jsp-----------------------------------------------------
------------------------------------------------------error am geeting is -------------------------------------------------------
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
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:346)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:670)
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:637)
org.apache.jsp.search_jsp._jspService(search_jsp.java:85)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
root cause
java.lang.NullPointerException
org.apache.jsp.sresults_jsp._jspService(sresults_jsp.java:98)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:670)
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:637)
org.apache.jsp.search_jsp._jspService(search_jsp.java:85)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.25 logs.
---------------------------------------------------end of error trace---------------------------------------------------
I even tried using
<jsp:forward page="sresults.jsp">
<jsp:param name="pNum" value="1"/>
</jsp:forward>
But still am getting the same error mesage. Please help.
Thanx,
Vikram