servlet为什么在页面上没有输出数据,请高手帮忙看看下面的代码,代码是编译通过了的
importjava.io.*;importjava.sql.*;importjava.util.*;importjavax.servlet.*;importjavax....
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.lang.*;
public class dllDemonServlet extends HttpServlet
{
private String driverName="com.mysql.jdbc.Driver"; //驱动程序名
private String userName="root"; //数据库用户名
private String userPwd="123456"; //密码
private String dbName="netshop"; //数据库名
private String url="jdbc:mysql://localhost/"+dbName+
"?user="+userName+"&password="+userPwd; //连接字符串
private Connection conn=null; //数据库连接对象
public Statement sm=null; //数据库语句对象
private PrintWriter out = null;
// 建立数据库连接
public void ConnectDB(){
try {
Class.forName(driverName).newInstance();
conn=DriverManager.getConnection(url); //获得数据库连接
sm=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
} catch(Exception e) {
e.printStackTrace();
out.print("数据库连接失败!");
}
}
public void CloseDB(){
try {
if (sm != null) {
sm.close();
}
conn.close();
} catch (SQLException SqlE) {
SqlE.printStackTrace();
out.print("数据库关闭失败!");
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
ConnectDB();
try {
String sql = "select * from dlldisplay";
sql = new String(sql.getBytes("ISO8859-1"), "GB2312");
ResultSet rs=sm.executeQuery(sql);
StringBuffer sb=new StringBuffer();
sb.append("<html>");
sb.append("<head>");
sb.append("<title>aaa</title>");
sb.append("</head>");
sb.append("<body>");
sb.append("<font size=4>aaa");
sb.append("</body>");
sb.append("</html>");
/* out=response.getWriter();
while(rs.next())
{
out.print(rs.getString("DisplayName"));
}*/
}
catch (SQLException SqlE) {
}
catch (Exception E) {
}
finally {
// 关闭连接,释放数据库资源:
CloseDB();
}
}
}
页面上一片空白,查看页面源代码body之间没有东西,请问是什么问题啊? 展开
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.lang.*;
public class dllDemonServlet extends HttpServlet
{
private String driverName="com.mysql.jdbc.Driver"; //驱动程序名
private String userName="root"; //数据库用户名
private String userPwd="123456"; //密码
private String dbName="netshop"; //数据库名
private String url="jdbc:mysql://localhost/"+dbName+
"?user="+userName+"&password="+userPwd; //连接字符串
private Connection conn=null; //数据库连接对象
public Statement sm=null; //数据库语句对象
private PrintWriter out = null;
// 建立数据库连接
public void ConnectDB(){
try {
Class.forName(driverName).newInstance();
conn=DriverManager.getConnection(url); //获得数据库连接
sm=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
} catch(Exception e) {
e.printStackTrace();
out.print("数据库连接失败!");
}
}
public void CloseDB(){
try {
if (sm != null) {
sm.close();
}
conn.close();
} catch (SQLException SqlE) {
SqlE.printStackTrace();
out.print("数据库关闭失败!");
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
ConnectDB();
try {
String sql = "select * from dlldisplay";
sql = new String(sql.getBytes("ISO8859-1"), "GB2312");
ResultSet rs=sm.executeQuery(sql);
StringBuffer sb=new StringBuffer();
sb.append("<html>");
sb.append("<head>");
sb.append("<title>aaa</title>");
sb.append("</head>");
sb.append("<body>");
sb.append("<font size=4>aaa");
sb.append("</body>");
sb.append("</html>");
/* out=response.getWriter();
while(rs.next())
{
out.print(rs.getString("DisplayName"));
}*/
}
catch (SQLException SqlE) {
}
catch (Exception E) {
}
finally {
// 关闭连接,释放数据库资源:
CloseDB();
}
}
}
页面上一片空白,查看页面源代码body之间没有东西,请问是什么问题啊? 展开
4个回答
展开全部
private String driverName="com.mysql.jdbc.Driver"; //驱动程序名
private String userName="root"; //数据库用户名
private String userPwd="123456"; //密码
private String dbName="netshop"; //数据库名
private String url="jdbc:mysql://localhost/"+dbName+
"?user="+userName+"&password="+userPwd; //连接字符串
private Connection conn=null; //数据库连接对象
public Statement sm=null; //数据库语句对象
private PrintWriter out = null;
servlet是一个单例,会有多线程问题。不要放在类属性里面,建议放在doGet里面。建议debug下是哪里出了问题。
private String userName="root"; //数据库用户名
private String userPwd="123456"; //密码
private String dbName="netshop"; //数据库名
private String url="jdbc:mysql://localhost/"+dbName+
"?user="+userName+"&password="+userPwd; //连接字符串
private Connection conn=null; //数据库连接对象
public Statement sm=null; //数据库语句对象
private PrintWriter out = null;
servlet是一个单例,会有多线程问题。不要放在类属性里面,建议放在doGet里面。建议debug下是哪里出了问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
out.print("数据库连接失败!");
你第一次用out 的时候还没有初始化,应该是报了空对象异常
应该先out=reponse.getWriter(); 才能使用out 输出
你第一次用out 的时候还没有初始化,应该是报了空对象异常
应该先out=reponse.getWriter(); 才能使用out 输出
追问
如果连接成功是不会用到OUT的,我后面用的StringBuffer输出的,还是不行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要输出的内容一直都在服务器端缓存着,根本就没有输出到客户端。
在这sb.append("</html>");后面
加上这段代码试试。
PrintWriter out=response.getWriter();
out.print(sb.toString());
out.flush();
out.close();
在这sb.append("</html>");后面
加上这段代码试试。
PrintWriter out=response.getWriter();
out.print(sb.toString());
out.flush();
out.close();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你你并没有out.print(sb)啊……马虎了吧?
更多追问追答
追问
像这样写吗out.print(sb.append(""));还是什么都没有啊
追答
就是out.print(sb)啊
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询