web-dev-qa-db-fra.com

Servlet JSP web.xml

Je vois une fonctionnalité dans NetBeans pour sélectionner un JSP pour un Servlet et le résultat XML dans web.xml est comme ça:

<servlet>
    <servlet-name>TestServlet</servlet-name>
    <jsp-file>/index.jsp</jsp-file>
</servlet>

Qu'est-ce que ça veut dire? Et à quoi ça sert? Est-ce comme code derrière architecture dans ASP .NET?

13
ehsun7b

Qu'est-ce que cela signifie? Et à quoi ça sert?

Il est utilisé pour mapper un nom canonique pour un servlet (pas une classe de servlet réelle que vous avez écrite) à un JSP (qui se trouve être un servlet). En soi, ce n'est pas très utile. Vous devrez souvent mapper la servlet sur un modèle d'URL comme suit:

<servlet>
    <servlet-name>TestServlet</servlet-name>
    <jsp-file>/index.jsp</jsp-file>
</servlet>
<!--mapping-->
<servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/test/*</url-pattern>   
</servlet-mapping>

Toutes les demandes qui arrivent maintenant à /test/* Seront désormais traitées par le JSP.

De plus, la spécification de servlet indique également:

L'élément jsp-file Contient le chemin d'accès complet à un fichier JSP dans l'application Web commençant par un "/". Si un jsp-file Est spécifié et que l'élément load-onstartup Est présent, alors le JSP doit être précompilé et chargé.

Ainsi, il peut être utilisé pour la précompilation de servlets, au cas où votre processus de génération ne les aurait pas précompilés. Gardez à l'esprit que la précompilation des JSP de cette manière n'est pas exactement une meilleure pratique. Idéalement, votre script de construction devrait s'occuper de ces questions.

Est-ce comme du code derrière l'architecture dans ASP .NET?

Non, si vous recherchez une architecture code-behind, la ressemblance la plus proche avec celle-ci se trouve dans le support Managed Beans proposé par JSF.

35
Vineet Reynolds

JSP sont servlets. JSP est une technologie de création de modèles qui analyse le fichier .jsp et génère un fichier servlet .Java. Une fois cela fait, le fichier .Java est compilé dans un fichier .class qui s'exécute dans le contexte du moteur servlet/JSP.

Tout ce que fait le fichier web.xml, c'est d'associer un fichier .jsp à un nom de servlet. Il y a plus: vous devez mapper ce .jsp à une URL pour que le moteur de servlet/JSP puisse savoir quand l'invoquer.

Je ne sais pas ASP ou .NET assez bien pour dire si c'est la même chose que "code derrière".

8
duffymo

Les JSP sont une sorte de servlet. Les pages JSP sont compilées en servlet. Cette servlet s'exécute dans le conteneur de servlets fourni par un serveur Web Java.

Dans web.xml, <servlet> balise utilisée pour nommer le nom de la classe de servlet et le fichier jsp. Ensuite, vous pouvez mapper ces servlets et fichiers jsp en fonction de vos propres URL.

<servlet>
   <servlet-name>hello</servlet-name>
   <jsp-file>/jsp/hello.jsp</jsp-file>
</servlet>
<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/helloworld</url-pattern>
</servlet-mapping>

Si votre fichier hello.jsp se trouve dans le dossier JSP. Lorsque vous essayez d'ouvrir l'URL avec/helloworld. Cela ouvrira la page hello.jsp.

4
Hafiz Shehbaz Ali