2010-07-20 39 views
1

如果我是这样的:获取调用servlet的虚拟路径的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> 

并且servlet是由形式/ aservlet/ABC

则是请求调用有没有办法在代码中获得“ABC”值?即在类AServlet的doGet()或doPost()方法中?

回答

4

最容易做的事情是,

String path = request.getPathInfo(); 

它返回 “/ 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); 
} 

同样的事情为doPost()