2010-11-19 19 views
2

Bir sunucudan başka bir sunucuya nasıl geçebilirim?Bir sunucudan başka bir sunucuya bir dizi geçirme

+0

sorunuzu eksik çok fazla bilgi var şu şekildedir:

String arrayID = UUID.randomUUID().toString(); request.getSession().setAttribute(arrayID, array); response.sendRedirect("/servleturl?arrayID=" + arrayID); 

Başka servlet de mevcut olur. jball'ın sorusu, servletlerin aynı web uygulamasının bir parçası olup olmadığı, bu dizinin ister istemez isterse sadece bazı global veriler, vs., vs ... – vanza

+0

servletler aynı web uygulamasının parçasıdır ve dizi değerleri olan normal bir dizidir. servlet 1'deki bazı hesaplamaların ve 2 – Compuser7

cevap

6

Başka bir sunucuya geçerli isteği iletiyorsanız, yalnızca istek özniteliği olarak ayarlayın.

request.setAttribute("array", array); 
request.getRequestDispatcher("/servleturl").include(request, response); 

O şöyle başka servlet mevcut olacak: Başka bir servlet'dir bir yepyeni isteği ateş ettiği takdirde o zaman sadece olarak ayarlamak,

Object[] array = (Object[]) request.getAttribute("array"); 

Ya istek parametreleri.

StringBuilder queryString = new StringBuilder(); 
for (Object item : array) { 
    queryString.append("array=").append(URLEncoder.encode(item, "UTF-8")).append("&"); 
} 
response.sendRedirect("/servleturl?" + queryString); 

şöyle Başka servlet mevcut olacak: verileri (güvenli maksimum uzunluğu 255 ASCII karakterleri olduğu istek parametreleri olarak geçirilen edilemeyecek kadar büyükse,

String[] array = request.getParameterValues("array"); 

Ya), sonra sadece oturumda saklayın ve parametre isntead olarak bazı benzersiz anahtarı geçirin.

String arrayID = request.getParameter("arrayID"); 
Object[] array = (Object[]) request.getSession().getAttribute(arrayID); 
request.getSession().removeAttribute(arrayID); 
+0

servletine geçirilmesi gerektiğinde çözümünüz benim için en iyisidir. Son seçeneği kullandım.Çok çok teşekkürler –

İlgili konular