Maison  >  Article  >  Java  >  Qu'est-ce qui est avancé en Java

Qu'est-ce qui est avancé en Java

(*-*)浩
(*-*)浩original
2019-05-22 20:03:338401parcourir

En Java, forward fait référence à une « méthode de transfert direct ». Pour la méthode directe, le navigateur client émet uniquement une requête. Le servlet transmet la requête au servlet, HTML, JSP ou à d'autres ressources d'informations. La deuxième ressource d'informations répond à la requête. Dans la requête d'objet de requête, l'objet enregistré est pour chacun. Les ressources informationnelles sont partagées.

Qu'est-ce qui est avancé en Java

L'utilisateur envoie une requête HTTP au serveur. La requête peut être traitée par plusieurs ressources d'information avant d'être renvoyée à l'utilisateur. mécanisme de transfert. Les demandes sont transmises les unes aux autres, mais les utilisateurs n'ont pas l'impression que les demandes sont transmises. Selon la méthode de transfert, il peut être divisé en transfert de demande direct (Forward) et transfert de demande indirect (Redirect).

Méthode de transfert direct (Forward), le client et le navigateur n'émettent qu'une seule requête, Servlet, HTML, JSP ou autres ressources d'informations, la deuxième ressource d'informations répond à la requête et l'enregistre dans la requête d'objet de requête. les objets sont partagés avec chaque ressource d’information.

La méthode de transfert indirect (Redirect) consiste en fait à deux requêtes HTTP. Lorsque le serveur répond à la première requête, elle permet au navigateur d'envoyer une requête vers une autre URL pour atteindre l'objectif de transfert.

Pour donner un exemple populaire :

Le transfert direct équivaut à : "A demande à B d'emprunter de l'argent, B dit qu'il ne l'a pas, B va à C pour l'emprunter, et s'il ne peut pas l'emprunter, il transmettra le message « Donnez-le à A »

Le transfert indirect équivaut à : « A a demandé à B d'emprunter de l'argent, mais B a dit qu'il n'en avait pas. alors il a demandé à A d'emprunter de l'argent à C."

Explication détaillée de la méthode de transfert direct (Forward)

La méthode de transfert direct est utilisée plus souvent De manière générale, le transfert de demande fait référence à la méthode de transfert direct. La plupart des applications Web auront un contrôleur. Il appartient au responsable du traitement de contrôler à quelle ressource d'information la demande doit être transmise. Ensuite, ces ressources d'informations traitent la demande et, après traitement, elle peut être transmise à d'autres ressources d'informations pour être renvoyée à l'utilisateur. Ce processus est le modèle MVC classique.

L'interface javax.serlvet.RequestDispatcher est une interface que le redirecteur de requêtes doit implémenter. Le conteneur Web fournit au servlet un objet qui implémente cette interface. Le but du transfert de requête est atteint en appelant la méthode forward(). de cette interface. Exemple de code Comme suit :

......
    //Servlet里处理get请求的方法
 public void doGet(HttpServletRequest request , HttpServletResponse response){
     //获取请求转发器对象,该转发器的指向通过getRequestDisPatcher()的参数设置
   RequestDispatcher requestDispatcher =request.getRequestDispatcher("资源的URL");
    //调用forward()方法,转发请求      
   requestDispatcher.forward(request,response);    
}......

Quest-ce qui est avancé en Java

Le processus de transfert direct de la demande illustré dans la figure ci-dessus est le suivant :

  • Le navigateur émet une demande d'accès à Servlet1 ;

  • Servlet1 appelle la méthode forward() et transmet la demande à Servlet2 côté serveur ; >

    Enfin, Servlet2 répond.
  • Astuce : En effet, via le navigateur, vous pouvez observer la méthode de transfert de requête utilisée par le serveur. Lorsqu'un lien hypertexte est cliqué, la barre d'adresse actuelle apparaîtra dans le navigateur. Adresse demandée. Si, une fois la réponse côté serveur terminée, il s'avère que l'adresse dans la barre d'adresse a changé, cela prouve que la demande est transmise indirectement. Au contraire, si l'adresse ne change pas, cela signifie une demande directe de réexpédition ou pas de réexpédition.

Informations détaillées :

Quels sont les principes et les différences entre le renvoi direct et le renvoi indirect ?

Réponse : Forward et Redirect représentent deux méthodes de transfert de requêtes : le transfert direct et le transfert indirect. Correspondant au code, il s'agit de la méthode forward() de la classe RequestDispatcher et de la méthode sendRedirect() de la classe HttpServletRequest.

Pour la méthode indirecte, lorsque le serveur répond à la première requête, il permet au navigateur d'envoyer une requête vers une autre URL pour atteindre l'objectif de transfert. Il s'agit essentiellement de deux requêtes HTTP, correspondant à deux objets de requête.

Pour la méthode directe, le navigateur client n'émet qu'une seule requête et le servlet transmet la requête au servlet, HTML, JSP ou à d'autres ressources d'informations. La deuxième ressource d'informations répond à la requête. le même objet de requête A.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn