这个类提供的很多方法对于我们的平时开发都很有帮助,并不仅仅是shiro内部的应用。
-
getPathWithinApplication(HttpServletRequest),取得不包含应用路径的路径。
-
normalize(String path)将路径修改之后正常显示,去掉或者是替换比如”/”“/.”“/../”“\”等。
-
issueRedirect(ServletRequest, ServletResponse, String),重定向到指定的url。
-
saveRequest(ServletRequest request),将访问的request保存起来,但是注意仅仅保存了url,method和queryString(这个值在post方式提交时是空,所以如果是post时没用,不要保存,因为没法保存参数)
-
redirectToSavedRequest重定向到以前保存的request的路径,但是注意这个方法只对get方式的有效,post方式无效。如果是get的方法会将参数传过去。他是用一个SavedRequest类封装的,里面有三个属性:
private String method;
private String queryString;
private String requestURI;
举个例子:xxx?a=b
其中queryString记录了a=b,
requestURI表示xxx,
在这个类的getRequestUrl可以发现是将queryString和requestURI组合起来了,源码如下:
public String getRequestUrl() {
StringBuilder requestUrl = new StringBuilder(getRequestURI());
if (getQueryString() != null) {
requestUrl.append("?").append(getQueryString());//将所有的参数都带上,但是只对get方法有效。
}
returnrequestUrl.toString();
}