Programmazione

JSP – Guida rapida per principianti

30 ottobre 2021

Sommario

Che cos'è JavaServer Pages?

Il Pagine JavaServer (JSP) , una tecnologia lato server, aiuta gli sviluppatori a sviluppare pagine Web, che utilizzano HTML , XML , SAPONE , ecc. Viene anche indicato come Pagine del server di Giacarta . In JSP, gli sviluppatori possono incorporare il codice java nel file HTML linguaggio. Ci sono tag univoci nel JSP, che consentono l'uso di Giava codice in HTML. Questi tag iniziano e finiscono con '<%’ e '%>' simboli, rispettivamente. Per eseguire JSP, è necessario un server Web contenente il contenitore servlet. Ad esempio, puoi usare Apache Tomcat o Molo .

JSP è modellato da servlet Java . servlet Java è anche chiamato Jakarta Servlet. Durante il runtime, i JSP vengono trasformati in servlet; pertanto, sono chiamati servlet. In genere, i JSP vengono scritti in file di testo e incorporano codice HTML o XHTML, azioni JSP, elementi XML e comandi JSP. I JSP svolgono il ruolo di interfacce utente nelle applicazioni Web Java. Tutti gli oggetti impliciti JSP, come request, session, config, out, response, application, page e pageContext, vengono creati dal contenitore web .

Potresti esserti imbattuto in moduli di pagine web. Lo scopo di questi moduli è quello di raccogliere dati da utenti diversi. In questi moduli di pagine Web, JSP viene utilizzato per acquisire dati dagli utenti come input, dispone questi dati sotto forma di database e genera pagine Web. L'obiettivo principale di JSP è presentare tipi di documenti XML e HTML. Ma può anche presentare documenti in altri formati, poiché utilizza OutputStream . L'estensione del file per JSP è .jsp, .jspx, .jspf e il tipo di media Internet è applicazione/jsp.

È possibile convertire qualsiasi file HTML nel file JSP modificando l'estensione del file .html a .jsp . Dopo aver modificato l'estensione, utilizzare i tag JSP per aggiungere codice java all'interno delle pagine HTML. Utilizzando JPS, gli sviluppatori possono generare web dinamico pagine e pagine web indipendenti dalla piattaforma. Vediamo alcune caratteristiche significative di JSP.

Dai un'occhiata al nostro Guida all'interfaccia uomo-computer che andrà bene per i principianti.

Funzionalità JSP

JSP è uno dei modi convenienti per creare contenuti web dinamici. Ci sono diversi motivi per cui gli sviluppatori scelgono JSP per creare diverse applicazioni. Ecco alcune caratteristiche selezionate con cura di Jakarta Server Pages.

  • Ci sono azioni e tag personalizzati in JSP. Pertanto, la lunghezza del codice di JSP è di dimensioni ridotte.
  • È semplice scrivere codice in JSP, poiché incorpora il linguaggio di programmazione Java nelle pagine HTML o XML.
  • JSP consente agli sviluppatori di raccogliere i dati e inserirli nel database o leggere o scrivere i dati nel database.
  • Questa tecnologia lato server è altamente flessibile, portatile e robusta perché non dipende da alcun browser o server.
  • Non è necessario che il codice JSP venga compilato ancora e ancora. È indipendente dalla piattaforma e può essere eseguito su qualsiasi console senza ricompilazione.
  • JSP incorpora oggetti impliciti, servlet e tag personalizzati. Pertanto, gli sviluppatori generano pagine Web interattive e in tempo reale.
  • Possiamo anche incorporare altri linguaggi di scripting nei programmi JSP, come JavaScript, Perl, VBScript, ecc. Per impostazione predefinita, Java è il linguaggio di scripting di JSP.

Perché usare le pagine del server Java?

Ci sono diversi vantaggi nell'usare i JSP. Si comportano in modo simile a quello del Interfaccia gateway comune (CGI) . I server Web eseguono tutti i programmi che generano pagine Web dinamiche sull'interfaccia gateway comune. Quando confrontiamo JSP con CGI, JSP è più robusto e offre maggiori vantaggi agli sviluppatori. Ecco alcuni motivi che aiuteranno a capire come JSP sia più vantaggioso del CGI.

  • Gli sviluppatori possono aggiungere elementi dinamici in HTML utilizzando JSP. Se utilizzano CGI, devono creare un file CGI separato per Dynamic Elements.
  • I JSP vengono compilati e successivamente eseguiti su qualsiasi piattaforma. D'altra parte, CGI carica l'interprete e interpreta il codice ogni volta che richiedi la pagina web.
  • È possibile utilizzare JSP e servlet insieme per monitorare la logica aziendale. I motori dei modelli di servlet Java supportano questo modello combinato di JSP e servlet.
  • JSP è un'astrazione di alto livello di servlet Java. Queste pagine vengono create al livello superiore dell'interfaccia servlet Java. Quindi, possono accedere a tutte le interfacce Java primarie, come JAXP, JDBC, JNDI, ecc.
  • Nell'architettura MVC, JSP viene utilizzato come livello di visualizzazione.
  • Tutte le applicazioni di livello aziendale vengono eseguite sulla piattaforma, denominata Java EE. La piattaforma Java EE incorpora JSP.

Vantaggi di JSP

JSP è più efficiente e robusto di altre tecnologie, come JavaScript, HTML statico, Pure Servlets, ecc. Qui vedremo come JSP è vantaggioso rispetto ad altre tecnologie.

  • Uno dei vantaggi più desiderabili di JSP è che utilizza il linguaggio di programmazione Java per scrivere la sua parte dinamica. Non utilizza Visual Basic per scrivere il codice. In secondo luogo, è compatibile con altri operativo sistemi.
  • Utilizzando JSP, incorporiamo il codice Java nelle pagine HTML. Quindi, è facile modificare l'HTML.
  • Recupera i dati dai moduli Web e li collega al database.
  • Nell'applicazione Web, JSP separa il livello di logica aziendale dal livello di presentazione.
  • JSP utilizza il linguaggio di programmazione Java. Quindi, supporta anche il concetto di multithreading di Java.

Prima di procedere con il tutorial JSP, ti guideremo nella configurazione dell'ambiente JSP. Inoltre, è necessaria una conoscenza dettagliata della programmazione Java. Facci sapere ora come configurare l'ambiente JSP sul tuo desktop.

Come configurare un ambiente JSP?

Perché è necessario configurare l'ambiente JSP? È necessario correggere l'ambiente JSP sul desktop? Se si desidera creare contenuto Web dinamico o applicazioni Web utilizzando JSP, è necessario configurare l'ambiente JSP. Questo ambiente consente agli sviluppatori di scrivere i programmi JSP, compilarli ed eseguirli su qualsiasi piattaforma. Spiegheremo la configurazione dell'ambiente JSP nei passaggi seguenti:

Configurazione del kit di sviluppo Java

Il primo passo è riparare il Kit di sviluppo Java (JDK) sul desktop. Il Java Development Kit è necessario perché incorporiamo il codice java nel codice HTML utilizzando JSP. Pertanto, l'ambiente JSP richiede prima la correzione dell'ambiente JDK.

Innanzitutto, devi scaricare il Java Software Development Kit (SDK) dal funzionario di Oracle sito web

Dopo il download, apri il file .exe e installalo e configuralo utilizzando le linee guida fornite. Successivamente, è necessario impostare due variabili di ambiente, SENTIERO e JAVA_HOME . Devi impostare il SENTIERO variabile alla posizione del desktop di Giava , cioè., java_install_dir/bin, e il JAVA_HOME variabile alla posizione in cui si trova Giava , cioè., java_install_dir .

Se hai il sistema Windows e hai installato il file SDK in C:jdk1.5.0_20 posizione, aggiungi questo percorso a C:autoexec.bat file.

|_+_|

Se hai installato il file SDK sul sistema Windows NT, 2000 o XP, c'è un modo diverso di impostare SENTIERO e JAVA_HOME variabili ambientali. Devi fare clic destro su Il mio computer , Selezionare Proprietà , dai Avanzate , e vai a variabili ambientali . Qui, devi impostare il SENTIERO alla posizione del Giava , cioè., Cjdk1.5.0_20in . Dopo aver modificato il PERCORSO, fare clic su ok pulsante.

Ora sapremo come impostare le variabili di ambiente PATH e JAVA_HOEM per sistemi UNIX, come Solaris, Linux , ecc. Supponiamo di aver installato il file SDK in /usr/local/jdk1.5.0_20 . Devi aggiungere i due comandi seguenti nel file .cshrc file. Considera che utilizziamo la shell C.

|_+_|

Se utilizzi strumenti IDE (Integrated Development Environment), come Eclipse, Sun ONE Studio, JBuilder, ecc., prendi un programma java di esempio, compilalo ed eseguilo per verificare che lo strumento IDE sappia dove è installato Java sul tuo sistema.

Dopo aver installato Java Development Kit e aver impostato le variabili di ambiente PATH e JAVA_HOME, il passaggio successivo consiste nell'impostare il server web.

Impostazione del server Web Tomcat

Oggi sono disponibili diversi server Web che supportano lo sviluppo di applicazioni Web dinamiche tramite JSP o Servlet. Utilizzeremo il web server Tomcat, che è open source e gratuito. Tomcat è un nome abbreviato per Apache Tomcat. Può essere utilizzato gratuitamente da chiunque ed è compatibile con diverse tecnologie server, come JavaServer Pages, Servlet, WebSocket e Java Expression Language. Il codice Java in Tomcat viene eseguito su puro Java Server web HTTP.

Ci sono diversi componenti in Apache Tomcat. Facci sapere ogni componente e il suo utilizzo.

  • Il contenitore servlet per Tomcat è Caterina , che utilizza le specifiche di Sun Microsystem per JSP e servlet. Il nome utente, la password e i ruoli degli utenti sono presenti nell'elemento Realm.
  • Il componente connettore per Tomcat è Coyote , che è compatibile con il protocollo HTTP 1.1.
  • Il motore JSP in Tomcat è Diaspro . Questo motore analizza il file di testo JSP e lo compila nel codice Java.
  • Un altro componente di Tomcat è Grappolo , che gestisce grandi applicazioni web.

Di seguito sono riportati i passaggi per scaricare il server Web Apache Tomcat.

  • Innanzitutto, devi scaricare Apache Tomcat dal suo ufficiale sito web

Devi scaricare l'ultima versione di Apache Tomcat.

  • Dopo aver scaricato il software, posizionare il scaricato in una posizione specifica. Ad esempio, se hai installato Tomcat sul sistema Windows, individua il file scaricato in C:apache-tomcat-5.5.29 . Per i sistemi Linux o Unix, posizionare il file in /usr/local/apache-tomcat-5.5.29 .
  • Dopo aver individuato il file, creare il file CATALINA_HOME variabile d'ambiente. Imposta questa variabile sulla posizione del file Tomcat, come menzionato sopra, ovvero, per i sistemi Windows, imposta la variabile su C:apache-tomcat-5.5.29 e per i sistemi Linux, impostare la variabile su /usr/local/apache-tomcat-5.5.29 .

La configurazione di Apache Tomcat è stata eseguita correttamente. Se hai installato Tomcat sul sistema Windows, segui uno dei due comandi per avviare l'applicazione Tomcat.

|_+_|

o

|_+_|

Se la tua applicazione Tomcat è installata sul sistema Linux, puoi digitare uno dei comandi seguenti per avviare l'applicazione Tomcat.

|_+_|

o

|_+_|

Dopo aver aperto correttamente l'applicazione Tomcat, visita http://localhost:8080/ . Noterai tutte le applicazioni predefinite presenti in Tomcat. Puoi eseguire la configurazione e l'esecuzione dell'applicazione Tomcat utilizzando la documentazione disponibile sul sito Web ufficiale di Tomcat.

Ora vedremo i comandi per chiudere l'applicazione Tomcat su sistemi Windows e Linux. Ci sono due comandi per chiudere l'applicazione Tomcat sui sistemi Windows. Sono i seguenti:

|_+_|

o

|_+_|

Per i sistemi Linus, puoi seguire uno qualsiasi dei due comandi per chiudere l'applicazione Tomcat.

|_+_|

o

|_+_|

CLASSPATH Configurazione

Discuteremo come configurare CLASSPATH per sistemi Windows e Linux. Se hai installato Tomcat sul sistema Windows, segui le righe di codice seguenti per configurare CLASSPATH.

|_+_|

Se il tuo sistema Windows ha versioni NT, 2000 o XP, devi fare clic con il pulsante destro del mouse su Il mio computer , Selezionare Proprietà , clicca su Avanzate , e vai a variabili ambientali . Qui, devi cambiare il valore CLASSPATH e fare clic su ok pulsante.

Se hai installato Tomcat sul sistema Linux, aggiungi le seguenti due righe nel file .cshrc. Considera che usiamo la shell C.

|_+_|

Com'è l'architettura del JSP?

Abbiamo impostato l'ambiente per JSP. Abbiamo utilizzato Apache Tomcat per eseguire le pagine JSP. Per l'elaborazione delle pagine JSP, esiste un motore JSP chiamato container. In Apache Tomcat è presente un motore JSP integrato chiamato Diaspro . Pertanto, utilizzando Jasper, gli sviluppatori possono creare pagine JSP. Il contenitore e il server Web interagiscono per fornire l'ambiente di runtime o JSP e tutti gli altri servizi richiesti da JSP.

JSP

Il diagramma sopra illustra il contenitore JSP e la posizione dei file JSP e in qualsiasi applicazione web. Ora spiegheremo il processo di generazione di una pagina Web dinamica dal server Web utilizzando JSP.

  • Innanzitutto, il client o il browser dal sistema Windows, Linux o macOS invia la richiesta HTTP al server Web tramite Internet, come mostrato nel diagramma sopra.
  • Il server Web contiene il motore JSP, in cui sono archiviati tutti i file JSP. Alla ricezione della richiesta HTTP dal client, il server Web identifica che la richiesta riguarda la pagina JSP. Successivamente, trasmette questa richiesta al motore JSP. Il server Web trasmette la richiesta HTTP alla pagina JSP utilizzando un file con estensione .jsp o .html o tramite un URL.
  • Ora, il JSP riceve la richiesta HTTP che è stata inviata dal client al server web. Sappiamo che la richiesta HTTP era per una pagina JSP. Pertanto, il motore carica quella particolare pagina dal disco e la trasforma in un contenuto servlet. In altre parole, tutto il testo del modello viene modificato in istruzioni println(). D'altra parte, questa trasformazione converte anche tutte le pagine JSP in codice Java.
  • La pagina JSP richiesta viene trasformata nel servlet. Pertanto, il servlet viene compilato dal motore JSP in una classe eseguibile. Successivamente, la richiesta HTTP dal client viene inviata al motore servlet dal motore JSP.
  • Sia i motori servlet che JSP fanno parte del server web. Il motore servlet esegue la classe eseguibile compilata dal motore JSP e genera l'output in formato HTML. C'è un altro componente sul server web, la risposta HTTP. Il motore servlet invia l'output HTML alla risposta HTTP.
  • Infine, il server web invia la risposta HTTP al browser tramite Internet sotto forma di contenuto HTML statico.

Pertanto, puoi scrivere il servlet utilizzando la pagina JSP con pochissime competenze di programmazione Java. Dall'elaborazione di JSP di cui sopra, possiamo concludere che funziona allo stesso modo di quella del servlet, ad eccezione della fase di traduzione. Segue l'architettura a 3 livelli, con il server Web che supporta la pagina JSP. Ora ci sposteremo verso il ciclo di vita di JSP. Qui discuteremo come il file JSP passa attraverso le diverse fasi e come è presente nel contenitore web.

Ciclo di vita di JSP

Il ciclo di vita di qualsiasi componente inizia quando viene creato e termina quando viene distrutto. Il ciclo di vita di JSP è simile al ciclo di vita del servlet. Una fase aggiuntiva nel ciclo di vita JSP viene utilizzata per convertire e compilare la pagina JSP in un servlet. Il ciclo di vita JSP può essere definito come la creazione della pagina JSP, la sua trasformazione in un servlet, il ciclo di vita del servlet e la distruzione della pagina JSP. Osserviamo ora il ciclo di vita di JSP in dettaglio di seguito.

Il ciclo di vita del JSP prevede quattro percorsi principali come segue:

  1. Compilazione
  2. Inizializzazione
  3. Esecuzione
  4. Pulire

Tutti questi quattro percorsi del ciclo di vita JSP sono simili ai percorsi del ciclo di vita del servlet. Il diagramma seguente illustra le fasi precedenti.

JSP

Analizziamo ora in dettaglio ogni fase del ciclo di vita di JSP e la sua descrizione.

    Compilazione JSP

Quando il client o il browser invia la richiesta HTTP per la pagina JSP, il motore JSP presente nel server Web verifica se la pagina della richiesta deve essere compilata o meno. Il motore JSP compila la pagina richiesta se non è stata precedentemente compilata o se non è stata compilata dopo aver modificato la pagina. La compilazione della pagina prevede tre passaggi come segue:

  • La pagina richiesta viene analizzata dal motore JSP.
  • Quindi trasforma la pagina JSP in un servlet.
  • Infine, il servlet viene compilato.

Quando la pagina JSP viene trasformata in un servlet, il file .jsp il file viene convertito in un .Giava file. Al momento della compilazione, il .Giava il file viene quindi convertito in un .classe file.

    Inizializzazione JSP

Al termine della compilazione, ha luogo il processo di caricamento della classe. L'origine JSP carica la classe servlet e questa classe servlet viene quindi caricata nel contenitore. L'istanza della classe servlet viene creata nel contenitore. Dopo aver creato l'istanza della classe servlet, il file jspInit() il metodo viene invocato. Questo metodo viene invocato solo una volta nel ciclo di vita del JSP. Per l'inizializzazione specifica di JSP, è necessario sovrascrivere il file jspInit() metodo come segue:

|_+_|

Quando il jspInit() viene istanziato il metodo, è necessario creare la connessione al database e generare le tabelle di ricerca nel file.

    Esecuzione JSP

Dopo il jspInit() viene istanziato il metodo, il _jspService() viene utilizzato il metodo. Questo metodo serve tutte le richieste inviate dal client al server Web fino a quando il JSP non viene distrutto.

Il _jspService() il metodo prevede due diversi parametri, HttpServletRequest e HttpServletResponse . Questo metodo è definito come segue:

|_+_|

Il _jspService() il metodo risponde a tutte le richieste del client. Ogni volta che il cliente emette la richiesta, il _jspService() viene invocato il metodo. Risponde anche a tutte e sette le richieste HTTP, come OTTENERE , ELIMINARE , INVIARE , METTERE , ecc. È possibile ignorare il _jspService() metodo.

    Pulizia JSP:

L'ultima fase del ciclo di vita della JSP è Cleanup, in cui la JSP viene distrutta. Il contenitore rimuove JSP e non lo utilizza. Questo metodo è lo stesso del metodo di distruzione di un servlet. Quando è necessario chiudere qualsiasi file nel database o chiudere la connessione al database, è possibile eseguire l'override di jspDestroy() metodo. La sintassi del metodo jspDestroy() è la seguente:

|_+_|

Sintassi in JSP

In questo segmento, impareremo la sintassi di diversi elementi JSP, come azioni, direttive, oggetti impliciti, commenti, espressioni, ecc. Questa sezione del tutorial è molto significativa per i principianti nel dominio JSP. Di seguito è riportata una guida rapida sulla sintassi JSP.

    Scriptlet:

Lo Scriptlet è uno degli elementi JSP robusti. Possiamo memorizzare istruzioni, metodi, variabili ed espressioni Java nello scriptlet. Inoltre, può anche memorizzare elementi di qualsiasi linguaggio di scripting. Di seguito è riportato l'elemento Scriptlet Sintassi:

Sintassi:

|_+_|

La sintassi dello Scriptlet sopra può essere scritta come equivalente XML nel seguente formato:

|_+_|

Tutti i tag HTML, gli elementi JSP e qualsiasi altro testo vengono sempre scritti al di fuori dei tag Scriptlet. Vedremo un semplice esempio di JSP all'interno della pagina HTML.

Esempio:

|_+_|

Il server Tomcat dovrebbe essere installato sul desktop e il suo ambiente dovrebbe essere configurato per l'esecuzione di questo programma. Segui i passaggi di configurazione dell'ambiente sopra riportati per configurare l'ambiente del server Tomcat. Salveremo il file sopra come firstjsp.jsp nel C:apache-tomcat7.0.2webappsROOT cartella. Dopo aver salvato il file, vai nel browser e digita l'URL, http://localhost:8080/firstjsp.jsp. Il codice sopra visualizzerà la Guida rapida JSP e l'indirizzo IP del tuo sistema.

    Dichiarazioni

Quando sono necessarie variabili o metodi da utilizzare nel codice Java, le dichiarazioni JSP le dichiarano. Prima di utilizzare qualsiasi variabile o metodo nel codice Java, è necessario dichiararlo utilizzando la dichiarazione JSP. La sintassi delle dichiarazioni JSP è la seguente:

Sintassi:

|_+_|

La sintassi di cui sopra è scritta in XML come segue:

|_+_|

Vediamo ora un esempio delle dichiarazioni JSP.

Esempio:

|_+_|
    Espressione

Un'espressione in JSP contiene espressioni del linguaggio di scripting. Queste espressioni possono essere valutate, trasformate in una stringa e aggiunte al file JSP, dove appare l'espressione. È possibile utilizzare espressioni JSP con il testo, poiché può essere trasformato in String. Non è obbligatorio taggare le espressioni JSP all'interno dei tag HTML. Una cosa importante da ricordare durante la scrittura dell'espressione JSP è che non usano il punto e virgola per terminare l'espressione.

Sintassi:

|_+_|

La sintassi di cui sopra può essere scritta nel suo equivalente XML come segue:

|_+_|

L'esempio seguente ti aiuterà a riconoscere come utilizzare l'espressione JSP in HTML.

|_+_|

Otterrai l'output come data e ora correnti come segue:

|_+_|
    Commenti

I commenti sono istruzioni che non sono per l'esecuzione. Sono pensati solo per programmatori e lettori. In JSP, i commenti vengono ignorati dal contenitore. Se desideri nascondere una parte del programma JSP, puoi commentare quella parte usando i commenti JSP. Quella che segue è la sintassi per i commenti JSP.

Sintassi:

|_+_|

Eseguiremo l'esempio seguente che contiene il commento JSP.

Esempio:

|_+_|

Il risultato di questo codice è riportato di seguito.

|_+_|

Ci sono molti altri modi in JSP per specificare i commenti. Di seguito sono elencate sei diverse sintassi di commento e i loro usi:

Quanto sopra è indicato come un commento HTML e il browser ignora i caratteri o le parole scritte all'interno del commento.

    %>

implica un letterale statico.

    <\%

Il commento sopra si riferisce anche a un letterale statico.

Specifica una virgoletta doppia utilizzata in un attributo.

    '

Specifica una virgoletta singola utilizzata in un attributo.

    Direttive

Ci sono tre direttive in JSP, , , e . Il La direttiva viene utilizzata per definire gli attributi della pagina, come la pagina di errore, il linguaggio di scripting e i requisiti di buffering. L'altra direttiva, , include un file specifico utilizzato durante la fase di traduzione del ciclo di vita di JSP. Infine, il La direttiva viene utilizzata per dichiarare la libreria di schede e le azioni personalizzate richieste nella pagina JSP. Quando vengono utilizzate le direttive JSP, influiscono sulla struttura della classe servlet. Ecco la sintassi per la direttiva JSP.

|_+_|
    Azioni

Le azioni sono funzioni già definite. Le azioni JSP vengono utilizzate per controllare il comportamento del motore servlet. Queste azioni aggiungono il costrutto nel codice XML. Utilizzando le azioni JSP, è possibile inserire qualsiasi file in modo dinamico, creare l'HTML per il plug-in Java o riutilizzare i componenti JavaBeans. Di seguito è riportata la sintassi delle azioni JSP.

Sintassi:

|_+_|

Di seguito elenchiamo alcune azioni JSP significative e la loro descrizione:

    jsp:useBean: questa azione istanzia o identifica un JavaBean.jsp:getProperty: È possibile utilizzare l'azione jsp:getProperty per aggiungere la proprietà JavaBean all'output.jsp:setProperty: questa azione corregge la proprietà JavaBean.jsp:includi: Quando l'utente richiede la pagina, questa azione aggiunge il file.jsp: plugin: Crea un tag OBJECT o EMBED e un codice specifico del browser per il plug-in Java.jsp:attributo: questa azione viene utilizzata per definire l'attributo dell'elemento XML che è definito dinamicamente.jsp: avanti: questa azione porta l'utente alla nuova pagina.jsp:elemento: quando è necessario definire elementi XML in modo dinamico, utilizzare questa azione.jsp:testo: questa azione consente agli utenti di aggiungere il testo del modello alla pagina JSP.jsp:corpo: Viene utilizzato per definire il corpo dell'elemento XML, che viene definito dinamicamente.
    Oggetti impliciti

Ci sono nove oggetti impliciti in JSP, richiesta, risposta, sessione, out, pageContext, config, applicazione, pagina ed eccezione. Facci sapere in dettaglio ogni oggetto implicito qui.

    richiesta: L'oggetto della richiesta è HttpServletRequest, associato alla richiesta del client.risposta: L'oggetto risposta è HttpServletResponse, associato alla risposta del server al client.sessione: questo oggetto coinvolge HttpSession ed è associato all'oggetto richiesta del client.fuori: Un altro oggetto implicito è fuori. Viene utilizzato per inviare l'output al client utilizzando l'oggetto PrintWriter.pageContext: questo oggetto implicito specifica l'applicazione di funzionalità specifiche del server. Un esempio della funzionalità specifica del server è JspWriters.config: questo oggetto coinvolge l'oggetto ServletConfig, che viene utilizzato con la pagina JSP.applicazione: L'oggetto ServletContext di JSP viene utilizzato con il contesto dell'applicazione.pagina: L'oggetto implicito della pagina chiama tutti i metodi, che sono definiti dalla classe servlet.Eccezione: Il JSP designato può accedere ai dati dell'eccezione utilizzando l'oggetto Exception.
    Dichiarazioni di flusso di controllo

JSP utilizza anche istruzioni di flusso di controllo, istruzioni decisionali e loop. Qui vedremo come l'istruzione decisionale e i loop vengono utilizzati nella programmazione JSP.

Dichiarazioni decisionali

Le dichiarazioni decisionali vengono utilizzate per decidere le scelte disponibili. Ci sono due modi per implementare una dichiarazione decisionale. Uno sta usando l'istruzione if_else e un altro sta usando l'istruzione switch-case. Ciascuna condizione if e else è racchiusa in scriptlet separati. Osserviamo un esempio di un'istruzione if_else in JSP.

Esempio:

|_+_|

Qui abbiamo dichiarato 'mese=3' e specificato le condizioni nelle istruzioni if_else. Pertanto l'output sarà:

|_+_|

Ora implementeremo le istruzioni switch...case. Il codice seguente è abbastanza diverso dal codice precedente, poiché le condizioni nel codice seguente sono specificate in uno Scriptlet.

Esempio:

|_+_|

Produzione:

|_+_|

Dichiarazioni di ciclo

Usiamo il ciclo nel programma per ripetere una particolare istruzione un numero specifico di volte. Esistono tre diversi tipi di loop supportati da JSP, for, while e do...while. Vediamo di seguito esempi di ciascun tipo di ciclo.

Per il ciclo:

|_+_|

Produzione:

|_+_|

Mentre il ciclo:

|_+_|

Produzione:

|_+_|
    Operatori in JSP

Tutti gli operatori logici e aritmetici supportati da Java vengono utilizzati in JSP. Gli operatori vengono utilizzati nelle espressioni JSP per valutarle. L'operatore con la precedenza più alta viene valutato per primo e infine con la precedenza più bassa. Abbiamo elencato prima tutti gli operatori JSP con la precedenza più alta, poi il secondo con la precedenza più alta e così via.

    Postfisso: Ci sono tre operatori suffisso '()'. '[]', e '.'. Tutti questi operatori hanno associatività da sinistra a destra.Unario: Gli operatori unari sono '++', '–', '!' e '~' con associatività da destra a sinistra.Moltiplicativo: Ci sono tre operatori moltiplicativi, '*', '/' e '%'. Hanno associatività da sinistra a destra.Additivo: Gli operatori additivi sono '+' e '-'. Hanno anche l'associatività da sinistra a destra.Cambio: Operatori Shift, '>>', '>>>' e '<<’ have left to right associativity. relazionale: Ci sono quattro operatori relazionali, '>', '=' e '<=’. All of them have left to right associativity. Uguaglianza: Gli operatori di uguaglianza sono '==' e '!=' con associatività da sinistra a destra.bit a bit E: L'operatore AND bit per bit (&) ha associatività da sinistra a destra.XOR bit a bit: L'operatore XOR bit per bit (^) ha associatività da sinistra a destra.OR bit a bit: L'operatore OR bit per bit (|) ha associatività da sinistra a destra.E logico: L'operatore logico AND (&&) ha associatività da sinistra a destra.OR logico: L'operatore logico OR (||) ha associatività da sinistra a destra.Condizionale: L'operatore condizionale (?:) ha l'associatività da destra a sinistra.Incarico: Esistono diversi operatori di assegnazione, come =, +=, -+, *=, %=, /=, >>=,<<=, &=, ^=, and |=. All these operators have the right to left associativity. Comma: L'operatore virgola (') ha associatività da sinistra a destra.

JSP supporta cinque diversi valori letterali o tipi di dati, booleano, intero, a virgola mobile, stringa e NULL. Il valore letterale booleano restituisce come risultato true o false. Viene utilizzato un numero intero per specificare il numero e la virgola mobile viene utilizzato per dichiarare i numeri decimali nel programma JSP. Il tipo di dati String in JSP è diverso da quello del linguaggio Java. Il tipo di dati NULL specifica il valore null.

Azioni JSP

Abbiamo visto quali sono le azioni JSP. Abbiamo anche visto tutte le azioni JSP nel brief sopra. Le azioni non sono altro che funzioni che regolano il comportamento del motore JSP. Ricordiamo la sintassi dell'azione JSP.

Sintassi:

|_+_|

Le azioni JSP sono jsp:include, jsp:useBean, jsp:setProperty, jsp:getProperty, jsp:forward, jsp:element, jsp:plugin, jsp:attribute, jsp:body e jsp:text. Tutte queste azioni JSP hanno due componenti comuni, ID e Ambito.

Il componente ID viene utilizzato per identificare in modo univoco qualsiasi azione JSP. Questo componente dell'azione JSP viene utilizzato nel programma JSP, definendo l'azione da eseguire. Un altro elemento è Scope, che viene utilizzato per identificare il ciclo di vita dell'azione JSP. Utilizzando l'ID dell'azione, ne viene determinata la durata. Pertanto, l'elemento ID e l'elemento Scope sono direttamente proporzionali. Il componente Ambito può assumere i possibili valori: pagina, sessione, richiesta o applicazioni.

L'azione

L'azione useBean in JSP trova prima un oggetto che possiede gli attributi ID e Scope. Se l'oggetto non viene trovato, questa azione crea l'oggetto per quell'ID specifico e gli attributi Ambito. Quello che segue è il modo per caricare la classe useBean.

|_+_|

Dopo aver caricato la classe Bean, puoi utilizzare le altre due azioni JSP, jsp:setProperty e jsp:getProperty . Queste azioni vengono utilizzate per modificare e recuperare le proprietà del bean. L'azione useBean ne usa tre differenti attributi , classe , genere e beanName. Il classe attributo assegna il nome del pacchetto del bean. Puoi usare il genere elemento per specificare il tipo di variabile per l'oggetto a cui ci riferiamo. Infine, il beanName fornisce il nome del bean. Il metodo instanziate() specifica il nome del bean.

L'azione

L'azione viene utilizzata per impostare la proprietà del fagiolo. L'unico requisito per impostare la proprietà del bean è che il bean deve essere prima definito. Esistono due modi per utilizzare l'azione come segue:

Il primo modo è usare l'esterno e dopo il componente.

|_+_|

Nella sintassi precedente, anche se il nuovo elemento non viene istanziato o se non ne viene trovato uno esistente, l'azione viene eseguita.

Un altro modo per definire l'azione è all'interno del componente jsp:useBean.

|_+_|

A differenza del primo modo di utilizzare , il secondo modo viene eseguito solo se viene trovato un esistente o se ne viene creata un'istanza.

jsp:setProperty coinvolge quattro diversi attributi, nome , proprietà , valore , e fermare . Il nome attributo assegna il nome al bean di cui si vuole impostare la proprietà. Un altro attributo, proprietà , definisce la proprietà. Il valore è il valore assegnato alla proprietà e il fermare attributo definisce il nome del parametro ricevuto dalla proprietà.

L'azione

Abbiamo visto che l'azione jsp:setProperty imposta il valore della proprietà. Qui, l'azione recupera il valore della proprietà. Dopo aver recuperato il valore, lo trasforma in String e lo aggiunge al risultato.

L'azione ha solo due attributi, nome e proprietà. Il nome attributo definisce il nome del bean che contiene una particolare proprietà e il proprietà attributo definisce il nome della proprietà del Bean. Quella che segue è la sintassi dell'azione:

|_+_|

Osserviamo un esempio che contiene il esempio fagiolo. Salva il file sottostante come EsempioBean.java .

|_+_|

Dopo aver scritto questo codice nel file EsempioBean.java file, compilalo per generare il file EsempioBean.class file. Ora, copia il EsempioBean.class file al C:apache-tomcat-7.0.2webappsWEB-INFclassiazione cartella. Assicurati di aver impostato anche il PERCORSO CLASSICO variabile.

Ora devi creare il file main.jsp e scriverci il codice seguente.

|_+_|

Produzione:

|_+_|

L'azione

Quando si desidera inserire elementi Java nel programma JSP, viene utilizzata l'azione. Questa azione identifica anche il tipo di browser e aggiunge o tag nel programma JSP. Supponiamo di aver bisogno del componente Java, il cui plugin non è disponibile. L'azione scarica il plug-in necessario per eseguire il componente Java, come Applet o Bean. Ci sono più attributi nell'azione del plugin, che corrisponde ai tag HTML.

Di seguito è riportato un semplice esempio dell'azione.

|_+_|

Nel codice sopra, possiamo osservare il nuovo elemento, . Quando il componente si guasta, questo elemento invia la stringa di errore all'utente.

Le azioni, come , , e definisce gli elementi XML. Tutti gli elementi XML vengono generati in fase di esecuzione e non in fase di compilazione, ovvero vengono generati dinamicamente.

L'azione

Quando si desidera terminare l'azione della pagina corrente e inoltrarla all'altra risorsa, è possibile utilizzare il azione. La sintassi di questa azione è data come segue:

|_+_|

Un solo attributo è associato all'azione, il pagina . Questa pagina deve includere l'URL relativo della risorsa, dove viene trasferita l'azione. La risorsa può essere la pagina JSP, il servlet Java e la pagina statica.

Ora vedremo un semplice esempio dell'azione. Creeremo due file, data.jsp e main.jsp . Il file date.jsp visualizzerà la data corrente e il file main.jsp contiene l'azione.

data.jsp

|_+_|

file main.jsp

|_+_|

È necessario salvare entrambi i file nella directory ROOT. Ora accederemo al file main.jsp per il risultato. Non visualizzerà il contenuto del file main.jsp; visualizzerà invece il contenuto del file date.jsp, poiché si tratta di un file inoltrato.

Produzione:

|_+_|

L'azione

Utilizzando l'azione, possiamo scrivere modelli di testo o documenti nelle pagine JSP. Di seguito è riportata la sintassi dell'azione:

|_+_|

Qui, il modello contiene solo testo ed espressioni EL. Nessun altro elemento può essere presente nel modello. Nei file XML, non utilizzare l'espressione come ${qualunque cosa > 0} , poiché questo segno non è consentito o illegale. Invece, puoi usare ${qualunque cosa gt 0} .

Direttive JSP

Nella sezione della sintassi, abbiamo visto quali sono le directory in JSP. Qui impareremo le directory JSP in dettaglio. Le direttive sono essenziali in JSP, poiché comandano e dirigono il container JSP per la gestione e la regolazione di elementi di elaborazione JSP specifici. L'intera struttura della classe servlet viene influenzata a causa delle direttive JSP.

Sintassi:

|_+_|

Gli attributi nelle direttive sono del formato chiave-valore. Ci possono essere diversi attributi nelle direttive e ognuno è separato da una virgola. Nella sintassi sopra, possiamo osservare uno spazio tra '<%@’ e il nome della direttiva e il valore e '%>.' Questi spazi sono facoltativi. Non c'è da preoccuparsi se non si aggiungono spazi tra di loro. Abbiamo visto sopra che ci sono tre tag direttiva, , , e . Discutiamo in dettaglio ciascuno di questi tag di direttiva.

La direttiva sulla pagina

La direttiva Page fornisce istruzioni alla pagina corrente del contenitore. Puoi includere la direttiva della pagina ovunque nel tuo programma JSP. In genere, la direttiva page viene utilizzata nella parte superiore della pagina JSP. La sintassi della direttiva page è:

|_+_|

La sintassi di cui sopra è scritta in XML come indicato di seguito:

|_+_|

Ci sono 13 attributi associati alla direttiva della pagina, come spiegato di seguito.

    lavaggio automatico: Questo attributo regola il comportamento del buffer di output del servlet.errorPage: errorPage visualizza l'URL dell'altro JSP, che genera eccezioni di runtime Java non controllate.si estende: Il servlet generato dovrebbe estendere la superclasse specificata.respingente: L'attributo buffer definisce il modello di buffering del flusso di output.tipo di contenuto: Questo attributo definisce lo schema per la codifica dei caratteri.isErrorPage: Suggerisce se la pagina JSP corrente è l'URL definito dall'attributo errorPage dell'altra pagina JSP.Informazioni: specifica una stringa, a cui è possibile accedere tramite il metodo getServletInfo().linguaggio: questo attributo indica il linguaggio di programmazione utilizzato nelle pagine JSP.isELIgnored: Specifica se l'espressione EL nella pagina JSP verrà ignorata.importare: questa istruzione indica tutti i pacchetti e le classi necessari per l'aggiunta nel JSP. In Java, l'istruzione di importazione Java specifica tutte le classi ei pacchetti richiesti da includere nel programma Java.isThreadSafe: Questo attributo specifica il modello di threading del servlet.sessione: L'attributo session verifica se la pagina JSP partecipa o meno alla sessione HTTP.isScriptingEnabled: questo elemento specifica se utilizzare gli elementi di scripting nella pagina JSP.

La direttiva Includi

Durante la fase di traduzione, il includere viene utilizzata per includere il file nella pagina JSP. Questa direttiva serve anche a indirizzare il contenitore sulla combinazione di tutti i file esterni con la pagina JSP. Poiché la direttiva della pagina è inclusa solo nella parte superiore della pagina JSP, la direttiva include può essere utilizzata in qualsiasi punto della pagina.

Sintassi:

|_+_|

La sintassi di cui sopra è scritta in XML come segue:

|_+_|

Qui, il nome del file è l'URL relativo. Se non si definisce il percorso del file, il compilatore presume che il file sia presente nella posizione del JSP.

La directory taglib

L'ultimo tipo di directory è taglib . Questa directory fornisce molte informazioni sulla pagina JSP, come l'insieme di tag personalizzati utilizzati, la posizione della libreria e la ricerca dei tag personalizzati dalla pagina JSP. Di seguito è riportata la sintassi della directory taglib.

|_+_|

La sintassi di cui sopra può essere scritta in XML come segue:

|_+_|

L'attributo, odiare , specifica la posizione che il contenitore può comprendere e il prefisso l'attributo indica al contenitore la composizione delle azioni personalizzate.

Oggetti impliciti JSP

Gli oggetti impliciti JSP sono oggetti Java. Il contenitore JSP consente agli sviluppatori di utilizzare questi oggetti impliciti in ogni pagina JSP senza essere dichiarati esplicitamente. Questi oggetti sono anche chiamati variabili predefinite . Esistono nove diversi oggetti impliciti: richiesta, risposta, uscita, sessione, applicazione, pagina, pageContext, configurazione ed eccezione.

L'oggetto della richiesta

Il javax.servlet.http.HttpServletRequest l'oggetto crea un'istanza chiamata richiesta oggetto. Quando un client o un utente richiede una pagina particolare, il motore JSP genera un nuovo oggetto che rappresenta la richiesta del client. Il richiesta object offre diversi metodi per estrarre le informazioni dell'intestazione HTTP, come metodi HTTP, cookie, ecc.

L'oggetto risposta

Il javax.servlet.http.HttpServletResponse l'oggetto crea un'istanza chiamata risposta oggetto. Poiché il motore JSP crea il nuovo oggetto ogni volta che l'utente richiede una pagina particolare, crea anche un oggetto che ne rappresenta la risposta. Utilizzando l'oggetto risposta, puoi includere nuovi cookie nel programma JSP, come codici di stato HTTP, timbri, ecc.

L'oggetto fuori

Il javax.servlet.jsp.JspWriter l'oggetto crea un'istanza chiamata fuori oggetto. Il motore JSP può aggiungere contenuto alla risposta richiesta dal client. Il JspWriter oggetto ha quasi gli stessi metodi presenti in java.io.PrintWriter classe. Ci sono alcuni metodi aggiuntivi nel JspWriter oggetto utilizzato per il buffering e genera IOException.

L'oggetto dell'applicazione

Il javax.servlet.ServletContext crea un'istanza chiamata an applicazione oggetto, che funge da wrapper per il ServletContext oggetto. Questo oggetto rappresenta la pagina JSP. Quando la pagina JSP viene inizializzata, viene creato un oggetto applicazione. Questo oggetto viene rimosso, poiché la pagina JSP viene distrutta utilizzando il metodo jspDestroy().

L'oggetto della sessione

Il javax.servlet.http.HttpSession crea un'istanza chiamata il sessione oggetto. Questo oggetto funziona in modo simile a come funziona nei servlet Java. L'obiettivo principale dell'oggetto sessione è tenere traccia della sessione tra le richieste del client.

L'eccezione Oggetto

Un wrapper contenente l'eccezione dalla pagina JSP precedente è chiamato oggetto eccezione. Quando si verifica una condizione di errore, per gestirla viene utilizzato un oggetto eccezione.

La pagina Oggetto

L'oggetto pagina fornisce il riferimento all'istanza della pagina. Rappresenta l'intera pagina JSP. Il ' questo' l'oggetto e l'oggetto della pagina sono sinonimi l'uno dell'altro.

L'oggetto pageContext

Il javax.servlet.jsp.PageContext crea un'istanza chiamata pageContext oggetto. Come il pagina oggetto, il pageContext oggetto rappresenta anche la pagina JSP completa. Usando gli attributi dell'oggetto pageContext, possiamo derivare altri oggetti impliciti, come applicazione , config , sessione , e fuori . Questo oggetto memorizza anche informazioni, come l'ambito della pagina, errorPageURL e informazioni sul buffering. Sono disponibili 40 metodi supportati dall'oggetto pageContext.

L'oggetto di configurazione

Il javax.servlet.ServletConfig crea un'istanza chiamata il config oggetto. Questo oggetto funge da wrapper per il ServletConfig oggetto. Gli utenti possono utilizzare questo oggetto per accedere ai parametri di inizializzazione del servlet o del motore JSP. Il metodo seguente è quello utilizzato nella pagina JSP utilizzando l'oggetto config.

|_+_|

Richiesta client JSP

Il server web riceve molte informazioni quando il browser o il client richiede una determinata pagina web. Queste informazioni non possono essere utilizzate direttamente, poiché viaggiano attraverso l'intestazione della richiesta HTTP. L'intestazione HTTP contiene diversi elementi che memorizzano le informazioni quando il browser richiede la pagina web. Questi elementi sono accetta, accetta-charset, accetta-codifica, accetta-lingua, connessione, autorizzazione, cookie, lunghezza del contenuto, se-modificato-dal momento, host, referrer, se-non modificato-dal momento e user-agent.

L'oggetto HTTPServletRequest

L'oggetto javax.servlet.http.HttpServletRequest crea un'istanza denominata oggetto richiesta. Ogni volta che un utente richiede una pagina particolare, il motore JSP genera il nuovo oggetto. L'obiettivo principale dell'oggetto richiesta è recuperare le informazioni HTTP, come dati, metodi HTTP, cookie, ecc. Di seguito sono riportati alcuni metodi che leggono le informazioni dell'intestazione HTTP dal programma JSP.

    Enumerazione getAttributeNames(): questo metodo genera l'enumerazione, che contiene i nomi degli attributi disponibili per questa richiesta.Cookie[] getCookies(): Quando il client invia la richiesta, contiene oggetti cookie. Pertanto, questo metodo produce un array, che contiene tutti questi oggetti cookie.Enumerazione getParameterNames(): Questo metodo comporta l'enumerazione di oggetti String. Questa enumerazione contiene i nomi dei parametri presenti nella richiesta.Enumerazione getHeaderNames(): Produce un'enumerazione contenente i nomi di intestazione presenti in questa richiesta.HttpSession getSession (creazione booleana): Il metodo HttpSession getSession(boolean create) risulta nella HttpSession corrente correlata a questa richiesta. Se non è presente alcuna sessione in quel momento e il valore booleano per create è true, questo metodo risulta in una nuova sessione.HttpSession getSession(): questo metodo restituisce la sessione corrente relativa alla richiesta. Se la sessione non è disponibile, questo metodo ne crea una nuova e la restituisce.Oggetto getAttribute(Nome stringa): Produce il valore dell'attributo che ha il nome come oggetto. Se non esiste un nome per l'attributo, restituisce NULL.Locale getLocale(): restituisce la Locale, dove il client accetterà il contenuto.Stringa getAuthType(): questo metodo specifica il nome dello schema di autenticazione utilizzato per conservare il servlet. Se il JSP non viene conservato, restituisce NULL.ServletInputStream getInputStream(): ServletInputStream recupera il corpo della richiesta in formato binario.Stringa getContent Type(): Questo metodo restituisce il tipo MIME del corpo della richiesta. Se il tipo non è noto, restituisce NULL.Stringa getCharacterEncoding(): Con questo metodo viene prodotto il nome di codifica dei caratteri presente nel corpo della richiesta.Stringa getHeader(Nome stringa): Restituisce il valore dell'intestazione della richiesta nel formato String.Stringa getContextPath(): Produce la parte dell'URI della richiesta.String getParameter(Nome stringa): questo metodo restituisce il valore del parametro di richiesta nel modulo String. Se il parametro della richiesta non esiste, restituisce NULL.Stringa getMethod(): Il metodo String getMethod() produce il nome della richiesta HTTP, che è stata utilizzata con la richiesta corrente.Stringa getProtocol(): le richieste in JSP utilizzano determinati protocolli. Questo metodo restituisce il nome e la versione del protocollo.Stringa getPathInfo(): Quando il client effettua la richiesta, invia l'URL. Il metodo String getPathInfo() restituisce informazioni aggiuntive sul percorso relativo all'URL.Stringa getRemoteAddr(): questo metodo genera l'indirizzo IP (Internet Protocol) del sistema del client.Stringa getRemoteUser(): Produce il login del cliente autenticato che effettua la richiesta. Se l'utente non è autenticato, restituisce NULL.Stringa getRemoteHost(): Se il nome del client che effettua la richiesta deve essere recuperato, è possibile utilizzare il metodo String getRemoteHost().Stringa getRequestedSessionId(): Questo metodo restituisce l'ID della sessione, che è definito dal client.Stringa getRequestURI(): Restituisce l'URL della richiesta dal nome del protocollo.String[] getParameterValues(Nome stringa): questo metodo restituisce un array contenente oggetti String. Questi oggetti contengono i valori di tutti i parametri presenti nella richiesta.Stringa getServletPath(): restituisce anche l'URL della richiesta.int getContentLength(): Restituisce la lunghezza del corpo della richiesta in byte.booleano isSecure(): Restituisce il valore booleano specificando se la richiesta viene effettuata tramite un canale sicuro o meno.int getServletPort(): questo metodo fornisce il numero di porta della richiesta.int getIntHeader(Nome stringa): questo metodo restituisce il valore dell'intestazione della richiesta nel formato intero.

L'esempio di richiesta di intestazione HTTP

Qui vedremo un semplice esempio di HTTP Header Request. Nell'esempio della richiesta di intestazione HTTP, applicheremo il getHeaderName() metodo per leggere le informazioni dell'intestazione HTTP. Produce un'enumerazione contenente le informazioni di intestazione HTTP della richiesta. Il metodo hasmoreElements() determina quando il metodo nextElement() deve essere interrotto.

Esempio:

|_+_|

Scrivi il codice sopra nel file main.jsp file e accedervi per leggere le informazioni dell'intestazione della richiesta HTTP. Ti fornirà tutte le informazioni sull'intestazione della richiesta HTTP, come host, connessione, controllo della cache, user-agent, accept, accept-language e accept-encoding.

Risposta del server JSP

Quando il client o il browser richiede la pagina Web, il server Web risponde alla richiesta HTTP denominata risposta. Questa risposta include una riga vuota, un documento, la riga di stato e un'intestazione di risposta. La risposta HTTP ha il seguente aspetto:

|_+_|

Nel codice sopra, la versione HTTP è HTTP/1.1 , 200 è il codice di stato, e ok è il messaggio al codice di stato. Esistono più intestazioni di risposta, con la versione HTTP/1.1 inviata dal server Web al browser. Queste intestazioni di risposta sono controllo della cache, consenti, disposizione del contenuto, connessione, lunghezza del contenuto, codifica del contenuto, lingua del contenuto, scade, tipo di contenuto, posizione, ultima modifica, set-cookie, aggiornamento e riprova dopo .

L'oggetto HttpServletResponse

javax.servlet.http.HttpServletResponse crea un'istanza denominata oggetto risposta. Questo oggetto viene creato dal server web, che rappresenta la risposta inviata al client. L'oggetto risposta è anche associato alle interfacce richieste per la creazione delle intestazioni HTTP. I programmatori possono aggiungere nuovi cookie, codici di stato HTTP e timbri di data nel programma JSP. Di seguito sono riportati alcuni metodi o funzioni utilizzati per aggiungere l'intestazione della risposta HTTP nel programma servlet.

    String encodeURL(String url): questo metodo viene utilizzato per codificare un URL particolare che include l'ID sessione. Se la codifica è richiesta, questo metodo invia l'URL senza modificare.String encodeRedirectURL(String url): L'URL incluso nella funzione sendRedirect è codificato. Se la codifica non è richiesta, l'URL rimane invariato.booleano isCommitted(): Questa funzione restituisce il valore booleano, specificando se la risposta è stata confermata.booleano contieneIntestazione(Nome stringa): Risulta anche nel valore booleano che specifica se l'intestazione della risposta con il nome è stata impostata.void addHeader(nome stringa, valore stringa): questa funzione include un'intestazione di risposta con il suo nome e valore.void addDateHeader(Nome stringa, data lunga): Include anche una nuova intestazione di risposta con nome e data.void flushBuffer(): Questa funzione scrive forzatamente il contenuto presente nel buffer nel client.void addIntHeader(Nome stringa, valore int): questa funzione include una nuova intestazione di risposta con il suo nome e un valore intero.void resetBuffer(): rimuove o cancella tutto il contenuto dal buffer sottostante ma non cancella intestazioni e codici di stato.ripristino nullo (): Questa funzione rimuove o cancella tutti i dati presenti nel buffer, insieme al codice di stato e alle intestazioni.void sendError(int sc, String msg): Il messaggio di errore ha uno stato particolare e viene inviato al client.void sendError(int sc): Questa funzione trasmette anche il messaggio di errore al client con lo specifico codice di stato cancellando i dati dal buffer.void setBufferSize(int size): questa funzione fissa la dimensione del buffer per il corpo della risposta.void setIntHeader(Nome stringa, valore int): Questa funzione imposta l'intestazione della risposta con il suo nome e il valore intero specifico.

L'esempio di risposta dell'intestazione HTTP

Ecco un esempio della risposta dell'intestazione HTTP, che utilizza la funzione setIntHeader() per impostare l'intestazione Aggiorna.

Esempio:

|_+_|

Salva il codice sopra con il nome del file, main.jsp . Dopo ogni 4 secondi, viene visualizzata l'ora corrente del sistema, come mostrato di seguito.

Produzione:

|_+_|

Codice di stato HTTP in JSP

La richiesta HTTP e la risposta HTTP hanno la stessa struttura come segue:

  • In primo luogo, include la riga di stato, Carriage Return (CRLF) e Line Feed. L'avanzamento riga implica una nuova riga.
  • Il prossimo è zero o più righe di intestazione e Carriage Return (CRLF).
  • Poi arriva una riga vuota, CRLF.
  • Infine, il corpo del messaggio è facoltativo. Il corpo del messaggio può contenere l'output della query, i dati della query o il file.

Nella sezione precedente, abbiamo visto come appare l'intestazione della risposta.

Il server web restituisce alcuni codici HTTP e i rispettivi messaggi al client. Questi codici di stato HTTP e i relativi messaggi sono descritti nella sezione seguente.

Codice Messaggio
100Continua
101Cambiare i protocolli
200ok
201Creato
202Accettato
203Informazioni non autorevoli
204Nessun contenuto
205Ripristina contenuto
206Contenuto parziale
300Scelte multiple
301Si muove in modo permanente
302Fondare
303Vedi Altro
304Non modificato
305Usa un proxy
306Inutilizzato
307Reindirizzamento temporaneo
400Brutta richiesta
401Non autorizzato
402Pagamento richiesto
403Vietato
404Non trovato
405operazione non permessa
406Non accettabile
407Autenticazione proxy richiesta
408Richiedi timeout
409Conflitto
410Andato
411Lunghezza richiesta
412Condizione preliminare non riuscita
413Entità richiesta troppo grande
414URL di richiesta troppo lungo
415Tipo di supporto non supportato
417Aspettativa fallita
500Errore interno del server
501Non implementato
502Cattivo gateway
503Servizio non disponibile
504Timeout del gateway
505Versione HTTP non supportata

I tre diversi metodi vengono utilizzati per impostare il codice di stato HTTP come indicato di seguito:

    public void setStatus(int statusCode): Imposta il codice di stato, che utilizza il valore intero per il codice di stato come argomento.public void sendRedirect(String url): Questa funzione crea una risposta con il codice 302. Genera anche un'intestazione Location, che specifica l'URL del nuovo documento.public void sendError(int code, String message): Questa funzione trasmette il codice di stato HTTP 404 al browser con un breve messaggio.

Vedremo un semplice esempio, che visualizzerà il codice di stato dell'errore 407 al client.

Esempio:

|_+_|

Il codice sopra visualizzerà il codice di stato HTTP 407 con il Necessità di autenticazione Messaggio.

Elaborazione moduli in JSP

Molte volte abbiamo bisogno di trasmettere i dati dal browser al server web e infine al programma. Esistono due metodi, GET e POST utilizzati dal browser per trasmettere questi dati al server web. I quattro metodi vengono utilizzati per leggere i dati utilizzando JSP, getParameter() , getParameterValues() , getParameterNames() , e getInputStream() .

Il metodo GET

Il metodo GET viene utilizzato per trasmettere le informazioni utente codificate e aggiungerle alla richiesta di pagina. Le informazioni utente codificate e la richiesta di pagina sono separate dal simbolo '?'. Questo metodo è l'impostazione predefinita per trasmettere le informazioni dell'utente al server Web dal browser. Restituisce la stringa che sarà presente nel file Posizione: scatola del Browser. Se disponi di dati riservati, come le password, non utilizzare il metodo GET.

Esempio del metodo GET che utilizza l'URL

Creiamo l'URL che passerà due valori diversi al programma GetURLForm usando il metodo GET.

|_+_|

Scriveremo il codice seguente nel file main.jsp. Abbiamo usato i metodi getParameter() per leggere i dati usando JSP.

Esempio:

|_+_|

Produzione:

|_+_|

Gestione dei cookie

Cosa sono i cookie? I cookie sono i file di testo presenti nel desktop del cliente e vengono utilizzati a fini di tracciamento. I cookie HTTP sono supportati dal JSP. Qui vedremo l'anatomia del cookie HTTP, come impostare o reimpostare il cookie e metodi nei cookie.

Anatomia di un biscotto

Il cookie è sempre presente nell'intestazione HTTP. Quando il JSP imposta il cookie nell'intestazione HTTP, ha la struttura seguente.

|_+_|

Nel Intestazione Set-Cookie sopra, puoi osservare il nome-valore coppia, Data in GMT, a sentiero , e il dominio . Questa coppia nome-valore è presente nel formato URL. Un altro elemento nel cookie di cui sopra è scade , che indica al browser di dimenticare questo cookie dopo la data e l'ora specificate.

Metodi dei cookie

Di seguito sono riportati alcuni metodi significativi relativi ai Cookie, insieme alle loro descrizioni.

    public String getDomain(): Questa funzione recupera il dominio del cookie.public void setDomain(String pattern): Puoi impostare il dominio per il tuo cookie utilizzando questa funzione.public int getMaxAge(): Recupera l'età massima di un cookie. L'età è rappresentata in secondi.public void setMaxAge(int scadenza): Questa funzione imposterà il tempo che deve trascorrere prima della scadenza del cookie.public String getValue(): Recupera il valore del cookie.public String getName(): Recupera il nome del cookie. Non è possibile modificare il nome del cookie dopo la sua creazione.public void setValue(String newValue): Questa funzione corregge il valore del cookie.public String getPath(): Risulta nel percorso associato al cookie.public void setPath(String uri): Questa funzione imposta il percorso per il cookie.public String getComment(): Risulta nel commento, che specifica lo scopo o l'utilizzo del cookie. Se il cookie non ha commenti, restituisce NULL.public void setSecure (bandiera booleana): Specifica il valore booleano che definisce se inviare il cookie su una connessione crittografata.public void setComment (scopo della stringa): Questa funzione imposta il commento per un cookie specificandone lo scopo.

Come impostare il Cookie?

Esistono tre metodi semplici per impostare il cookie. Questi metodi sono spiegati di seguito:

  1. Innanzitutto, crea l'oggetto cookie. Chiama il costruttore del cookie con il nome del cookie e il valore corrispondente. Sia il nome che il valore sono rappresentati in String.
|_+_|

Durante la creazione del cookie, è necessario ricordare che non devono essere presenti spazi vuoti o simboli speciali nel nome e nel valore.

  1. Dopo aver creato il cookie, imposteremo ora l'età massima per esso utilizzando il setMaxEtà funzione.
|_+_|

La funzione di cui sopra imposta la durata massima dei cookie di 24 ore.

  1. Infine, usa response.addCookie per aggiungere il cookie nell'intestazione della risposta HTTP.
|_+_|

Conclusione

JavaServer Pages o Jakarta Server Pages (JSP) è la tecnologia che consente agli sviluppatori di creare contenuti dinamici o pagine web. Esistono numerosi vantaggi avanzati di JSP, in quanto è facile da mantenere, richiede meno codice rispetto ai servlet e offre uno sviluppo rapido. Questo articolo è una guida rapida per apprendere JSP per utenti inesperti.

Abbiamo coperto tutti gli aspetti del JSP necessari per l'apprendimento degli sviluppatori inesperti. Prima di avviare qualsiasi programma JSP, configurare prima l'ambiente Java e il percorso di classe Tomcat. Ecco un tutorial completo su tutti gli elementi JSP essenziali.

Abbiamo un Guida rapida alla teoria dei grafi che parla in dettaglio di tutti i dettagli relativi alla teoria dei grafi.