从servlet在jsp中显示数据
我是一个乞丐,我试图在数据库中显示数据。我有一个控制器servlet、DBhelper、table.jsp和一个索引 这是控制器servlet从servlet在jsp中显示数据,jsp,servlets,Jsp,Servlets,我是一个乞丐,我试图在数据库中显示数据。我有一个控制器servlet、DBhelper、table.jsp和一个索引 这是控制器servlet import java.io.IOException; import java.sql.ResultSet; import javax.annotation.Resource; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; impor
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;
}
}
这是table.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)问题在这里:
if(page.equals("table")){
ResultSet rs = new DBhelper().getUsers(dataSource);
request.getRequestDispatcher("table.jsp").forward(request, response);
request.setAttribute("users", rs);
}
在设置users
属性之前,您将流转发到JSP页面,因此您的结果集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
),它应该可以工作。问题在于:
if(page.equals("table")){
ResultSet rs = new DBhelper().getUsers(dataSource);
request.getRequestDispatcher("table.jsp").forward(request, response);
request.setAttribute("users", rs);
}
在设置users
属性之前,您将流转发到JSP页面,因此您的结果集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
)。out.println(用户名)代码>。。。你在这条线上有错误的回跳。我刚刚删除了它,但仍然有错误。你有什么错误?你为什么强迫我们猜测而不是阅读和发布它?out.println(用户名)代码>。。。你在这条线上有错误的回跳。我刚刚删除了它,但仍然有错误。你有什么错误?你为什么强迫我们猜测而不是阅读和发布它?