記事のディレクトリ
まず、アイデア
(A)変数(hitcounter)は、プログラムの動作中に効果的である、それはリセットされません。そのため、スコープの最大の内蔵アプリケーション内のオブジェクトを使用して。
(B)(存在しないかもしれない)アプリケーションがすでに存在している取得。
Integer hitCounter = (Integer)application.getAttribute("hitCounter");
判定が既に存在するかどうか(C)。
プロジェクト | 存在しません。 | 存在します |
---|---|---|
条件 | hitCounter == nullの|| hitCounter == 0。 | hitCounter!= nullの&& hitCounter!= 0 |
プロセス | hitCounter = 1 | hitCounter ++ |
(D)更新されたデータ、および再度書き込みプログラム。
application.setAttribute("hitCounter", hitCounter);
(E)ページが表示されます。
<p>页面访问量为: <%=hitCounter %></p>
第二に、短期記憶(データベースなし)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>访问量统计</title>
</head>
<body>
<%
Integer hitsCount = (Integer)application.getAttribute("hitCounter");
if( hitsCount ==null || hitsCount == 0 ){
out.println("欢迎访问!");
hitsCount = 1; /* 第一次访问 */
}else{
out.println("欢迎再次访问!");
hitsCount += 1;/* 返回访问值 */
}
application.setAttribute("hitCounter", hitsCount);
%>
<p>页面访问量为: <%=hitsCount %></p>
</body>
</html>
第三に、長期保存(データベースで)
常にデータベース、パフォーマンスの低下に接続する必要があります。...未完成。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<title>访问量统计</title>
</head>
<body>
<%
Integer hitsCount = (Integer)application.getAttribute("hitCounter");
if( hitsCount ==null || hitsCount == 0 ){
out.println("欢迎访问!");
hitsCount = 1; /* 第一次访问 */
}else{
out.println("欢迎再次访问!");
hitsCount += 1;/* 返回访问值 */
}
application.setAttribute("hitCounter", hitsCount);
%>
<p>页面访问量为: <%=hitsCount %></p>
</body>
</html>