MVC in J2EE: mehrere JSPs über ein Servlet kontrollieren

Diskutiere MVC in J2EE: mehrere JSPs über ein Servlet kontrollieren im Allgemeines EE Forum

  1. #1
    Macro


    MVC in J2EE: mehrere JSPs über ein Servlet kontrollieren

    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. #2
    BLiNK


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

    Das sollte dir helfen.

  3. #3
    Macro


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

    Code:
    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. #4
    BLiNK


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

  5. #5
    Macro


    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. #6
    Macro


    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. #7
    BLiNK


    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/corej...ontroller.html

  8. #8
    Macro


    Danke

Java Videokurs

Keine Antwort auf Deine Suche gefunden? Registriere Dich kostenlos und stelle Deine eigene Frage zu Java!

Jetzt kostenlos registrieren