JSP - Bộ đếm lượt truy cập
Trong chương này, chúng ta sẽ thảo luận về Bộ đếm lượt truy cập trong JSP. Bộ đếm lượt truy cập cho bạn biết về số lượt truy cập trên một trang cụ thể trên trang web của bạn. Thông thường, bạn đính kèm bộ đếm lượt truy cập với trang index.jsp của mình giả sử mọi người truy cập trang chủ của bạn lần đầu tiên.
Để triển khai bộ đếm lượt truy cập, bạn có thể sử dụng đối tượng Ngầm ứng dụng và các phương thức liên quan getAttribute() và setAttribute().
Đối tượng này là đại diện của trang JSP thông qua toàn bộ vòng đời của nó. Đối tượng này được tạo khi trang JSP được khởi tạo và sẽ bị xóa khi trang JSP bị xóa bởijspDestroy() phương pháp.
Sau đây là cú pháp để đặt một biến ở cấp ứng dụng:
application.setAttribute(String Key, Object Value);
Bạn có thể sử dụng phương pháp trên để đặt biến bộ đếm lần truy cập và đặt lại cùng một biến. Sau đây là phương thức để đọc biến được đặt bởi phương thức trước:
application.getAttribute(String Key);
Mỗi khi người dùng truy cập trang của bạn, bạn có thể đọc giá trị hiện tại của bộ đếm lượt truy cập và tăng nó lên một và đặt lại nó để sử dụng trong tương lai.
Thí dụ
Ví dụ này cho thấy cách bạn có thể sử dụng JSP để đếm tổng số lần truy cập trên một trang cụ thể. Nếu bạn muốn đếm tổng số lượt truy cập vào trang web của mình thì bạn sẽ phải đưa cùng một mã vào tất cả các trang JSP.
<%@ page import = "java.io.*,java.util.*" %>
<html>
<head>
<title>Application object in JSP</title>
</head>
<body>
<%
Integer hitsCount = (Integer)application.getAttribute("hitCounter");
if( hitsCount ==null || hitsCount == 0 ) {
/* First visit */
out.println("Welcome to my website!");
hitsCount = 1;
} else {
/* return visit */
out.println("Welcome back to my website!");
hitsCount += 1;
}
application.setAttribute("hitCounter", hitsCount);
%>
<center>
<p>Total number of visits: <%= hitsCount%></p>
</center>
</body>
</html>
Bây giờ chúng ta hãy đặt đoạn mã trên vào main.jsp và gọi JSP này bằng cách sử dụng URL http://localhost:8080/main.jsp. Điều này sẽ hiển thị giá trị bộ đếm lần truy cập tăng lên khi bạn làm mới trang. Bạn có thể thử truy cập trang bằng các trình duyệt khác nhau và bạn sẽ thấy rằng bộ đếm lượt truy cập sẽ tiếp tục tăng theo mỗi lượt truy cập và bạn sẽ nhận được kết quả như sau:
Welcome back to my website!
Total number of visits: 12
Lượt đặt lại bộ đếm
Điều gì xảy ra khi bạn khởi động lại ứng dụng của mình, tức là máy chủ web, điều này sẽ đặt lại biến ứng dụng của bạn và bộ đếm của bạn sẽ đặt lại về 0. Để tránh mất mát này, hãy xem xét các điểm sau:
Xác định một bảng cơ sở dữ liệu với một số lượng duy nhất, giả sử chúng tôi nói rằng số lượng cao. Gán giá trị 0 cho nó.
Với mỗi lần truy cập, hãy đọc bảng để nhận giá trị của hitcount.
Tăng giá trị của hitcount lên một và cập nhật bảng với giá trị mới.
Hiển thị giá trị mới của hitcount dưới dạng tổng số lần truy cập trang.
Nếu bạn muốn tính số lần truy cập cho tất cả các trang, hãy triển khai logic trên cho tất cả các trang.