MVC in J2EE: mehrere JSPs über ein Servlet kontrollieren

Dieses Thema im Forum "Allgemeines EE" wurde erstellt von Macro, 11. Jan. 2006.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Macro

    Macro Neues Mitglied

    Nabend.
    Wir erstellen im Rahmen des Studiums eine kleine Webapplikation und ich bin für die Servlets zuständig. Wir haben ca 20 JSPs und ich möchte nicht für jede JSP ein eigenes Servlet schreiben. Daher wäre meine Frage wie ich herausfinde, welche JSP das Servlet aufgerugfen hat?

    Thx
     
  2. BLiNK

    BLiNK Neues Mitglied

    http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/http/HttpServletRequest.html#getRequestURI()

    Das sollte dir helfen.
     
  3. Macro

    Macro Neues Mitglied

    Ich bekomme immer nur die URL des Servlets zurück??

    Code (Text):

    public class MainControllerServlet extends AbstractControllerServlet {

       
        public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
            processRequest(req, resp);
        }

       
        public void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
            processRequest(req, resp);
        }

        private void processRequest(HttpServletRequest request, HttpServletResponse resüonse){
            String a = request.getRequestURI();
            System.out.println(a);
        }

    }// end Servlet
     
     
  4. BLiNK

    BLiNK Neues Mitglied

    Klar. Was willst du mehr? Jetzt kannst du einfaches Matching mit if else machen. Oder schöner mit einem Action Pattern(HashMap).
     
  5. Macro

    Macro Neues Mitglied

    Schon mal Danke für deine Hilfe, aber es kommt leider nicht ganz das Ergebnis raus das ich benötige.

    Login.jsp ---> MainControllerServlet
    Register.jsp ---> MainControllerServlet
    bla.jsp ---> MainControllerServlet

    Das MainControllerServlet soll jetzt erkennen von welcher JSP der request kam und dementsprechend darauf reagieren. Mit der oben beschriebenen Methode gibt er mir aber nur "/meinPfad/MainCotrollerServlet" aus. Er soll aber z.B. "/meinPfad/JSP/Login.jsp" ausgeben.

    Thx
     
  6. Macro

    Macro Neues Mitglied

    Schon mal Danke für deine Hilfe, aber es kommt leider nicht ganz das Ergebnis raus das ich benötige.

    Login.jsp ---> MainControllerServlet
    Register.jsp ---> MainControllerServlet
    bla.jsp ---> MainControllerServlet

    Das MainControllerServlet soll jetzt erkennen von welcher JSP der request kam und dementsprechend darauf reagieren. Mit der oben beschriebenen Methode gibt er mir aber nur "/meinPfad/MainCotrollerServlet" aus. Er soll aber z.B. "/meinPfad/JSP/Login.jsp" ausgeben.

    Thx
     
  7. BLiNK

    BLiNK Neues Mitglied

    Das wundert mich ehrlich gesagt. Vielleicht stimmt aber mit deinem Mapping in der web.xml etwas nicht. D musst dort alle Aufrufe auf dein MainControllerServlet mappen.
    Ich nehme mal an, dass du in deinem Login ein form Element hast. Die Action dieses form-Element setzt du beispielsweise auf "Login". Login mappst du dann in der web.xml auf dein MainControllerServlet. Der Pfad ist dann "/meinPfad/Login". Du musst dann aber natürlich zwischen einem POST-Aufruf von Login und einem GET-Aufruf unterscheiden

    Schau dir einfach mal das FrontController Pattern an. Das ist genau das, was du versuchst zu bauen. http://java.sun.com/blueprints/corej2eepatterns/Patterns/FrontController.html
     
  8. Macro

    Macro Neues Mitglied

    Danke
     
Die Seite wird geladen...
Status des Themas:
Es sind keine weiteren Antworten möglich.