今天想尝试一下rose框架的portal,看了一下它的内部实现,有一块代码不是很明白!不太懂下面的do{}while(true) 有什么用?求教!
代码的地址:http://paoding-rose.googlecode.com/svn/trunk/paoding-rose-portal/src/main/java/net/paoding/rose/web/portal/impl/PortalRequest.java
/**
* 取出包装在里面的PortalRequest
*
* @param request
* @return
*/
public static PortalRequest unwrapPortalRequest(HttpServletRequest request) {
do {
if (request instanceof PortalRequest) {
return (PortalRequest) request;
} else if (request instanceof HttpServletRequestWrapper) {
request = (HttpServletRequest) ((HttpServletRequestWrapper) request).getRequest();
} else {
return null;
}
} while (true);
}