J'écris un compteur de succès dans JSP, pour mes cours. J'ai écrit le code, et il n'y a pas d'erreur et son fonctionnement, mais le problème est que: si l'utilisateur a ouvert le site Web et essayer d'utiliser une page différente, chaque fois que l'utilisateur retourne à la page d'accueil, le compteur est toujours en ajoutant un nombre, comment puis-je restreindre cette partie? doit le restreindre avec session? ceci est mon code:Comment restreindre un compteur de hits 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);
%>
Bean:
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;
}
}
On ne sait pas ce que vous voulez compter: 1 chaque visiteur unique quel que soit les pages visitées? Voulez-vous compter cela en fonction des sessions ou des IP uniques? Ou voulez-vous comptabiliser des pages vues uniques par visiteur à chaque fois? Etc. – BalusC