public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object arg2) throws Exception {
StringBuffer url = request.getRequestURL(); //获取访问页面的完整URL
String pattern = "^([hH][tT]{2}[pP]:/*|[hH][tT]{2}[pP][sS]:/*|[fF][tT][pP]:/*)(([A-Za-z0-9-~]+).)+(:[0-9]+\\/)([A-Za-z0-9]+)";
String sPath=url.toString().replaceFirst(pattern,""); //替换首次出现的位置
//以下省略
}
url构成: "http/http/ftp"+":"+双斜杠+服务器域名或者IP地址(点和字母数字组成)+":"+端口号+斜杠+字母数组组成的项目名
例如: http://192.168.1.100:8080/demo/page/page001
这表示在IP192.168.1.100的服务器上, 开放端口8080, 项目名demo
在项目名后第一个斜杠前截断
截断后获得/page/page001