![]() ![]() |
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|
|
|
LinkBack | Thread Tools | Display Modes |
|
|
#1 (permalink) |
|
Member
Join Date: Jul 2008
Posts: 2
|
Hello Everyone,
I am a new java user and i have a problem where i have made a servlet "Conn.java". In which i have established a connection and i m retrieving data from database using dsn. This data i store in a array list called rowsetArray. when i run just the servlet with " out.println("<h1>name======" + rowsetArray + "</h1>"); " statement in it; it displays all the records in the arraylist on the explorer. but when i uncomment the above line and try to pass the array list data to my index.jsp then i am unable to do so. I get null pointer exception error. below is my servlet code and follwed by index.jsp code. ---------------------------------Conn.java-------------- package IRIS; import java.io.*; import java.net.*; import javax.servlet.*; import javax.servlet.http.*; import java.lang.String; import java.sql.*; import java.util.*; import javax.servlet.*; /** * * @author vishal * @version */ public class Conn extends HttpServlet { public Conn() { } protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); ArrayList rowArray = new ArrayList(); ArrayList rowsetArray = new ArrayList(); Connection con; PreparedStatement ps; Statement stmt=null; ResultSet rs; String name=""; String colName=""; ResultSet rs1=null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("Connection Estabished"); con=DriverManager.getConnection("Jdbc:Odbc:dsn_adm in","sa","sa"); System.out.println("Connection Estabished1"); stmt=con.createStatement(); //ResultSetMetaData rsmd=null; rs1=stmt.executeQuery("select * from employee"); while(rs1.next()) { rowArray.clear(); String str = rs1.getString("FirstName"); rowArray.add(str); rowsetArray.add(rowArray.clone()); } request.setAttribute("myArrayList",rowsetArray); RequestDispatcher requestDispatcher=getServletContext().getRequestDi spatcher("/Prism/web/index.jsp"); requestDispatcher.forward(request,response); } catch(Exception e) { System.out.println(e); e.printStackTrace(); } //out.println("<h1>name======" + rowsetArray + "</h1>"); //return name; // out.close(); } note i have not mentioned the httpservlet methods here but they are there in my code. i am using netbeans 5.0...................... -------------------------------------------Code for index.jsp <%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@page import="IRIS.*"%> <%@page import="java.sql.*"%> <%@page import="java.util.*"%> <%@ page session="true"%> <%@page import="java.io.*"%> <%@page import="java.net.*"%> <%@page import="javax.servlet.*"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1></h1> <!--/ <img src="Images/Logo_Final Splash.gif" width="450" height="200" alt="Logo_Final Splash"/> --> <table border="1"> <tr><td><B>Emp Names</B></td></tr> <% ArrayList pageArray = (ArrayList) request.getAttribute("myArrayList"); String myString=""; if(pageArray.isEmpty()==false) { for(int i = 0; i < pageArray.size(); i++) { myString = (String) pageArray.get(i); } } else { System.out.println("Array is empty"); } %> <tr><td><%=myString%></td></tr> </table> </body> </html> ---------------------------------below is the error I 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 org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:370) org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:291) org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:241) javax.servlet.http.HttpServlet.service(HttpServlet .java:802) org.netbeans.modules.web.monitor.server.MonitorFil ter.doFilter(MonitorFilter.java:362) root cause java.lang.NullPointerException org.apache.jsp.index_jsp._jspService(index_jsp.jav a:81) org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:97) javax.servlet.http.HttpServlet.service(HttpServlet .java:802) org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:322) org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:291) org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:241) javax.servlet.http.HttpServlet.service(HttpServlet .java:802) org.netbeans.modules.web.monitor.server.MonitorFil ter.doFilter(MonitorFilter.java:362) note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs. -------------------------------------------------------------------------------- Apache Tomcat/5.5.9 -----------Please let me know what is wrong.plsssssssssssss |
|
|
|
|
#2 (permalink) |
|
Member
Join Date: Jul 2008
Posts: 1
|
Actually, attributes are passed among pages or servlets by the session object.
this line has problem~~~~~ request.setAttribute("myArrayList",rowsetArray); try to obtain a session object by calling the getSession() method in request to set the attribute.. request.getSession().setAttribute("myArrayList",ro wsetArray); Also, the code in JSP should changes as well: ArrayList pageArray = (ArrayList) session.getAttribute("myArrayList"); Last edited by deuso; 07-14-2008 at 03:43 PM. |
|
|
|
|
#3 (permalink) |
|
Member
Join Date: Jul 2008
Posts: 2
|
This is the modified code. i get out put in this servlet on explorer.
but when i expect the same in jsp...i get null values. the line out.println(pageArray.size()); on jsp page gives 1 as size. which is not the case in the servlet class, there is shows size as 110 which is the true value. below is my servlet code followed by index.jsp code. ----------- package IRIS; import java.io.*; import java.net.*; import javax.servlet.http.*; import java.lang.String; import java.sql.*; import java.util.*; import javax.servlet.*; /** * * @author vishal * @version */ public class Conn extends HttpServlet { public Conn() { } protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); ArrayList rowArray = new ArrayList(); ArrayList rowsetArray = new ArrayList(); Connection con; PreparedStatement ps; Statement stmt=null; ResultSet rs; String name=""; String colName=""; ResultSet rs1=null; try { String str[]=new String[200]; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("Connection Estabished"); con=DriverManager.getConnection("Jdbc:Odbc:dsn_adm in","sa","sa"); System.out.println("Connection Estabished1"); stmt=con.createStatement(); rs1=stmt.executeQuery("select * from employee"); System.out.println("<tr><td>name</td></tr>"); int n =rs1.getRow(); while(rs1.next()) { str[n] = rs1.getString("FirstName"); rowArray.add(str[n]); //out.println("<tr><td><br></br>" + rowArray + "</td></tr>"); n++; } for (int i=0;i<rowArray.size();i++) { //out.println("<tr><td><br>name======" + rowArray.get(i) + "</td></tr>"); request.getSession().setAttribute("myArrayList",ro wArray); RequestDispatcher requestDispatcher=getServletContext().getRequestDi spatcher("/index.jsp"); requestDispatcher.forward(request,response); } } catch(Exception e) { System.out.println(e); e.printStackTrace(); } //return name; // out.close(); } } ---------------------------- <%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@page import="IRIS.*"%> <%@page import="java.sql.*"%> <%@page import="java.util.*"%> <%@ page session="true"%> <%@page import="java.io.*"%> <%@page import="java.net.*"%> <%@page import="javax.servlet.*"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <h1></h1> <!--/ <img src="Images/Logo_Final Splash.gif" width="450" height="200" alt="Logo_Final Splash"/> --> <table border="1"> <tr><td><B>Emp Names</B></td></tr> <% try { String myString =""; ArrayList pageArray = new ArrayList(); pageArray.add(request.getSession().getAttribute("m yArrayList")); //pageArray.add(request.getAttribute("myArrayList")) ; for (int i=0;i<pageArray.size();i++) { out.println(pageArray.get(i)); } out.println(pageArray.size()); } catch(Exception e) { out.println(e); e.printStackTrace(); } %> </table> </body> </html> |
|
|
|
|
| Thread Tools | |
| Display Modes | |
|
|