Ein Bereich ist ein Speicherbereich, der verwendet wird, wenn Sie Daten für Servlets und JSPs freigeben möchten. Abhängig vom Freigabebereich gibt es die folgenden drei Typen.
Speichern Sie im Bereich innerhalb der doGet- oder doPost-Methode des Servlets Es gibt viele Möglichkeiten, es als nächstes mit der Vorwärtsmethode zu übergeben.
Die Vorlage für den Deklarationsteil der doGet-Methode und der doPost-Methode lautet wie folgt.
doGet,Deklaration der doPost-Methode
// doGet
Public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
}
//Gleiches gilt für doPost
Public void doPost(HttpServletRequest request, HttpServletResponse response)
Throws ServletException, IOException{
}
Ein Bereich, der für jede Anforderung vom Browser generiert wird. Im Prinzip wird es nicht beibehalten, wenn die nächste Anforderung eingeht, der Browser geschlossen oder der Anwendungsserver neu gestartet wird.
//Speichern, um den Bereich anzufordern
request.setAttribute("Attributname",Instanz, die Sie speichern möchten);
//Holen Sie sich eine Instanz aus dem Anforderungsbereich
Modellname= (Schimmel) request.getAttribute("Attributname");
//Der Attributname ist ein Index, der auf den Bereich verweist.
//Ein Typ ist der Typ einer gespeicherten Instanz
//Der Name ist die Referenzvariable, die Sie der erfassten Instanz geben möchten.
Ein Bereich, der beibehalten wird, sofern der Browser nicht geschlossen wird oder eine Zeitüberschreitung auftritt.
//Sicherer Speicherbereich für den Sitzungsumfang
HttpSession session = request.getSession();
//Im Sitzungsbereich speichern
Session.setAttribute("Attributname",Instanz, die Sie speichern möchten)
//Instanz aus dem Sitzungsbereich abrufen
Modellname= (Schimmel) session.getAttribute("Attributname");
Ein Bereich, der beibehalten wird, bis der Anwendungsserver beendet wird. Es bleibt auch dann erhalten, wenn der Browser geschlossen ist.
//Sicherer Speicherbereich für den Anwendungsbereich
ServletContext sc = getServletContext();
//Im Anwendungsbereich speichern
sc.setAttribute("Attributname",Instanz, die Sie speichern möchten)
//Instanz aus Anwendungsbereich abrufen
Modellname= (Schimmel) sc.getAttribute("Attributname");
Bei der Übergabe des Prozesses an das nächste Servlet oder die nächste JSP wird eine im Forward aufgerufene Methode verwendet, um die im Bereich gespeicherten Daten zu übernehmen. Wenn die Daten nicht vererbt werden, kann der Prozess mithilfe der Umleitung übergeben werden. Er wird jedoch häufig verwendet, wenn er an eine externe Site übergeben wird. Die Weiterleitungsmethode kann nur die Verarbeitung innerhalb des Servers bestehen.
Eine Methode zum Erben der im Bereich gespeicherten Daten und zum Weiterleiten des Prozesses an die nächste Seite. Der Server führt den folgenden Vorgang automatisch aus und gibt ihn an den Browser zurück. Bei der Übergabe der Verarbeitung auf demselben Server kann die Weiterleitung verwendet werden, auch wenn keine bestimmte Datenübergabe erfolgt.
RequestDispatcher dispatcher = request.getRequestDispatcher("Ziel weiterleiten");
dispatcher.forward(request, response);
//Benötigt die folgenden Pakete
import javax.servlet.RequestDispatcher;
//Schreiben Sie für das Weiterleitungsziel den Pfad gemäß der Verzeichnisstruktur
//Zum Beispiel:
request.getRequestDispatcher("/WEB-INF/jsp/hogehoge.jsp")
Der Server kehrt zu dem Browser zurück, auf den als nächstes zugegriffen werden soll, und der Browser fordert den nächsten Prozess vom angegebenen Ziel an. Aufgrund dieses Mechanismus ist es für den Zugriff auf externe Sites geeignet.
request.sendRedirect("Ziel umleiten");
//Das Umleitungsziel kann durch eine URL angegeben werden, oder ein Pfad gemäß der Dateistruktur kann auf demselben Server verwendet werden.
//Zum Beispiel:
request.sendRedirect("http://www.hogehoge.com")
request.sendRedirect("/Servlet-Name")
Recommended Posts