Question

J'ai une application Web qui comprend quelques pages jsp.Et ma page d'accueil est bienvenue.jsp Et l'URL de l'application ressemble à www.test.com

Ainsi, chaque fois qu'un utilisateur accède à l'URL (www.test.com), il est redirigé vers www.test.com/welcome.jsp.

maintenant, je veux que si un utilisateur souhaite accéder directement à une autre page comme www.test.com/*.jsp, il doit toujours rediriger vers ma page d'accueil qui est www.test.com/welcome.jsp

Veuillez donner toute suggestion sur la façon de le faire.

Était-ce utile?

La solution

Vous pouvez ajouter le mappage suivant à votre web.xml :

<servlet>
    <servlet-name>welcome</servlet-name>
    <jsp-file>welcome.jsp</jsp-file>
</servlet>

<servlet-mapping>
    <servlet-name>welcome</servlet-name>
    <url-pattern>*.jsp</url-pattern>
</servlet-mapping>

Cela mappera toutes les demandes de fichier .jsp vers Welcome.jsp.

Modifier:

Si vous souhaitez rediriger uniquement les utilisateurs s'ils ne sont pas déjà allés sur la jsp de bienvenue, n'utilisez pas le code ci-dessus dans votre fichier web.xml.Au lieu de cela, dans votre jsp, définissez un indicateur sur la session de l'utilisateur dans Welcome.jsp :

<c:set scope="session" var="sessionStarted" value="true"/>

Ajoutez ensuite créer un filtre pour les rediriger comme celui-ci RedirectFilter.java:

@WebFilter("*.jsp")
public class RedirectFilter implements Filter {

public void destroy() {}
public void init(FilterConfig fConfig) throws ServletException {}

/**
 * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
 */
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

    Object sessionStarted = ((HttpServletRequest)request).getSession(true).getAttribute("sessionStarted");
    if(sessionStarted==null){
        request.getServletContext().getRequestDispatcher("welcome.jsp").forward(request, response);
    }else{
        chain.doFilter(request, response);
    }
}
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top