1、ThemePreviewFilter过滤器
主要代码:
ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
WebKeys.THEME_DISPLAY);
Pattern cssPattern = Pattern.compile(
themeDisplay.getPathThemeCss());
Matcher cssMatcher = cssPattern.matcher(content);
content = cssMatcher.replaceAll("css");
Pattern imagePattern = Pattern.compile(
themeDisplay.getPathThemeImages());
Matcher imageMatcher = imagePattern.matcher(content);
content = imageMatcher.replaceAll("images");
功能:判断是否是要预览,如果是预览,替换response中的themeDisplay.getPathThemeCss()为“css”,themeDisplay.getPathThemeImages()为“images”。(预览时不加载layout)
2、Sharepoint过滤器
主要代码:
protected void setGetHeaders(HttpServletResponse response) {
response.setContentType("text/html");
response.setHeader(
"Public-Extension", "http://schemas.microsoft.com/repl-2");
response.setHeader(
"MicrosoftSharePointTeamServices", SharepointUtil.VERSION);
response.setHeader("Cache-Control", "no-cache");
}
protected void setOptionsHeaders(HttpServletResponse response) {
response.setHeader("MS-Author-Via", "MS-FP/4.0,DAV");
response.setHeader("MicrosoftOfficeWebServer", "5.0_Collab");
response.setHeader(
"MicrosoftSharePointTeamServices", SharepointUtil.VERSION);
response.setHeader("DAV", "1,2");
response.setHeader("Accept-Ranges", "none");
response.setHeader("Cache-Control", "no-cache");
response.setHeader(
"Allow",
"COPY, DELETE, GET, GETLIB, HEAD, LOCK, MKCOL, MOVE, OPTIONS, " +
"POST, PROPFIND, PROPPATCH, PUT, UNLOCK");
}
protected void setPostHeaders(HttpServletResponse response) {
response.setContentType("application/x-vermeer-rpc");
response.setHeader(
"MicrosoftSharePointTeamServices", SharepointUtil.VERSION);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Connection", "close");
}
主要功能:设置返回的html的头协议。
3、VirtualHostFilter 过滤器
主要代码:
String friendlyURL = request.getRequestURI();
if ((Validator.isNotNull(contextPath)) &&
(friendlyURL.indexOf(contextPath) != -1)) {
friendlyURL = friendlyURL.substring(contextPath.length());
}
friendlyURL = StringUtil.replace(
friendlyURL, StringPool.DOUBLE_SLASH, StringPool.SLASH);
主要功能:把虚拟主机的地址隐射成新的地址。
4、ThreadLocalFilter过滤器
主要代码:
if (threadLocalSet == null) {
return;
}
for (ThreadLocal<?> threadLocal : threadLocalSet) {
threadLocal.remove();
}
功能:用户请求完成后,从线程池中移除此线程
5、StripFilter 过滤器
主要代码:
boolean skipped = false;
for (int i = charBuffer.position(); i < charBuffer.limit(); i++) {
char c = charBuffer.get();
if ((c == CharPool.SPACE) || (c == CharPool.TAB) ||
(c == CharPool.RETURN) || (c == CharPool.NEW_LINE)) {
skipped = true;
continue;
}
else {
charBuffer.position(i);
break;
}
}
if (skipped) {
writer.write(CharPool.SPACE);
}
主要功能:去掉空行,加快页面的展示速度。