title: How can I handle/restrict user-access to servlets & jsp's?
body: <p>I'm currently writing a little dynamic web-application in Java.
  The application is supposed to be an event-platform where you can create a user-account, log in, and then you can see all open events (in a later iteration, users can create/participate in those events).</p>
  
  <p>Right now, the structure of the web-app could be (simplified) described like this:</p>
  
  <pre><code>Register-Servlet -&gt; Register.jsp
          |
          V
  Login-Servlet -&gt; Login.jsp
          |
          V
  Main-page-Servlet -&gt; Main.jsp
  </code></pre>
  
  <p>So right now, a user could go to Login.jsp, his login-information would be sent to the Login-Servlet, which would validate it and then send it to the Main-Page-Servlet.
  The Main-Page-Servlet then (after validating login again) gets all current events from a database, attaches it to the request, and forwards it to the Main.jsp, which displays it for the user to see.</p>
  
  <p>Now, if a user wants to access the Main.jsp directly (without coming from the Main-Page-Servlet), it obviously can not display the available events. The workaround I'm using currently is doing a null-check to see if the events are there, and if not, redirect to the Main-Page-Servlet.</p>
  
  <p>It bothers me to solve my problem like that, as I don't think that's the best practice and I think it will just create a lot of other problems the bigger my application gets.</p>
  
  <p>My first thought about this was, that it might be useful if I could simply "hide" all .jsp's from the user, so the user would be landing on servlets only and could not access the .jsp's in a different way. </p>
  
  <p>Is there a way to do that? Or, if not, what would be the best practice solution if I would be writing a professional enterprise-level application?</p>