Sto sviluppando un'applicazione web JSP/Servlet (senza framework). Voglio utilizzare il modello MVC. Ho intenzione di progettare il mio progetto come questo:Come sviluppare l'app Web JSP/Servlets utilizzando il pattern MVC?
- controller: una servlet che legge una richiesta, estrae i valori, comunica con gli oggetti del modello e fornisce informazioni ad una pagina JSP.
- Visualizza: pagine JSP.
- Modello: classi Java/Java Beans .. ecc
Il problema:Index.jsp
è il punto di partenza (pagina di default) nel mio sito web. Pertanto, lo Index.jsp
diventa il controller per analizzare la richiesta. Ad esempio, la seguente richiesta:
index.jsp?section=article&id=10
viene analizzata in index.jsp come segue:
<div class="midcol">
<!-- Which section? -->
<%String fileName = request.getParameter("section");
if (fileName == null) {
fileName = "WEB-INF/jspf/frontpage.jsp";
} else {
fileName = "WEB-INF/jspf/" + fileName + ".jsp";
}
%>
<jsp:include page='<%= fileName%>' />
</div>
Qui, non posso forzare il servlet per essere un controller, perché il index.jsp
è il controllore qui poiché è il punto di partenza.
Esiste una soluzione per inoltrare la richiesta da index.jsp
al servlet e quindi tornare a index.jsp
? O qualsiasi soluzione che raggiunge l'obiettivo MVC - il servlet dovrebbe essere il controller?
sto pensando di fare un servlet FrontPageController come pagina di default al posto di index.jsp, ma non so se è un'idea perfetta?
Grazie a @BalusC. Intendevi dal primo paragrafo che la prima pagina del mio sito web dovrebbe essere una servlet come:/default-servlet? Devo fare qualcosa per rendere "default-servlet" la pagina predefinita quando qualcuno visita il mio sito web e inserisce solo il dominio xyz.com/? – Abdullah
Se si desidera un vero 'file di benvenuto', è possibile mantenere l'indice'.jsp', ma invece lasciarlo in avanti o reindirizzare alla pagina predefinita desiderata. Il 'welcome-file' purtroppo non può essere un servlet. Questo punto dovrebbe essere almeno chiaro: la logica del controller come hai scritto nel JSP non appartiene al JSP. Appartiene al servlet. – BalusC