2017-03-01 54 views
0

我是一個begginer,我試圖在數據庫中顯示數據。我有一個控制器servlet,DBhelper,table.jsp和索引...在servlet中顯示jsp的數據

這是控制器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); 
    } 

} 
} 

這是DBhelper ..

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; 
    } 
} 

這是表.JSP

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

%> 

我在table.jsp得到一個錯誤,在該行同時(rs.next)

+0

'out.println(username);'......你在這條線上有反射。 –

+0

我剛剛刪除它,並得到錯誤 – oma

+0

你會得到哪個錯誤?你爲什麼強迫我們猜測而不是閱讀併發布它? –

回答

2

的問題是在這裏:

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

你要轉發之前流向JSP頁面設置users屬性,因此你ResultSet rs是在JSP null。順序更改爲

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

,它應該工作(當然,如果DBhelper.getUsers(...)回報不爲空ResultSet)。

+0

它現在有效,非常感謝你.. – oma

相關問題