`
xijunhu
  • 浏览: 152639 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

liferay过滤器(四)

 
阅读更多

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);
  }

主要功能:去掉空行,加快页面的展示速度。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics