2010-04-01 5 views
0

Je souhaite ajouter un compteur d'accès à mon application Web JSF. Comme dans PHP, nous pouvons utiliser un fichier texte externe pour stocker le nombre et l'incrémenter et l'écrire sur chaque requête. Comment utiliser dans JSF?Compteur HIt dans JSF

+0

donner plus de détails – Bozho

Répondre

0

Vous pourriez faire ceci, mais la seule situation que je peux penser pour elle serait pour les devoirs. Quoi qu'il en soit, il suffit d'avoir un Backing Bean qui lit/incrémente/écrit le fichier. Voir Apache Commons IO FileUtils pour quelques bonnes méthodes d'assistance. Bien que si c'est devoirs, vous obtiendrez sans doute de meilleures notes pour rouler le vôtre ;-)

1

Je suggère d'utiliser simplement un Filter pour cela. Mettre en œuvre javax.servlet.Filter en conséquence et mappez-le en web.xml sur un url-pattern d'intérêt.

E.g. (Demi pseudo):

public void doFilter(request, response) { 
    int count = readCountFromFile(); 
    count++; 
    writeCountToFile(count); 
    chain.doFilter(request, response); 
} 

Le Java IO tutorial peut être utile à lire et à écrire le contenu du fichier.

Vous n'avez pas nécessairement besoin de JSF pour cela. JSF est juste construit au-dessus de l'API Servlet et vous pouvez utiliser les filtres comme bons. Sinon, vous devez créer un bean et vous devez vous assurer que chaque vue appelle ce bean en quelque sorte sur chaque demande.

+0

le fait d'écrire dans un fichier, serait-ce un problème de performance ?? le fait d'accéder à chaque fois que le disque est lent. – neo

+0

@neo: Ce n'est pas couvert par la question dans sa forme actuelle. OP explicitement demandé d'écrire sur le disque. – BalusC

+0

Ok J'essayais de mettre en place un compteur de visites et quand j'ai vu ta réponse j'ai fait un commentaire pour clarifier les choses pour moi ... Je pense que je vais l'implémenter en utilisant une carte avec des éléments pour chaque page et vider les résultats à la base de données périodiquement quelque chose comme une fois par jour. – neo