获取浏览jsp页面的总时长和日期,并存储到数据库中
时间: 2024-05-06 15:22:11 浏览: 180
要实现这个功能,需要在JSP页面中嵌入JavaScript代码来获取页面的总时长和日期,然后使用Java代码将这些数据存储到数据库中。
以下是一个简单的实现步骤:
1. 在JSP页面中嵌入以下JavaScript代码:
```
<script>
var startTime = new Date().getTime();
window.addEventListener('beforeunload', function() {
var endTime = new Date().getTime();
var totalTime = endTime - startTime;
var currentDate = new Date().toISOString().slice(0, 10);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'saveData.jsp', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('totalTime=' + totalTime + '¤tDate=' + currentDate);
});
</script>
```
这段代码会在页面加载时记录开始时间,然后在页面离开时计算总时长,并将总时长和当前日期发送到服务器端的saveData.jsp页面。
2. 在saveData.jsp页面中使用Java代码获取传递过来的数据,并将其存储到数据库中。以下是一个示例代码:
```
<%@ page import="java.sql.*" %>
<%
int totalTime = Integer.parseInt(request.getParameter("totalTime"));
String currentDate = request.getParameter("currentDate");
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "username", "password");
pstmt = conn.prepareStatement("INSERT INTO page_data (total_time, date) VALUES (?, ?)");
pstmt.setInt(1, totalTime);
pstmt.setString(2, currentDate);
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
}
%>
```
这段代码会将总时长和日期插入到名为page_data的数据库表中。
注意:这只是一个简单的示例代码,实际实现中需要考虑更多的细节和安全性。例如,应该对传递的数据进行验证和过滤,以防止SQL注入攻击。
阅读全文