How to load menu on webpage depends upon login user? I want to make websites where some menu will show before login and after login it will show more menu depends upon login
You can just use JSTL to programmatically control the flow in the HTML output of the JSP. You can check the role of the currently logged-in user by HttpServletRequest#isUserInRole() which returns a boolean
.
As you're using Servlet 3.0, you'll also be able to take benefit of the new EL 2.2 support of invoking methods with arguments. So, this should do:
<c:if test="${pageContext.request.isUserInRole('admin')}">
<p>This will be displayed only if the user has the role "admin".</p>
</c:if>
<c:if test="${pageContext.request.isUserInRole('guest')}">
<p>This will be displayed only if the user has the role "guest".</p>
</c:if>
You could have different menus in different jsps and then include those jsps based upon the logged in user.
For instance...
<%if(userRole.equals("admin")){%>
<jsp:include page="../menu/admin_menu.jsp" />
<%}%>
<%if(userRole.equals("user")){%>
<jsp:include page="../menu/user_menu.jsp" />
<%}%>