我在JSP中寫了一個計數器,用於我的課程。我寫了代碼,並沒有錯誤和它的工作,但問題是: 如果用戶打開網站並嘗試使用不同的頁面,每當用戶返回主頁時,計數器仍然是添加一個數字,我該如何限制這部分?應該用會話來限制它? 這是我的代碼:如何限制JSP命中計數器?
<jsp:useBean id="counter" scope="application" class="counter.CounterBean" />
The current count for the counter bean is:
<jsp:setProperty name="counter" property="coun" value="1"></jsp:setProperty>
<%
counter.saveCount();
int _numberofvisitors=counter.getVisitorsNumber();
out.println(_numberofvisitors);
%>
豆:
package counter;
import java.sql.*;
import java.sql.SQLException;
public class CounterBean implements java.io.Serializable {
int coun = 0;
public CounterBean() {
database.DatabaseManager.getInstance().getDatabaseConnection();
}
public int getCoun() {
return this.coun;
}
public void setCoun(int coun) {
this.coun += coun;
}
public boolean saveCount() {
boolean _save = false;
database.SQLUpdateStatement sqlupdate = new database.SQLUpdateStatement("counter", "hitcounter");
sqlupdate.addColumn("hitcounter", getCoun());
if (sqlupdate.Execute()) {
_save = true;
}
return _save;
}
public int getVisitorsNumber() throws SQLException {
int numberOfVisitors = 0;
if (database.DatabaseManager.getInstance().connectionOK()) {
database.SQLSelectStatement sqlselect = new database.SQLSelectStatement("counter", "hitcounter", "0");
ResultSet _userExist = sqlselect.executeWithNoCondition();
if (_userExist.next()) {
numberOfVisitors = _userExist.getInt("hitcounter");
}
}
return numberOfVisitors;
}
}
目前還不清楚你想算什麼:1獨特的訪問者每次不管所訪問的頁面的?你想基於會話還是基於獨特的IP來計算這個值?或者您想每次訪問每位訪問者的唯一瀏覽量?等 – BalusC 2010-04-18 14:55:46