Servlet: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m robot Aggiunta: lt, en, ja, nl, fr, de, bg, pt
+{{Interfacce web}}
 
(132 versioni intermedie di 90 utenti non mostrate)
Riga 1:
[[File:По-запросу.jpg|thumb|upright=1.0|Esempio di [[applicazione web]] in un sito di [[e-commerce]] tra utente e destinatario che si interfacciano tramite l'applicazione scambiando dati di ordinazione, anagrafici e bancari, che può essere implementato con servlet e [[JavaServer Pages|JSP]] oppure ''[[framework per applicazioni web|web framework]]'']]
I '''servlet''' sono ''oggetti'' (in senso informatico) che operano all'interno di un server per applicazioni (per esempio, [[Tomcat]]) e potenziano le sue funzionalità.
In [[informatica]], nell'ambito della [[programmazione Web]], i '''servlet''' sono [[Oggetto (informatica)|oggetti]] scritti in [[Java (linguaggio di programmazione)|linguaggio Java]] che operano all'interno di un [[Web server|server web]] oppure un [[application server|server per applicazioni]] permettendo la creazione di [[applicazione web|applicazioni web]]<ref>{{cita web|url=http://www.oracle.com/technetwork/java/overview-137084.html|titolo=Java Servlet Technology Overview|accesso=12 gennaio 2014}}</ref> (elaborazione [[lato server]]). Il nome deriva dalle [[Java applet]], piccoli [[programma (informatica)|programmi]] scritti in Java che si eseguono all'interno del [[browser]] dell'utente client (elaborazione [[lato client]]).
 
== Descrizione ==
La parola servlet deriva di una precedente, applet, che si riferisce a piccoli programmi scritti in linguaggio [[Java]] che si eseguino all'interno di un [[browser]]. Per contrapposizione, un servlet è un programma che si esegue in un [[Web server|server web]].
L'uso più frequente delle servlet è la generazione di [[pagine web]] [[pagina web dinamica|dinamiche]] a seconda dei parametri di richiesta inviati dal [[client]] browser dell'utente al server. Nelle applicazioni più moderne non viene eseguita la programmazione diretta delle servlet, ma si preferisce usare dei [[Framework per applicazioni web|framework web]] che implementano la specifica servlet, oppure delle [[JavaServer Pages]] che vengono poi tradotte (compilate) in servlet a [[runtime]].
 
I programmi che implementano le specifiche dei servlet possono girare all'interno di qualunque ''servlet container'' e non sono vincolati ad un particolare server. Lo [[Norma tecnica|standard]] delle servlet rientra all'interno di un vasto insieme di standard detto [[Java EE]]<ref>{{cita web|url=https://docs.oracle.com/javaee/7/tutorial/doc/servlets.htm#BNAFD|titolo=Java Servlet Technology|accesso=12 gennaio 2014|urlmorto=sì|urlarchivio=https://web.archive.org/web/20140113014048/http://docs.oracle.com/javaee/7/tutorial/doc/servlets.htm#BNAFD|dataarchivio=13 gennaio 2014}}</ref><ref>{{cita web|url=https://javaee.github.io/servlet-spec/|titolo=Java Servlet Specification|accesso=11 giugno 2017}}</ref>. Una servlet può avere molteplici funzionalità e può essere associata ad una o più risorse web.
L'uso più frequente dei servlet è generare pagine web in forma dinamica a seconda dei parametri della richiesta spedita dal browser.
 
Per esempio per la realizzazione della parte di ''Controller'' nel [[PatternDesign pattern|pattern]] di tipo [[MVCModel-View-Controller]] (Model View ControllerMVC) in una architettura basata su [[Linguaggio di programmazione Java|Java]] si può ricorrere ad ununa servlet (es. [[Spring framework]], [[Java Server Faces]]). QuestoQuesta servlet, una volta invocatoinvocata dal server, deciderà quale pagina visualizzare o quale parte dell'applicazione invocare.
Un servlet può avere molteplici funzionalità e può essere associato ad una o più risorse web.<br>
Per esempio per la realizzazione della parte di Controller nel [[Pattern]] di tipo [[MVC]] (Model View Controller) in una architettura basata su [[Linguaggio di programmazione Java|Java]] si può ricorrere ad un servlet. Questo servlet, una volta invocato dal server, deciderà quale pagina visualizzare o quale parte dell'applicazione invocare.
 
Un' altro esempio potrebbe essere un meccanismo per il riconoscimento dell'utente. Quando([[login]]): quando si digitodigita un [[URL]] del tipo ''miosito/login.login'' viene invocatoinvocata ununa servlet che verificheràverifica chela icorrettezza datidelle inseriticredenziali sianodi correttiaccesso einserite inappoggiandosi basead aun questa[[database]] decisione mi potràe indirizzareindirizza inad una pagina di conferma o di errore a seconda del risultato.
 
Sotto quest'ottica ununa servlet è un programma che deve rispettare determinate regole e che processa in un determinato modo una richiesta [[Hypertext Transfer Protocol|HTTP]].
Nulla vieta che all'interno dello stesso server web possano ''girare'' più servlet associatiassociate a [[URL]] diversi;, ognunoognuna didelle questiquali servlet faràeseguirà coseoperazioni diverse eed estenderà le funzionalità del server web.
 
== Versioni ==
[[Categoria:Reti telematiche]]
[[Categoria:Java]]
 
La versione della specifica servlet 3.0 corrisponde alla JSR 315<ref>{{cita web|url=https://jcp.org/en/jsr/detail?id=315|titolo=JSR 315: JavaTM Servlet 3.0 Specification|accesso=12 gennaio 2014}}</ref>. Tra le novità più importanti, la possibilità di gestire in modo asincrono le richieste HTTP ed il fatto che il file di configurazione ''web.xml'' diventa opzionale. La versione 3.1, corrispondente alla JSR 340<ref>{{cita web|url=https://jcp.org/en/jsr/detail?id=340|titolo=JSR 340: Java Servlet 3.1 Specification |accesso=25 maggio 2015}}</ref>, permette l'elaborazione di richieste asincrone.
[[bg:Сървлет]]
 
[[de:Servlet]]
La versione 4.0 di questa specifica, corrisponde alla JSR 369<ref>{{cita web|url=https://jcp.org/en/jsr/detail?id=369|titolo=JSR 369: JavaTM Servlet 4.0 Specification|accesso=11 giugno 2017}}</ref> è stata l'ultima versione rilasciata nell'ambito Java EE. Questa versione supporta HTTP/2 e permette di inviare delle risorse in modalità push dal server al client<ref>[https://developer.ibm.com/tutorials/j-javaee8-servlet4/ Get started with Servlet 4.0]</ref>.
[[en:Java Servlet]]
 
[[fr:Servlet]]
La versione 5.0 è stata parte del rilascio di [[Jakarta EE]] 9<ref>{{cita web|url=https://projects.eclipse.org/projects/ee4j.servlet/releases/5.0|titolo=Jakarta Servlet 5.0|accesso=20 dicembre 2021}}</ref>, in questa versione, tutti i pacchetti {{code|javax.servlet}} sono stati rinominati in {{code|jakarta.servlet}}.
[[ja:Java Servlet]]
 
[[lt:Java Servlet]]
== Note ==
[[nl:Servlet]]
<references/>
[[pt:Servlet]]
 
== Voci correlate ==
* [[Apache Tomcat]]
* [[Hamlets]]
* [[Jetty]]
* [[JavaServer Pages]]
* [[en:Java ServletEE]]
* [[ja:Java Servletapplet]]
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC|Java servlet|Java servlet}}
 
{{Interfacce web}}
{{Controllo di autorità}}
{{Portale|internet|telematica}}
 
[[Categoria:RetiServer telematicheweb]]
[[Categoria:Applicazioni Java]]