2010-07-20 4 views
1

Si j'ai quelque chose comme ceci:obtenir le chemin virtuel du servlet invoqué dans le code de servlet

<servlet> 
    <display-name>Step</display-name> 
    <servlet-name>Step</servlet-name> 
    <servlet-class>com.foo.AServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Step</servlet-name> 
    <url-pattern>/aservlet/*</url-pattern> 
</servlet-mapping> 

et le servlet est invoquée par une demande de la forme/aservlet/ABC

puis est il y a un moyen d'obtenir la valeur "ABC" dans le code? i.e à l'intérieur des méthodes doGet() ou doPost() de la classe AServlet?

Répondre

4

le plus facile à faire est,

String path = request.getPathInfo(); 

qui retourne "/ ABC".

1
public void doGet(HttpServletRequest request, HttpServletResponse response){ 
    String uriRequest = request.getRequestURI(); 
    //parse to obtain only the last part 
    String uriRequest = uriRequest.substring(uriRequest.lastIndexOf("/")+1); 
} 

Même chose pour doPost().

Questions connexes