如何在java servlets中提交后在网页上显示数据?

时间:2017-11-23 10:07:00

标签: java mysql servlets

这里是html页面的图片现在我想输入的内容应该在我输入注册按钮时出现。文件连接到mysql,每当我注册时都会显示输入的数据。这里是图片的链接。

https://i.stack.imgur.com/aTRfP.png

这是java文件的代码。

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    String name = request.getParameter("name");
    String email = request.getParameter("email");
    String pass = request.getParameter("pass");
    try{

    //loading drivers for mysql
    Class.forName("com.mysql.jdbc.Driver");

//creating connection with the database 
      Connection  conn=DriverManager.getConnection
                 ("jdbc:mysql://localhost:3306/form","root","xxxx");

    PreparedStatement ps=conn.prepareStatement
              ("insert into Student values(?,?,?)");

    ps.setString(1, name);
    ps.setString(2, email);
    ps.setString(3, pass);
    int i=ps.executeUpdate();

      if(i>0)
      {
        out.println("you are successfully regitered");
      }
      String query = "SELECT * FROM student";

  // create the java statement
  Statement st = conn.createStatement();

  // execute the query, and get a java resultset
  ResultSet rs = st.executeQuery(query);

  // iterate through the java resultset
  while (rs.next())
  {
                rs.getString("name");
                rs.getString("email");
                rs.getString("pass");


    // print the results
    System.out.format("%s, %s, %s\n", name, email, pass);
     System.out.print("name: " + name);
     System.out.print(", email: " + email);
     System.out.print(", pass: " + pass);

  }

  st.close();

    }
    catch(Exception se)
    {
        se.printStackTrace();
    }


  }

我尝试在println函数中添加html页面的链接,但这不起作用所以请建议。

1 个答案:

答案 0 :(得分:1)

据我了解,您希望在成功添加数据时显示确认消息。 当您调用url时,会创建一个包含所有标头和参数的请求并发送到服务器。在您的情况下,servlet容器捕获它并处理它并发回响应。

写入答案可以通过以下方式完成:

PrintWriter out = response.getWriter();
out.println("message to return"); 

但是,这不会在网页中显示该消息。你必须明确地这样做。你可以用两种方式做到这一点。 1使用ajax。 2使用jsp。

使用AJAX 对URL进行ajax调用,并以您想要的方式处理响应。使用像jQuery这样的库可以轻松实现。

使用JSP 在doGet()doPost()方法中,在最后添加此行

request.setAttribute("message", "my message");
request.getRequestDispatcher(URL).forward(request, response);

重定向到具有属性集的指定URL。通常,它是一个jsp页面,您可以在其中读取属性并随意显示它。