serlvet pobierajacy/wysylajacy dana wartosc

0

hej, mam takie (dosc lamerskie :/) pytanie:

chce zrobic servlet - ma on pelnic 2 role:

  • z jednej strony 'cos' bedzie mu przesylalo jakies wartosci (beda to 2 Stringi)
  • z drugiej strony 'cos innego' bedzie chcialo pobrac te ustawione Stringi

mam sobie servlet:


public class TestServlet extends HttpServlet {

   private String x;
   private String y; 

   public TestServlet() {
    
   }

   protected void doGet(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {

      setX(request.getParameter("x"));
      setY(request.getParameter("y"));
   }
}


//to wywale do jakiegos beana, na razie to tylko przyklad dlatego taki smietnik
   public String getX() {
      return x;
   }

   public void setX(String x) {
      this.x = x;
   }

   public String getY() {
      return y;
   }

   public void setY(String y) {
      this.y = y;
   }

 

no dobra - teraz mamy sobie jakas klase A w jakims innym projekcie. Wywoluje ona ten servlet z parametrami np. x=3, y=4. i spoko, wywoluje, ustawia x i y.
a teraz chce miec jakas inna klase B ktora te wartosci sczyta.. nie bardzo rozumiem jak to zrobic? tzn czy powinnam w metodzie doGet dodac warunek np.

  • jesli request.getParameter("y") i request.getParameter("x") nie sa nullami to jestesmy w trybie ustawiania i wywoluje metody setX/Y
  • jesli zas request.getParameter("y") i request.getParameter("x") sa nullami to robie np tam np:
    print.out(x);
    print.out(y);
    wtedy je dostane na stronie i klasa B sobie te strone sparsuje?

czy to sie jakos inaczej robi?

bede wdzieczna za wszystkie sugestie.
pzdr,
misty

0

Jesli to ma byc ajax to musisz to po prostu wypisac i parsowac w skryptach JS.
jesli wszystko ma sie odbywac w ramach jednego zadania to po prostu zainicjalizuj klase B wewnatrz servletu

0

"jesli wszystko ma sie odbywac w ramach jednego zadania to po prostu zainicjalizuj klase B wewnatrz servletu"

chyba nie za bardzo rozumiem co miales na mysli. czy moglbys napisac jasniej?
(klasy A, B i servlet = 3 rozne projekty)

pozdrawiam

0

bo w sumie to ja bym wolala ArrayListe z tymi Stringami jakos moc pobrac.. ogolnie program A laczy sie z servletem i podaje mu te stringi. Servlet ich nie nadpisuje, tylko wrzuca do listy (bedzie to moja kolejka). Za jakis czas program B sie odezwie i chce te liste. to sie da? czy po prostu musze wypisywac cala kolejke a program B ma ja parsowac?

0

Mowisz o HttpServlet, zatem dzialasz tylko i wylacznie na tekstach - zatem bedziesz musiala parsowac odebrana liste z danymi ktora bedzie sie znajdowac w odpowiedzi serwera (no chyba ze uzyjesz GenericServlet lub wrecz Servlet, napiszesz wlasny serwer itp - nie widzialem jeszcze tkaiego uzycia serwletow, ale sie da, i sadze ze tego nie chcesz robic?). Co wiecej, servlet jest bezstanowy, wg specyfikacji moze byc kiedykolwiek serwer (Tomcat?) sobie zachce (np gdy poczuje ze ma za malo pamieci, a ten servlet nie jest uzywany) usunac ta instancje. Z tego wynika ze aby miec pewnosc musisz uzyc zmiennej statycznej (bleh!) lub np ServletContext. Co za tym idzie, musisz zapewnic ze jest to operacja bezpieczna gdy jest wykonywana przez wiele programow na raz - synchronizacje, lub thread-safe kolekcje itp). Ogolnie w tym Twoim use case widze (prosze nie obraz sie) totalny bezsens - servlety nie sa do tego. Ale mozliwe ze zle zrozumialem istote problemu.

0

z tego co widze to do tego co chcesz zrobic bardziej beda sie nadawaly WebService'y + ew EJB

0

To co chcesz zrobić jest opisane np. tutaj:
http://www.javaworld.com/javaworld/javaqa/2002-01/01-qa-0118-servlet.html
i jeszcze
http://www.javaworld.com/javaworld/javaqa/2001-08/03-qa-0831-interface.html?page=2
Jak ogarniasz o co chodzi z tymi serwletami, to powinieneś dać radę sobie przerobić po swojemu.
Ja proponuję jako programy A i B wykorzystać przeglądarkę, a serwlet rozbudować, żeby wysyłał odpowiedni kod.

0

hej, dzieki Wszystkim za odpowiedzi. juz kumam co i jak i przede wszystkim-jak ma byc. A wysyla xmla-B go pobiera.

jeszcze raz dzieki,
pzdr

1 użytkowników online, w tym zalogowanych: 0, gości: 1