Zajmuję się tworzeniem aplikacji WWW JSP/Servlet (bez frameworka). Chcę użyć wzoru MVC. Mam zamiar zaprojektować mój projekt tak:Jak opracować aplikację internetową JSP/Servlets przy użyciu wzoru MVC?
- Controller: aplet, który odczytuje wniosek, wyciągi wartości, komunikuje się z modelowych obiektów i daje informacje do strony JSP.
- Wyświetl: Strony JSP.
- model: Klasy Java/Java Beans .. itp
Problem:Index.jsp
jest punktem wyjścia (strona domyślna) na mojej stronie internetowej. Tak więc Index.jsp
staje się kontrolerem do analizowania żądania. Na przykład, następujący wniosek:
index.jsp?section=article&id=10
jest analizowany w index.jsp w następujący sposób:
<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>
Tutaj nie mogę zmusić aplet być kontrolerem, bo index.jsp
jest kontrolerem tutaj, ponieważ jest to punkt wyjścia.
Czy istnieje jakieś rozwiązanie, aby przesłać żądanie z index.jsp
do serwletu, a następnie wrócić do index.jsp
? Lub jakiekolwiek rozwiązanie, które osiąga cel MVC - serwlet powinien być kontrolerem?
myślę popełnienia aplet FrontPageController jako domyślnej strony zamiast index.jsp, ale nie wiem, czy jest to doskonały pomysł?
Dzięki @BalusC. Czy miałeś na myśli w pierwszym akapicie, że pierwsza strona w mojej witrynie powinna być serwletem takim jak:/default-servlet? Czy powinienem zrobić coś, aby "domyślny serwlet" był domyślną stroną, gdy ktoś odwiedza moją stronę i wpisuje tylko domenę xyz.com/? – Abdullah
Jeśli chcesz mieć prawdziwy "plik powitalny", możesz zachować indeks.jsp', ale zamiast tego pozwól mu przesłać dalej lub przekierować do wybranej domyślnej strony. "Plik powitalny" niestety nie może być serwletem. Punkt ten powinien być przynajmniej jasny: logika kontrolera napisana na stronie JSP nie należy do strony JSP. Należy do serwletu. – BalusC