1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.struts2;
19
20 import javax.servlet.http.HttpServletRequest;
21
22
23 /***
24 * Request handling utility class.
25 */
26 public class RequestUtils {
27
28 /***
29 * Retrieves the current request servlet path.
30 * Deals with differences between servlet specs (2.2 vs 2.3+)
31 *
32 * @param request the request
33 * @return the servlet path
34 */
35 public static String getServletPath(HttpServletRequest request) {
36 String servletPath = request.getServletPath();
37
38 if (null != servletPath && !"".equals(servletPath)) {
39 return servletPath;
40 }
41
42 String requestUri = request.getRequestURI();
43 int startIndex = request.getContextPath().equals("") ? 0 : request.getContextPath().length();
44 int endIndex = request.getPathInfo() == null ? requestUri.length() : requestUri.lastIndexOf(request.getPathInfo());
45
46 if (startIndex > endIndex) {
47 endIndex = startIndex;
48 }
49
50 return requestUri.substring(startIndex, endIndex);
51 }
52
53 }