2013-07-02 39 views
5

Mi chiedevo su questi metodi di servlet. Ho qualche informazione su questi metodi comeQuando utilizzare doGet, doPost e service

  • doPost non ha limitazioni sul numero paramater mentre doGet ha.
  • doGet è più veloce di doPost.
  • doPost è protetto da doGet.

E la mia domanda è, come questi metodi prende gli stessi parametri e fa il processo che implementiamo. allora qual è il major difference tra questi metodi e At which specific situation each of this method is used to process.

+1

Ma dove dovremmo ottenere il nostro scatto quotidiano di UPs di? – schlingel

+1

@AshishAggarwal Se Google avesse avuto tutte le risposte, SO non sarebbe stato qui e fiorire. – instinct

+1

In effetti, spesso Google conduce a SO anwers in ogni caso – cirko

risposta

6

Ecco le differenze tecniche che hai menzionato e c'è una parte in cui stiamo parlando delle metaphers REST.

Accanto a POST e GET, anche PUT e DELETE. È necessario utilizzare GET per operazioni che non alterano i dati, POST per la creazione e PUT per l'aggiornamento dei dati. DELETE è ovviamente per la cancellazione dei dati.

0

Io dovrei leggere qualcosa sui metodi GET e POST di HTTP. È possibile iniziare ad esempio here. La tua domanda non è realmente connessa con Java e Servlet ma con le basi della programmazione web.

3

GET deve essere idempotente, POST non può essere. GET è quando si vuole ottenere qualcosa dal server, POST è di inviare dati al server. Il GET è idempotente significa che la stessa operazione applicata più volte produce lo stesso risultato, dove come con uno POST ha effetti collaterali che si traducono in uscite diverse. È possibile scrivere un GET non idempotente, ma questo è contro la convenzione e si può finire con problemi. Le richieste GET possono essere inserite nei segnalibri. POST non può essere aggiunto ai segnalibri. I parametri di query devono essere limitati in GET, con POST è anche possibile inviare file da caricare.

+2

Non lo sono. Questa è solo una convenzione. – schlingel

+0

Tutto è una convenzione e dovresti codificare di conseguenza. Si dovrebbe educare le persone a seguire la convenzione per non modificarla per mettersi nei guai. – NINCOMPOOP

+0

@schlingel, ecco perché TheNewIdiot utilizza le parole "dovrebbe" e "potrebbe", non sta dicendo "deve" – morgano

3

doGet() e doPost(), doPut(), doDelete() vengono chiamati in diverse occasioni con alcune piccole differenze.

W3C given some specifications

GET:

Una rappresentazione dell'oggetto viene trasferita al cliente. Alcuni URI fanno riferimento a varianti specifiche di un oggetto e alcuni si riferiscono a oggetti con molte varianti. In quest'ultimo caso, le rappresentazioni, le codifiche e le lingue accettabili possono essere specificate nei campi di richiesta dell'intestazione e possono influire sul particolare valore restituito.

POST

Questo metodo di HTTP crea un nuovo oggetto collegato e subordinati all'oggetto specificato. Il contenuto del nuovo oggetto è incluso come corpo della richiesta.

E il metodo service() riceve richieste HTTP standard dal metodo del servizio pubblico e le invia ai metodi doXXX definiti in questa classe.

3

mi concentrerò solo nelle differenze:

doService(): usarlo quando si sa cosa si sta facendo, l'implementazione predefinita chiama doGet() o doPost() quindi se sovrascrivere , non otterrai l'altro metodo chiamato.

doGet(): per convenzione, un metodo GET non dovrebbe cambiare lo stato interno della vostra applicazione (non si deve fare aggiornamenti o simili)

doPost(): per convenzione, POST viene utilizzato per modificare lo stato interno dell'applicazione (fare inserimenti, aggiornamenti, eliminazioni)

12

doGet():> Useremo per i contenuti statici, quando lo useremo, I nostri parametri della richiesta passano attraverso intestazione http packet. O la dimensione dell'header del pacchetto http è fissa. Quindi è possibile inviare solo dati limitati. o in caso di doGet() i parametri di richiesta sono mostrati nella barra degli indirizzi, o nei dati di rete inviare come testo piano.

doPost():> Useremo per i contenuti dinamici, Quando li useremo, i nostri parametri di richiesta passano attraverso il corpo del pacchetto http. O la dimensione del corpo del pacchetto http non è fissa. Quindi i dati illimitati possono essere inviati. o in caso di doPost() i parametri di richiesta non sono mostrati nella barra degli indirizzi, o nei dati di rete inviati come testo crittografato.

service():> Se lo definiamo, dobbiamo affrontare il problema di connettività del server perché il suo protocollo è indipendente, quindi non è un buon approccio.

0

Mi chiedevo su questi metodi di servlet. so qualcosa su questi metodi come

• do Post non ha limitazioni sui numeri dei parametri mentre DoGet ha.

• doGet è più veloce di doPost.

• doPost è assicurato di doGet

0

Il metodo servizio si chiama dal contenitore servlet per gestire la richiesta e ti risponderemo con una risposta adeguata. Ogni volta che viene fatta una richiesta viene chiamato il metodo di servizio. Non abbiamo mai annullarlo come è già stato fatto in termini di:

  • doGet()
  • doPost()

doGet() - Richiede per le informazioni. Non cambia nulla nel server. il metodo doGet() è il metodo HTTPServletRequest predefinito.

doPost() - Viene utilizzato per fornire le informazioni richieste dal server.

Ho appena annotato la differenza di base, resto ci sono altre differenze di prestazioni.

1

In parole semplici .. get verrà utilizzato quando si desidera recuperare qualcosa dal server e non ci sono informazioni sensibili disponibili nella richiesta perché la sua intestazione è visibile nell'URL. Il post verrà utilizzato quando si aggiorna qualcosa nel server e vi sono dati importanti, ad es. password, numero di conto ecc. nella richiesta.altro vantaggio di post non è dimensioni fisse in modo da poter inviare dati illimitati e dati non saranno visibili in ogni caso.

Problemi correlati