Java j2ee更新表值甚至不幸地关闭了浏览器或tap

Java j2ee更新表值甚至不幸地关闭了浏览器或tap,java,jquery,jsp,servlets,browser,Java,Jquery,Jsp,Servlets,Browser,我想在关闭浏览器/点击时更新数据库表值。这是我不满意的代码 Home.jsp: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <

我想在关闭浏览器/点击时更新数据库表值。这是我不满意的代码

Home.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="jquery1.11.0.min.js"></script>
</head>
<body>
<h1>Login success!...</h1>

<script type="text/javascript">
$( window ).unload(function() {

    $.post( "BrowserCloseServlet", function( ) {

    });
});

</script>

</body>
</html>
当我运行代码并关闭浏览或点击时,不会发生任何事情

有人告诉我如何在关闭浏览器/点击时调用BrowserCloseServlet.java并进行更新


我哪里错了?

这一问题的根本原因是$window.unload。你应该了解这个问题。此链接将告诉您何时触发卸载事件。一件事是在.jsp中调用$.post&在servlet端doPost为空。为什么会这样?你想做什么?我认为您的业务逻辑应该包含在BrowserCloseServlet中的doPost方法中。让我们试试这个。那么情况如何?你在使用Servlet3吗?你有什么例外吗?如果是,请将其添加到问题中。@OO7我更改了它,但这不是确切的问题。问题是BrowserCloseServlet在关闭窗口时未调用。那么我应该在这里使用什么正确的事件呢?请参阅ur@WebServlet name is BrowserCloseServlet&您已经在$.post中指定了BroserCloseServlet。w不见了。
 import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import com.sun.corba.se.spi.orb.ParserImplBase;




    /**
     * Servlet implementation class BrowserCloseServlet
     */
    @WebServlet("/BrowserCloseServlet")
    public class BrowserCloseServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;

        /**
         * @see HttpServlet#HttpServlet()
         */
        public BrowserCloseServlet() {
            super();
            // TODO Auto-generated constructor stub
        }

        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub



        }

        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub

String getId = request.getParameter("getid");
            Connection con = null;
            PreparedStatement pst = null;
            PreparedStatement pst2 = null;
            ResultSet rst = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
                con =DriverManager.getConnection("jdbc:mysql://localhost:3306/raptor1_5","root","");
                String query ="select NoOfCount from tbl_BroserCloseTable ";
                String query2 ="update tbl_BroserCloseTable set NoOfCount= ? where Sno= ?";
                //Statement st = con.createStatement();
                //st.executeUpdate("");
                pst = con.prepareStatement(query);

                rst = pst.executeQuery(query);
                if(rst.next())
                {
                    int count = rst.getInt(1);
                    System.out.println("Actuall count is :"+count);
                    count -= 1; 

                    pst2 = con.prepareStatement(query2);
                    pst2.setInt(1, count);
                    pst2.setInt(2, 1);
                    pst2.executeUpdate();
                    System.out.println("Updated successfully...");


                }

            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            finally
            {
                try {
                    con.close();
                    rst.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }



        }

    }