我对 servlet页面有一个奇怪的问题。我有一个简单的Web应用程序,它只包含一个servlet。我在Tomcat 7
中部署了它。当用户输入url时,servlet应该直接执行,从数据库中获取数据并打印输出。但它在一段时间后显示空白页面。当我取消部署和部署时,它会显示数据。在我访问该页面一段时间后,它显示空白页面。然后当我重新部署时,它会显示数据。有人可以让我知道如何解决这个问题?我不知道为什么会这样。以下是我的代码。
我正在使用mysql
数据库。mysql-connector-java-5.1.29-bin.jar
添加到lib文件夹中并添加到buildpath。
public class Homeservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
static final String mysqldblink = "************";
static final String mysqlUsername = "username";
static final String mysqlPassword = "pw";
Connection connection =null;
Statement stmt = null;
/**
* @see HttpServlet#HttpServlet()
*/
public Homeservlet() {
super();
// TODO Auto-generated constructor stub
}
public void init(ServletConfig config) throws ServletException
{
super.init(config);
try{
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(mysqldblink,
mysqlUsername, mysqlPassword);
stmt = connection.createStatement();
}
catch(Exception E)
{
E.printStackTrace();
}
}
@Override
public void service(ServletRequest request, ServletResponse response)
{
PrintWriter pw = null;
try {
String query = "querytogetdata";
pw = response.getWriter();
ResultSet rs = stmt.executeQuery(query);
while(rs.next())
{
pw.println(rs.getString(1));
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(Exception e)
{
e.printStackTrace();
}finally{
try{
pw.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
@Override
public void destroy( ) {
// Close the connection
try {
if (connection != null)
connection.close( );
if(stmt != null)
stmt.close();
} catch (SQLException ignore) { }
}
}