Une étendue est une zone de stockage utilisée lorsque vous souhaitez partager des données entre des servlets et des JSP. Il existe les trois types suivants en fonction de la plage de partage.
Enregistrer dans la portée dans la méthode doGet ou doPost du servlet Il existe de nombreuses façons de passer ensuite avec la méthode forward.
Le modèle pour la partie déclaration de la méthode doGet et de la méthode doPost est le suivant.
doGet,Déclaration de la méthode doPost
// doGet
Public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
}
//idem pour doPost
Public void doPost(HttpServletRequest request, HttpServletResponse response)
Throws ServletException, IOException{
}
Une portée générée pour chaque requête du navigateur. En principe, il n'est pas conservé lors de la prochaine requête, du navigateur fermé ou du redémarrage du serveur d'applications.
//Enregistrer pour demander l'étendue
request.setAttribute("Nom d'attribut",Instance que vous souhaitez enregistrer);
//Obtenir une instance de la portée de la requête
Nom du type= (Moule) request.getAttribute("Nom d'attribut");
//Le nom de l'attribut est un index qui pointe vers la portée.
//Un type est le type d'une instance enregistrée
//Le nom est la variable de référence que vous souhaitez donner à l'instance acquise.
Une étendue qui est conservée sauf si le navigateur est fermé ou expire.
//Zone de stockage sécurisée pour l'étendue de la session
HttpSession session = request.getSession();
//Enregistrer dans l'étendue de la session
Session.setAttribute("Nom d'attribut",Instance que vous souhaitez enregistrer)
//Obtenir une instance à partir de l'étendue de la session
Nom du type= (Moule) session.getAttribute("Nom d'attribut");
Une étendue qui est conservée jusqu'à ce que le serveur d'applications soit arrêté. Il est conservé même si le navigateur est fermé.
//Zone de stockage sécurisée de la portée de l'application
ServletContext sc = getServletContext();
//Enregistrer dans le champ d'application
sc.setAttribute("Nom d'attribut",Instance que vous souhaitez enregistrer)
//Obtenir une instance à partir de la portée de l'application
Nom du type= (Moule) sc.getAttribute("Nom d'attribut");
Lors du passage du processus au servlet ou JSP suivant, une méthode appelée forward est utilisée pour reprendre les données enregistrées dans la portée. Si les données ne sont pas héritées, le processus peut être transmis à l'aide de la redirection, mais il est souvent utilisé lors de la transmission à un site externe. La méthode de transfert ne peut passer le traitement qu'au sein du serveur.
Une méthode pour hériter des données enregistrées dans la portée et passer le processus à la page suivante. Le serveur exécute automatiquement le processus suivant et le renvoie au navigateur. Lors du transfert du traitement au sein du même serveur, le transfert peut être utilisé même s'il n'y a pas de transfert de données particulier.
RequestDispatcher dispatcher = request.getRequestDispatcher("Destination de transfert");
dispatcher.forward(request, response);
//Nécessite les packages suivants
import javax.servlet.RequestDispatcher;
//Pour la destination de transfert, écrivez le chemin selon la structure du répertoire
//Par exemple:
request.getRequestDispatcher("/WEB-INF/jsp/hogehoge.jsp")
Le serveur retourne au navigateur où accéder ensuite, et le navigateur demande le processus suivant à partir de la destination spécifiée. En raison de ce mécanisme, il est adapté pour accéder à des sites externes.
request.sendRedirect("Rediriger la destination");
//La destination de redirection peut être spécifiée par URL, ou un chemin selon la structure de fichier peut être utilisé dans le même serveur.
//Par exemple:
request.sendRedirect("http://www.hogehoge.com")
request.sendRedirect("/Nom du servlet")
Recommended Posts