shiro学习33-shiro的工具类-webUtils
这个类提供的很多方法对于我们的平时开发都很有帮助,并不仅仅是shiro内部的应用。
<!--[if !supportLists]-->1、 1、 <!--[endif]-->getPathWithinApplication(HttpServletRequest),取得不包含应用路径的路径。
<!--[if !supportLists]-->2、 2、normalize(String path)将路径修改之后正常显示,去掉或者是替换比如”/”“/.”“/../”“\\”等。
<!--[if !supportLists]-->3、 3、<!--[endif]-->issueRedirect(ServletRequest, ServletResponse, String),重定向到指定的url。
<!--[if !supportLists]-->4、 4、<!--[endif]-->saveRequest(ServletRequest request),将访问的request保存起来,但是注意仅仅保存了url,method和queryString(这个值在post方式提交时是空,所以如果是post时没用,不要保存,因为没法保存参数)
<!--[if !supportLists]-->5、 5、<!--[endif]-->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(); }