稍后访问时,servlet页面显示为空白

时间:2014-06-15 17:13:04

标签: java mysql servlets jdbc tomcat7

我对 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) { }
      }     

}

0 个答案:

没有答案