0
这是我的代码写入从数据库使用servlet的浏览器中显示的查询结果对浏览器进行打印,无法从DB数据使用servlet的
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class DatabaseAccess extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
// JDBC driver name and database URL
// static final String JDBC_DRIVER="com.mysql.jdbc.Driver";
final String DB_URL="jdbc:postgresql://localhost:5432/postgres";
// Database credentials
final String USER = "postgres";
final String PASS = "postgres";
// Set response content type
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Database Result";
String docType =
"<!doctype html public \"-//w3c//dtd html 4.0 " +
"transitional//en\">\n";
out.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n" +
"<body bgcolor=\"#f0f0f0\">\n" +
"<h1 align=\"center\">" + title + "</h1>\n");
try{
// Register JDBC driver
Class.forName("org.postgresql.Driver");
// Open a connection
Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
// Execute SQL query
Statement stmt = conn.createStatement();
String sql;
sql = "SELECT docid,term,term_frequency,tf FROM fea2";
ResultSet rs = stmt.executeQuery(sql);
out.println("<h4>connected to db</h4>");
// Extract data from result set
while(rs.next()){
//Retrieve by column name
int docid = rs.getInt("docid");
int term_frequency = rs.getInt("term_frequency");
String term = rs.getString("term");
float tf = rs.getFloat("tf");
//Display values
out.println("ID: " + docid + "<br>");
out.println(", Age: " + term_frequency + "<br>");
out.println(", First: " + term + "<br>");
out.println(", Last: " + tf + "<br>");
}
out.println("</body></html>");
out.println("got data from db");
// Clean-up environment
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}
}
}
此代码仅打印为“数据库结果“在浏览器上,但不是来自表fea1的内容。此表存在并填充数据。
的web.xml:
<servlet>
<servlet-name>DatabaseAccess</servlet-name>
<servlet-class>DatabaseAccess</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DatabaseAccess</servlet-name>
<url-pattern>/DatabaseAccess</url-pattern>
</servlet-mapping>
我不知道还有什么是错的。我希望我的查询结果能够在浏览器上打印。请帮助。任何关于我在做什么的错误?
您面临的问题是什么?预期的bahaviour和你得到了什么? –
代码在servlet中有多远?尝试添加打印语句来缩小您获得的距离。你有什么堆栈跟踪?您正在将堆栈跟踪打印到System.out,那么您是否知道如何找到它?如果你不确定,'e.printStackTrace(out)'而不是将堆栈打印到servlet响应中。 –