2017-03-01 4 views
0

Ich bin ein Anfänger, ich versuche, Daten in der Datenbank anzuzeigen. Ich habe ein Controller-Servlet, DBhelper, table.jsp und ein Index ...Anzeige Daten in JSP von Servlet

dies ist das Controller-Servlet

import java.io.IOException; 
import java.sql.ResultSet; 

import javax.annotation.Resource; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.sql.DataSource; 
import demo2.DBhelper; 

/** 
* Servlet implementation class servletJsp 
*/ 
@WebServlet("/servletJsp") 
public class controller extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    @Resource(name="") 
    private DataSource dataSource; 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

     String page; 
     if(request.getParameterMap().containsKey("page")){ 
      page =request.getParameter("page"); 
     }else{ 
      page="index"; 
     } 
     if(page.equals("table")){ 
      ResultSet rs =new DBhelper().getUsers(dataSource); 
      request.getRequestDispatcher("table.jsp").forward(request, response); 
      request.setAttribute("users", rs); 
    } 

} 
} 

dies der DBhelper ist ..

package demo2; 



import java.sql.Connection; 
import java.sql.ResultSet; 
import java.sql.Statement; 


import javax.sql.DataSource; 

public class DBhelper { 

    private ResultSet users =null; 

    public ResultSet getUsers(DataSource dataSource) { 

     Connection con; 
     Statement st; 

     try{ 
     con =dataSource.getConnection(); 
     st=con.createStatement(); 

     String query="select * from authorities"; 
     users= st.executeQuery(query); 
     }catch(Exception e){ 

      e.printStackTrace(); 
     } 
     return users; 
    } 
} 

dies ist der Tisch .jsp

<%@ page import="java.sql.ResultSet" %> 
<% 
ResultSet rs = (ResultSet)request.getAttribute("users"); 
while(rs.next()){ 
    String username = rs.getString("username"); 
    out.println(username);`` 
} 

%> 

ich in der table.jsp eine Störung erhalte, in der Linie, während (rs.next)

+0

'out.println (username);' ... Sie haben verirrte Backticks in dieser Zeile. –

+0

Ich habe es einfach entfernt und immer noch Fehler – oma

+0

Welchen Fehler bekommen Sie? Warum zwingst du uns zu raten statt zu lesen und zu posten? –

Antwort

2

Das Problem ist hier:

if(page.equals("table")){ 
    ResultSet rs = new DBhelper().getUsers(dataSource); 
    request.getRequestDispatcher("table.jsp").forward(request, response); 
    request.setAttribute("users", rs); 
} 

Sie den Fluss auf die JSP-Seite vor Weiterleiten das users Attribute Einstellung, damit Ihre ResultSet rsnull in Ihrer JSP ist. Ändern Sie die Reihenfolge zu

if(page.equals("table")){ 
    ResultSet rs = new DBhelper().getUsers(dataSource); 
    request.setAttribute("users", rs); 
    request.getRequestDispatcher("table.jsp").forward(request, response); 
} 

und es sollte funktionieren (natürlich, wenn DBhelper.getUsers(...) kehrt nicht null ResultSet).

+0

Es funktioniert jetzt, vielen Dank .. – oma