Allgemeine Verständnisfrage zum Thema Servlet (in Vaadin)

Diskutiere Allgemeine Verständnisfrage zum Thema Servlet (in Vaadin) im Web Tier Forum; Ich habe d mal eine Grundsatzfrage zum Thema Vaadin. Eine Vaadin-UI ist ja eigentich ein Servlet, d. h. Ein Code, der Serverseitig immer wieder...

  1. Shams
    Shams Mitglied
    Ich habe d mal eine Grundsatzfrage zum Thema Vaadin. Eine Vaadin-UI ist ja eigentich ein Servlet, d. h. Ein Code, der Serverseitig immer wieder ausgeführt werden kann, wie ein Applet, der aber an eine Session gebunden ist und, da es sich dabei nicht um ein POJO im klassischen Sinne handelt, per se stateless ist (alle „States“, wenn ich das richtig verstanden habe, bekommt ein Servlet ja durch seine Ausführung als Servlet).

    Nun habe ich folgendes Problem. Ich habe eine VaadinUI als Chatapplikation geschrieben, und derjenige, der Chattet, erzeugt beim Chatten einen String, den ich als „BroadcastEvent“ vermittels eines EventBusses posten will, sodass die Nachricht eben bevördert wird.

    Code (Java):

    private void write(String towrite){

        MessageEvent me = MessageEvent.getInstance();  
     
        EventBroadcastEvent ebe = new EventBroadcastEvent();
        ebe.setMsg(towrite);
       
         EventBusFactory.getEventBusInstance().post(ebe);

                  //...

      }    
    }
     
    Nun betrifft meine Frage eigentlich das MessageEvent – es handelt sich dabei um ein POJO mit einer statischen ArrayList, die dann die Messages bekommt, und wenn dann das MessageEvent gepostet wird und es sich bei dem Adressaten der Nachricht tatsächlich um den CurrentUser handelt (mit getCurrentUser() kann ich mir ja den CurrentUser der Session ausgeben lassen), dann habe ich vor, die Nachricht in das Chatfenster der UI zu setzen und hernach aus der statischen ArrayList des MessageEvent-POJOS zu löschen (einfach durch Aufruf einer Methode).

    Verzeiht bitte, wenn die Frage, die ich nun zu guter Letzt stelle, derart global ist, aber – macht das alles Sinn (aso wie ich das erledigen will)?

    Hier der Code fürs POJO:

    Code (Java):

    package ….

    import java.util.ArrayList;

    import com.google.common.eventbus.Subscribe;
    import com.vaadin.ui.Notification;

    import dispatch.EventBroadcastEvent;
    import dispatch.EventBusFactory;

    public class MessageEvent {

       
       
       
        private static ArrayList<String> mMessage = new ArrayList<String>();
       
        private static final MessageEvent instance;
       
        static {
            try {
                instance = new MessageEvent();
            } catch (Exception e) {
                throw new RuntimeException("Darn, an error occurred!", e);
            }
        }
     
        public static MessageEvent getInstance() {
            return instance;
        }
     
        private MessageEvent() {
            EventBusFactory.getEventBusInstance().register(this);
        }
       

       
        public void setMessage(String msg){

            mMessage.add(msg);
           
        }

        public ArrayList<String> getMessage(){

         return mMessage;
           
        }

       
        @Subscribe
        public void readIncomingMessages(EventBroadcastEvent ebe){

            setMessage(ebe.getMsg());
           
        }

       
       
       
    }

     
     
  2. Vielleicht hilft dir dieser Kurs hier weiter --> (hier klicken)
  3. kaoZ
    kaoZ Aktives Mitglied
    Warum eine Statische Liste ? Warum nicht eine Liste für jede aufgebaute Session / jeden User ?


    Gibt es denn dabei irgendwelche Probleme oder ist die Frage einfach nur ob das so Sinn macht ?


    Zudem wäre ich mit sowas hier vorsichtiger :

    lass lieber eine Kopie oder ein element der Liste zurückgeben anstelle der eigentlichen Liste, zwecks der Kapselung.
     
  4. Shams
    Shams Mitglied
    Danke! Nun ja, das war eigentlich nur eine Verständnisfrage, ob das Sinn macht.
     
Die Seite wird geladen...

Allgemeine Verständnisfrage zum Thema Servlet (in Vaadin) - Ähnliche Themen

Allgemeine Verständnisfrage
Allgemeine Verständnisfrage im Forum Netzwerkprogrammierung
Allgemeine Architekturfrage: REST API, Job Queue, Thread Pool unter Spring Kontrolle
Allgemeine Architekturfrage: REST API, Job Queue, Thread Pool unter Spring Kontrolle im Forum Allgemeines EE
Allgemeines Verhalten für ein Interface implementieren?
Allgemeines Verhalten für ein Interface implementieren? im Forum Allgemeine Java-Themen
eine allgemeine Benutzereingabe >UserInput<
eine allgemeine Benutzereingabe >UserInput< im Forum Codeschnipsel u. Projekte
[Java Server] Allgemeine Frage zum Thema Networking in Videospielen
[Java Server] Allgemeine Frage zum Thema Networking in Videospielen im Forum Spiele- und Multimedia-Programmierung
Thema: Allgemeine Verständnisfrage zum Thema Servlet (in Vaadin)