Comment puis-je gérer / restreindre l'accès des utilisateurs aux servlets & amp; jsp?

Je suis actuellement à la rédaction d'un peu de dynamique d'applications web en Java.
L'application est censé être un événement de plate-forme où vous pouvez créer un compte d'utilisateur, connectez-vous, et puis vous pouvez voir tous les événements ouverts (dans une version ultérieure, les utilisateurs peuvent créer et/ou participer à ces événements).

Droit maintenant, la structure de l'application web pourrait être (simplifié) décrit comme ceci:

Register-Servlet -> Register.jsp
        |
        V
Login-Servlet -> Login.jsp
        |
        V
Main-page-Servlet -> Main.jsp

Donc, dès maintenant, un utilisateur peut se connecter.jsp, son login-renseignements seront envoyés à la Connexion-Servlet, qui permettrait de valider, puis l'envoyer à la main-Page-Servlet.
Le Principal-Page-Servlet ensuite (après validation de connecter de nouveau) reçoit tous les événements en cours à partir d'une base de données, qu'il attache à la demande et la transmet à la Main.jsp qui affiche pour l'utilisateur de voir.

Maintenant, si un utilisateur veut accéder à la Principale.jsp directement (sans venir de la main-Page-Servlet), il est évident qu'elle ne peut pas afficher les événements disponibles. La solution que j'utilise actuellement est en train de faire un null-vérifier pour voir si les événements sont là, et si non, rediriger vers la Page-Servlet.

Ça me dérange pour résoudre mon problème, car je ne pense pas que c'est la meilleure pratique et je pense que ça va juste créer beaucoup d'autres problèmes le plus gros de mon application se.

Ma première pensée à propos de ce qu'est, qu'il pourrait être utile si je pouvais tout simplement "cacher".jsp de l'utilisateur, de sorte que l'utilisateur serait à l'atterrissage sur les servlets seulement et ne peut pas accéder à l' .jsp est d'une manière différente.

Est-il un moyen de le faire? Ou, si non, quelle serait la meilleure solution si je serait la rédaction d'un professionnel de l'entreprise au niveau de l'application?

source d'informationauteur MrTrustworthy