JSP Счетчик посещений
Иногда нам нужно знать, сколько раз страница была посещена. В этом случае нам нужно добавить счетчик посещений на страницу. Количество посещений страницы обычно увеличивается, когда пользователь впервые загружает страницу.
Чтобы реализовать счетчик, вы можете использовать неявный объект application и связанные с ним методы getAttribute() и setAttribute().
Этот объект представляет весь жизненный цикл JSP-страницы. Он создается при инициализации JSP-страницы и уничтожается, когда JSP-страница вызывает jspDestroy().
Ниже приведен синтаксис создания переменной в application:
application.setAttribute(String Key, Object Value);
Вы можете использовать вышеуказанные методы, чтобы задать переменную-счетчик и обновить ее значение. Метод для чтения переменной выглядит следующим образом:
application.getAttribute(String Key);
Каждый раз при обращении к странице вы можете прочитать текущее значение счетчика, увеличить его на 1 и затем установить его заново. Новое значение будет отображаться на странице, когда в следующий раз пользователь посетит страницу.
Демо
В этом примере будет показано, как использовать JSP для подсчета общего числа посещений конкретной страницы. Если вы хотите подсчитывать общее количество посещений для всех страниц вашего сайта, вы должны разместить этот код на всех JSP-страницах.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<html>
<html>
<head>
<title>访问量统计</title>
</head>
<body>
<%
Integer hitsCount =
(Integer)application.getAttribute("hitCounter");
if( hitsCount ==null || hitsCount == 0 ){
/* 第一次访问 */
out.println("欢迎访问Example!");
hitsCount = 1;
}else{
/* 返回访问值 */
out.println("欢迎再次访问Example!");
hitsCount += 1;
}
application.setAttribute("hitCounter", hitsCount);
%>
<p>页面访问量为: <%= hitsCount%></p>
</body>
</html>
Теперь мы помещаем приведенный выше код в файл main.jsp и посещаем файл по адресуhttp://localhost:8080/testjsp/main.jsp. Вы увидите, что страница генерирует счетчик. Каждый раз, когда мы обновляем страницу, счетчик будет меняться (увеличиваться на 1 при каждом обновлении).
Вы также можете открывать его из разных браузеров, и счетчик будет увеличиваться на 1 после каждого посещения. Как показано ниже:
Сбросить счетчик
При использовании вышеуказанного метода счётчик будет сброшен в 0 после перезапуска веб-сервера, а значит, все ранее сохранённые данные исчезнут. Вы можете использовать следующие методы для решения этой проблемы:
- Определите в базе данных таблицу данных count для подсчёта посещений веб-страниц с полем hitcount, значение по умолчанию которого равно 0, и записывайте статистические данные в эту таблицу данных.
- При каждом посещении мы читаем поле hitcount из таблицы.
- Увеличивайте hitcount на 1 при каждом посещении.
- Отображайте новое значение hitcount на странице как количество посещений страницы.
- Если вам нужно подсчитывать посещения для каждой страницы, вы можете использовать вышеуказанную логику, чтобы добавить код на все страницы.