shiro的工具类-webUtils

这个类提供的很多方法对于我们的平时开发都很有帮助,并不仅仅是shiro内部的应用。

  1. getPathWithinApplication(HttpServletRequest),取得不包含应用路径的路径。

  2. normalize(String path)将路径修改之后正常显示,去掉或者是替换比如”/”“/.”“/../”“\”等。

  3. issueRedirect(ServletRequest, ServletResponse, String),重定向到指定的url。

  4. saveRequest(ServletRequest request),将访问的request保存起来,但是注意仅仅保存了url,method和queryString(这个值在post方式提交时是空,所以如果是post时没用,不要保存,因为没法保存参数)

  5. 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();
}