Pergunta

Eu tenho uma aplicação web, que inclui algumas páginas jsp.E a minha página inicial é bem-vindo.jsp E a url do Aplicativo é como www.test.com

Assim, sempre que um usuário atingiu o url (www.test.com) ele redireciona para www.test.com/welcome.jsp

agora eu quero, se um utilizador directamente quer aceder a outra página, como www.test.com/*.jsp é sempre deve redirecionar para a página inicial que é www.test.com/welcome.jsp

Gentilmente, dar qualquer sugestão sobre como fazê-lo.

Foi útil?

Solução

Você pode adicionar o seguinte mapeamento para o seu 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>

Este mapa de todas as solicitações para um .arquivo jsp de boas-vindas.jsp.

Editar:

Se você deseja apenas redirecionar os usuários se eles ainda não tiver sido bem-vindo jsp, não use o código acima no seu web.xml arquivo.Em vez disso, no seu jsp definir um sinalizador na sessão do usuário no de boas-vindas.jsp:

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

Em seguida, adicionar em criar Filtro para redirecioná-los como um presente 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);
    }
}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top