Maison  >  Article  >  Java  >  Questions d'entretien de base Java haute fréquence——(4)

Questions d'entretien de base Java haute fréquence——(4)

王林
王林avant
2020-09-02 16:08:571768parcourir

Questions d'entretien de base Java haute fréquence——(4)

1. Parlez du cycle de vie de Servlet ?

(Recommandations pour des questions d'entretien plus connexes : questions et réponses d'entretien Java)

Le servlet a une durée de vie bien définie, comprenant le chargement et l'instanciation, l'initialisation, le traitement des requêtes et la fin du service. Cette durée de vie est exprimée par les méthodes init(), service() et destroy de l'interface javax.servlet.Servlet.

Une fois le servlet instancié par le serveur, le conteneur exécute sa méthode init, et lorsque la requête arrive, il exécute sa méthode de service. La méthode de service distribue automatiquement la méthode doXXX (doGet, doPost) correspondant au. demande d'exécution, etc. Lorsque le serveur décide d'utiliser l'instance une fois détruite, sa méthode destroy est appelée.

Le conteneur Web charge le servlet et le cycle de vie commence. Initialisez le servlet en appelant la méthode init() du servlet. Ceci est réalisé en appelant la méthode service(), et différentes méthodes do***() sont appelées en fonction de différentes requêtes. Pour mettre fin au service, le conteneur Web appelle la méthode destroy() du servlet.

2. Quelle est la différence entre forward() et redirect() dans l'API Servlet ?

1. À partir de l'affichage de la barre d'adresse,

vers l'avant se produit lorsque le serveur demande des ressources. Le serveur accède directement à l'URL de l'adresse cible, lit le contenu de la réponse de cette URL, puis envoie le message. le contenu. Au navigateur. Le navigateur n'a aucune idée d'où vient le contenu envoyé par le serveur, donc sa barre d'adresse est toujours l'adresse d'origine.

La redirection signifie que le serveur envoie un code d'état basé sur une logique pour indiquer au navigateur de demander à nouveau cette adresse. Ainsi, la barre d'adresse affiche la nouvelle URL. La redirection signifie donc que le client envoie deux requêtes au serveur. Accepte également deux réponses.

2. Du point de vue du partage de données

transférer : la page transférée et la page transférée peuvent partager les données dans la demande

redirection : les données ne peuvent pas être partagées

La redirection peut non seulement rediriger vers d'autres ressources de l'application actuelle, mais également rediriger vers des ressources d'autres applications sur le même site, et même rediriger vers des ressources d'autres sites en utilisant des URL absolues

forward La méthode ne peut transférer que des requêtes entre des ressources au sein de la même application Web. Le transfert est une opération au sein du serveur

la redirection est lorsque le serveur informe le client et permet au client de relancer la demande

Par conséquent. , vous pouvez dire que la redirection est une demande indirecte, mais vous ne pouvez pas dire "si une demande appartient au transfert ou à la redirection"

3 Du point de vue de l'application

transférer : généralement utilisé lorsque le. l'utilisateur se connecte, il est redirigé vers le module correspondant en fonction du rôle.

redirection : Généralement utilisée pour revenir à la page principale et accéder à d'autres sites Web lorsque l'utilisateur se déconnecte

4. . Efficacité Par exemple,

forward : high.

redirect : low.

3. Quelle est la différence entre request.getAttribute() et request.getParameter() ?

1. request.getParameter() est obtenu grâce à l'implémentation du conteneur pour obtenir les données transmises via des méthodes telles que post, get, etc.

request.setAttribute() et getAttribute() circulent uniquement dans le conteneur Web et ne sont qu'en phase de traitement de la demande.

2. getAttribute renvoie un objet et getParameter renvoie une chaîne

3. getAttribute() est toujours utilisé avec setAttribute(). Il ne peut être transmis qu'après l'avoir défini avec setAttribute(). getAttribute() pour obtenir la valeur, ils transmettent les données de type Object. Et il doit être utilisé dans le même objet de requête pour être valide. , et getParameter() doit recevoir les paramètres soumis par le get ou le post du formulaire

(Recommandation du didacticiel vidéo : cours java )

4. Inclusion statique JSP et inclusion dynamique La différence

1. <%@include file="xxx.jsp"%> est une instruction de compilation en jsp L'inclusion du fichier se produit pendant la période de conversion de jsp en servlet, tandis que est une instruction d'action dans jsp L'inclusion de ses fichiers se produit pendant la période de compilation, qui est la période pendant laquelle les fichiers java sont compilés en fichiers de classe

2. L'utilisation de l'inclusion statique ne générera qu'un seul fichier de classe, tandis que l'utilisation de l'inclusion dynamique générera plusieurs fichiers de classe


3. L'utilisation de l'inclusion statique, l'objet de requête de la page contenant et l'inclus. la page est le même objet, car l'inclusion statique copie uniquement le contenu de la page incluse dans la page incluse ; tandis que l'inclusion dynamique inclut la page incluse et la page incluse, qui ne sont pas la même plage de paramètres pouvant être obtenues par. l'objet de requête de la page incluse est relativement plus grand, non seulement vous pouvez obtenir les paramètres transmis à la page contenant, mais vous pouvez également obtenir les paramètres transmis à partir de la page contenant


5. sont utilisés pour implémenter chaque partie de MVC ? Comment l'implémenter ?


MVC est l'abréviation de Model-View-Controller. Le modèle représente la logique métier de l'application (implémentée via des composants JavaBeans et EJB), la vue est la surface de présentation de l'application (générée par les pages JSP) et le contrôleur assure le contrôle des processus de l'application (généralement un servlet via ce modèle de conception). Divisez la logique d'application, la logique de traitement et d'affichage en différentes implémentations de composants. Ces composants peuvent être interagis et réutilisés.

6. Quels sont les objets intégrés dans jsp ? Quelles sont leurs fonctions ?


JSP a les 9 objets intégrés suivants :

1. request client request, Cette requête contiendra les paramètres des requêtes GET/POST

2. La page web de réponse renvoie la réponse du client

3. Les attributs de la page web pageContext sont gérés ici

4.

5, le servlet d'application exécute le contenu

6. out est utilisé pour transmettre la sortie de la réponse

7. Le composant architectural de la servlet de configuration

8. page Web elle-même

9. exception Exception non interceptée pour les pages Web d'erreur

7. La différence entre les méthodes get et post dans HTTP

1. pour les données , et Post est une demande de soumission de données au serveur

2. Get consiste à obtenir des informations, pas à modifier des informations, similaire à la fonction de requête de base de données, les données ne seront pas modifiées

3. Obtenir Les paramètres demandés seront transmis après l'URL, et les données demandées seront ajoutées à l'URL pour diviser l'URL et transférer les données. Les paramètres sont connectés avec &, et le XX dans %XX est le symbole ASCII. exprimé en hexadécimal, si les données sont des lettres/chiffres anglais, envoyez-les telles quelles, si c'est un espace, convertissez-les en +, si ce sont des caractères chinois/autres, cryptez directement la chaîne avec BASE64.

4. Il existe une limite de taille pour les données transmises par Get. Étant donné que GET soumet les données via une URL, la quantité de données pouvant être soumises par GET est directement liée à la longueur de l'URL dont disposent les différents navigateurs. exigences différentes concernant la longueur de l'URL. Les restrictions sont différentes.

5. Les données demandées par GET seront mises en cache par le navigateur, et le nom d'utilisateur et le mot de passe apparaîtront en texte clair sur l'URL. D'autres peuvent vérifier les enregistrements de navigation historiques, et les données ne sont pas sécurisées.

Côté serveur, utilisez Request.QueryString pour obtenir les données soumises par la méthode Get.

La demande de publication est envoyée au serveur Web en tant que contenu réel du message http. Les données sont placées dans l'en-tête HTML et soumises. La publication ne limite pas les données soumises. Post est plus sûr que Get Lorsque les données sont en chinois ou des données non sensibles, utilisez get car lors de l'utilisation de get, les paramètres seront affichés dans l'adresse. Pour les données sensibles et les données qui ne sont pas des caractères chinois, utilisez post.

6. POST représente une requête pouvant modifier les ressources sur le serveur, côté serveur, les données soumises dans la méthode Post ne peuvent être obtenues qu'à l'aide de Request.Form.

8. Qu'est-ce qu'un cookie ? Quelle est la différence entre une session et un cookie ?


Le cookie est une technologie de session, un objet qui enregistre les informations de l'utilisateur dans le navigateur

(Recommandations associées :

Démarrez avec Java)

Différences :

1. Les données des cookies sont stockées sur le navigateur du client et les données de session sont placées sur le serveur

2. Les cookies ne sont pas très sûrs. COOKIE local et effectuez COOKIE Deception, si la sécurité est la considération principale, vous devez utiliser session

3 La session sera enregistrée sur le serveur pendant une certaine période de temps. Lorsque l'accès augmente, cela consommera davantage de performances de votre serveur. Si vous envisagez principalement de réduire les performances du serveur, vous devez utiliser COOKIE

4. La limite d'un seul cookie sur le client est de 3K, ce qui signifie qu'un seul cookie est limité à 3K. les magasins du site sur le COOKIE client ne peuvent pas être 3K.

Conclusion :

Stockez les informations importantes telles que les informations de connexion en tant que SESSION ; si d'autres informations doivent être conservées, elles peuvent être placées dans COOKIE ;

9. Quelles sont les différences, les points communs et le champ d'application entre jsp et servlet ?

JSP est une extension de la technologie Servlet, qui est essentiellement une manière simple de Servlet. Une fois JSP compilé, il s'agit d'un "servlet-like".

La principale différence entre Servlet et JSP est que la logique d'application de Servlet est dans le fichier Java et est complètement séparée du HTML dans la couche de présentation. Dans le cas de JSP, Java et HTML peuvent être combinés dans un fichier avec une extension .jsp.

JSP se concentre sur les vues et les servlets sont principalement utilisés pour la logique de contrôle. Dans le framework Struts, JSP est situé dans la couche de vue du modèle de conception MVC et Servlet est situé dans la couche de contrôle

10. Comment le conteneur Tomcat crée-t-il une instance de classe de servlet ? Quels principes sont utilisés ?

Lorsque le conteneur démarre, il lira les fichiers web.xml dans toutes les applications Web du répertoire webapps, puis analysera les fichiers XML et lira les informations d'enregistrement du servlet. Ensuite, chargez les classes de servlet enregistrées dans chaque application et instanciez-les par réflexion. (Parfois, il est également instancié à la première requête)

Ajoutez 1 lors de l'enregistrement du servlet s'il s'agit d'un nombre positif, puis instanciez à le début. S'il n'est pas écrit ou s'il s'agit d'un nombre négatif, l'instanciation est demandée pour la première fois.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer