2017-06-16 7 views
0

Quelqu'un peut-il me donner les informations concernant les règles de configuration du modèle d'URL et si j'utilise / comme page d'index et que j'ai besoin d'utiliser request.getRequestDispatcher("/html/file.html").forward(request,response).web.xml Modèle d'URL

fichier file.html est dans le dossier html qui est sous dossier war, le dossier est html dans le même dossier de WEB-INF

Quelqu'un peut-il me donner une suggestion? Merci

+0

Pas vraiment comprendre votre problème ... –

Répondre

1

Vous pouvez définir un servlet dans votre web.xml comme ci-dessous, puis utiliser request.getRequestDispatcher("file").forward(request,response), essentiellement ce qui se passera est que vous seriez d'envoyer votre demande à un servlet dont la cartographie est /file et que servlet vous pointer vers votre ressource /html/file.html . S'il vous plaît noter que même si le nom de l'élément est jsp-file mais vous pouvez pointer un HTML à partir de celui-ci.

<servlet> 
    <servlet-name>FileServlet</servlet-name> 
    <jsp-file>/html/file.html</jsp-file> 
</servlet> 
<servlet-mapping> 
    <servlet-name>FileServlet</servlet-name> 
    <url-pattern>/file</url-pattern> 
</servlet-mapping> 

En tant que add-on - à venir à la façon dont les modèles d'URL correspond à la présente cartographie serlvet dans le fichier web.xml, ci-dessous sont des règles de cartographie servlet dans web.xml (sources de ce sont - Servlet specs et @BalusC answer):

1. cartographie Path:

  • Si vous voulez créer un mappage de chemin puis lancez le wi mapping e / et se terminera /*. Par exemple:

    <servlet-mapping> 
        <servlet-name>FileServlet</servlet-name> 
        <url-pattern>/foo/bar/*</url-pattern> <!-- http://localhost:7001/MyTestingApp/foo/bar/index.html would map this servlet --> 
    </servlet-mapping> 
    

2. mappage d'extension:

  • Si vous voulez créer un mappage d'extension ont ensuite mappage de servlet *.. Par exemple:

    <servlet-mapping> 
        <servlet-name>FileServlet</servlet-name> 
        <url-pattern>*.html</url-pattern> <!-- http://localhost:7001/MyTestingApp/index.html would map this servlet. Also, please note that this servlet mapping would also be selected even if the request is `http://localhost:7001/MyTestingApp/foo/index.html` unless you have another servlet mapping as `/foo/*`. --> 
    </servlet-mapping> 
    

3. mappage de servlet par défaut:

  • Supposons que vous souhaitez définir que si un mappage ne correspond pas à la cartographie servelt alors il devrait être mappé à la servlet par défaut, le mappage de servlet est alors /. Par exemple:

    <servlet-mapping> 
        <servlet-name>FileServlet</servlet-name> 
        <url-pattern>/</url-pattern> <!-- Suppose you have mapping defined as in above 2 example as well, and request comes for `http://localhost:7001/MyTestingApp/catalog/index.jsp` then it would mapped with servlet --> 
    </servlet-mapping> 
    

4.mappage de correspondance exacte:

  • Supposons que vous souhaitez définir la cartographie de correspondance exacte alors ne pas utiliser un caractère joker ou quelque chose, et définir la correspondance exacte, comme /catalog. Par exemple:

    <servlet-mapping> 
        <servlet-name>FileServlet</servlet-name> 
        <url-pattern>/catalog</url-pattern> <!-- Only requests with http://localhost:7001/MyTestingApp/catalog will match this servlet --> 
    </servlet-mapping> 
    

5. cartographie racine du contexte d'application:

  • La chaîne vide "" est un modèle d'URL spéciale qui mappe exactement à la racine de contexte de l'application . c'est-à-dire, demandes du formulaire http://localhost:7001/MyTestingApp/.

    <servlet-mapping> 
        <servlet-name>FileServlet</servlet-name> 
        <url-pattern></url-pattern> <!-- Only requests with http://localhost:7001/MyTestingApp/ will match this servlet Please note that if request is http://localhost:7001/MyTestingApp/abc then it will not match this mapping --> 
    </servlet-mapping> 
    

6. match tout cartographie:

  • Si vous voulez faire correspondre toutes les demandes à un mappage ou remplacer tous les autres mappage de servlet puis créez un mappage comme /*.

    <servlet-mapping> 
        <servlet-name>FileServlet</servlet-name> 
        <url-pattern>/*</url-pattern> <!-- This will override all mappings including the default servlet mapping --> 
    </servlet-mapping> 
    

Ci-dessous le schéma récapitulatif de la spécification JMS:

enter image description here