4 votes

Masquer l'extension .jsp dans un projet JSP en utilisant la correspondance des servlets

Je suis en train d'écrire une application en JSP, et j'ai besoin de supprimer l'extension ".jsp" de l'URL. Par exemple, j'ai besoin de :

http://example.com/search.jsp?q=stackoverflow

Pour être :

http://example.com/search?q=stackoverflow

Je sais que cela peut être fait en utilisant le fichier ".htaccess", mais j'ai besoin d'une autre solution. J'ai essayé le code suivant:

   jsp
   *.

Cependant, cela n'a pas fonctionné. Est-ce que quelqu'un a des suggestions pour parvenir à cela ? Merci d'avance pour toute aide.

12voto

BalusC Points 498232

Avec une servlet mapping, vous devez spécifier chaque JSP individuellement comme suit :

    search
    /search.jsp

    search
    /search

Il est plus simple si tous ces JSP sont dans un chemin commun. Par exemple /app/*.

    app
    com.example.FriendlyURLServlet

    app
    /app/*

avec

request.getRequestDispatcher("/WEB-INF" + request.getPathInfo() + ".jsp").forward(request, response);

Cela suppose que les JSP se trouvent dans le dossier /WEB-INF afin qu'ils ne puissent pas être demandés directement. Cela affichera /WEB-INF/search.jsp sur http://example.com/app/search.

Alternativement, vous pouvez utiliser le URLRewriteFilter de Tuckey. C'est très similaire à mod_rewrite d'Apache HTTPD.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X