2014-11-20 32 views
8

la differenza in termini di flusso, so che doGet() è il pre-elaborazione e dopost è post-elaborazione, ma che cos'è?qual è la differenza tra doGet() e doPost() in termini di flusso?

+0

I documenti dovrebbero probabilmente rispondere a questa domanda per te, ad esempio, dove viene indicato "Chiamato dal server (tramite il metodo di servizio) per consentire a un servlet di gestire una richiesta GET." –

risposta

10

la differenza in termini di flusso, so che doGet() è la pre-elaborazione e doPost è post-elaborazione, ma che cos'è?

In realtà, i metodi non hanno nulla a che fare con "pre-elaborazione" e "post-elaborazione".

Per capire a cosa servono i metodi, è necessario conoscere il protocollo HTTP.

HTTP è un protocollo di richiesta-risposta: il client (ad esempio un browser Web) invia una richiesta e il server (ad esempio un server Web) risponde con una risposta. Ogni richiesta è composta da una "riga di richiesta", una serie di linee di "intestazione" e facoltativamente un "corpo". Una tipica richiesta-line simile a questa:

GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1 

Le tre parti di questa linea sono:

infatti, la specifica HTTP definisce 8 standa rd Metodi di richiesta HTTP (GET, PUT, POST, DELETE, HEAD, OPTIONS, TRACE & CONNECT) ognuno dei quali ha un significato diverso. (Altri metodi sono definiti da altre specifiche.)

I metodi doGet e doPost nell'API Servlet sono metodi per l'elaborazione delle richieste HTTP GET e POST rispettivamente. In effetti esistono altri metodi "doXxxx" che corrispondono agli altri metodi HTTP standard ... a parte CONNECT. (La semantica di CONNECT non è applicabile a un servlet ...)

Per ulteriori informazioni, fare riferimento allo HTTP 1.1 Specification e allo HttpServletjavadoc.

+0

risposta fantastica ... :) – TheLostMind

+0

Vorrei aggiungere che un metodo GET (come HEAD) * a qualsiasi risorsa DOVREBBE NON hanno effetti collaterali che porterebbero a comportamenti errati se queste risposte sono prese da una cache * (estratto dalla specifica HTTP 1.1 citata sopra) => GET dovrebbe essere usato solo per leggere qualcosa ma non per cambiare qualcosa –

+0

il doget() ottenuto server prima che sul web? qualcosa del genere? –

9

This link Detail

doGet() e doPost() sono richieste HTTP gestite dalle classi servlet.

In doGet(), i parametri vengono aggiunti all'URL e inviati insieme alle informazioni di intestazione . Questo non succede in caso di doPost(). In doPost(), i parametri vengono inviati separatamente. Poiché la maggior parte dei server Web supporta solo una quantità limitata di informazioni da allegare alle intestazioni , la dimensione di questa intestazione non deve superare i 1024 byte. doPost() non ha questo vincolo. Di solito i programmatori trovano che sia difficile scegliere tra doGet() e doPost().

doGet() deve essere utilizzato quando una piccola quantità di dati e dati non sensibili come una query deve essere inviata come richiesta. doPost() deve essere utilizzato quando deve essere inviata una quantità relativamente grande di dati sensibili. Gli esempi inviano i dati dopo aver compilato un modulo o aver inviato l'ID di accesso e la password .

+2

È importante citare la fonte: http://www.careerride.com/Servlet-doGet-doPost.aspx –

Problemi correlati