J'essaie d'utiliser des servlets comme couche de contrôleur et des JSP comme couche de vue. Un grand nombre des exemples/tutoriels que j'ai lu suggère de faire somehting comme ceci:Utilisation simultanée de servlets et de JSP entraînant une boucle inattendue
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// add something for the JSP to work on
request.setAttribute("key", "value");
// show JSP
request.getRequestDispatcher("main.jsp")forward(request, response);
}
Cela fonctionne très bien pour l'exemple simple, mais quand je fais un pas vers le haut (même un peu):
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// add something for the JSP to work on
request.setAttribute("key", "value");
String pathInfo = request.getPathInfo();
if ((pathInfo != null) && (pathInfo.length() > 1)) {
// get everything after the '/'
pathInfo = pathInfo.subSequence(1, pathInfo.length()).toString();
if (pathInfo.equals("example")) {
request.getRequestDispatcher("alternate.jsp").forward(request, response);
}
}
// show JSP
request.getRequestDispatcher("main.jsp").forward(request, response);
}
Autant que je sache ce qui se passe est que si je vais à (par exemple) http://localhost/main/example il frappe la servlet, arriver à l'endroit où il distribue à alternate.jsp, puis il exécute à nouveau le servlet mais cette fois au lieu du pathInfo égalant "exemple "Cela équivaut à" alternate.jsp ", de sorte qu'il tombe dans la distribution main.jsp. Comment puis-je faire exécuter différents fichiers JSP avec une logique similaire à celle ci-dessus?
pour faire bonne mesure la mise en correspondance dans le web.xml est:
<servlet>
<servlet-name>Main</servlet-name>
<servlet-class>com.example.MainServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Main</servlet-name>
<url-pattern>/main/*</url-pattern>
</servlet-mapping>
Eh ... Je pense que je vais devoir retravailler massivement cette question pour obtenir la réponse dont j'ai besoin. –
Ok, après avoir réduit le problème et essayé d'autres tests, j'ai trouvé une meilleure question. http://stackoverflow.com/questions/1030302/how-can-i-map-a-root-servlet-so-that-other-scripts-are-still-runnable –