`
xiang37
  • 浏览: 429533 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

OSCache的对action响应的配置

 
阅读更多

对action响应的配置其实也不是很特别,这里主要提到的是Key的配置:

 

 

	<filter>
	    <filter-name>CacheFilter</filter-name>
	    <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>
	    <init-param>
	        <param-name>time</param-name>
	        <param-value>600</param-value><!-- 单位秒 -->
	    </init-param>
	    <init-param>
	        <param-name>scope</param-name>
	        <param-value>session</param-value>
	    </init-param>
	    <init-param>
	    	<param-name>ICacheKeyProvider</param-name>
	    	<param-value>com.xiva.common.IvCacheKeyProvider</param-value>
	    </init-param>
	</filter>

	<filter-mapping>
	    <filter-name>CacheFilter</filter-name>
	    <url-pattern>*.jsp</url-pattern>
	</filter-mapping>
  	
  	<filter-mapping>
	    <filter-name>CacheFilter</filter-name>
	    <url-pattern>/user/userInfoList.action</url-pattern>
	</filter-mapping>

 

 

ICacheKeyProvider是CacheFilter的一个初始化参数,参考源码如下:

 // filter parameter ICacheKeyProvider
        ICacheKeyProvider cacheKeyProviderParam = (ICacheKeyProvider)instantiateFromInitParam("ICacheKeyProvider", ICacheKeyProvider.class, this.getClass().getName());
        if (cacheKeyProviderParam != null) {
            setCacheKeyProvider(cacheKeyProviderParam);
        }

 

 

 

 

package com.xiva.common;

import javax.servlet.http.HttpServletRequest;

import com.opensymphony.oscache.base.Cache;
import com.opensymphony.oscache.web.ServletCacheAdministrator;
import com.opensymphony.oscache.web.filter.ICacheKeyProvider;

public class IvCacheKeyProvider implements ICacheKeyProvider
{

    @Override
    public String createCacheKey(HttpServletRequest httpRequest, ServletCacheAdministrator scAdmin, Cache cache)
    {
        // buffer for the cache key
        StringBuffer buffer = new StringBuffer(100);

        buffer.append(httpRequest.getRequestURI());

        buffer.append('_');

        buffer.append(httpRequest.getParameter("start"));

        buffer.append('_');

        buffer.append(httpRequest.getParameter("limit"));

        buffer.append('_');

        buffer.append(httpRequest.getParameter("orgId"));

        return buffer.toString();
    }

}

 

上面是对接口的实现IvCacheKeyProvider

 

OSCache下载地址:https://java.net/downloads/oscache/ 

分享到:
评论

相关推荐

    oscache处理

    - 在Struts2中,osCache可以用于缓存Action的结果,减少对Action的调用,提高响应速度。通过配置Action拦截器,我们可以指定哪些Action结果应该被缓存,并设置缓存时间。 - 配置osCache插件:首先需要将osCache的...

    OSCache学习心得

    为了使用OSCache进行页面缓存,我们需要对web.xml文件进行相应的配置: ##### web.xml配置 ```xml &lt;taglib-uri&gt;oscache &lt;taglib-location&gt;/WEB-INF/classes/oscache.tld ``` 这里的配置主要是引入OSCache的...

    SSH面试题

    1. **初始化ActionServlet**:Struts在Web应用启动时加载ActionServlet,并读取struts-config.xml配置。 2. **匹配ActionMapping**:根据请求路径找到对应的Action。 3. **创建ActionForm**:如果需要,创建...

    Spring+Struts2+iBatis简要说明

    通过`struts-config-XXX.xml`配置文件,开发者可以定义Action类以及它们与视图的映射,从而实现请求到业务逻辑的映射。 iBatis是一个持久层框架,它将SQL语句与Java代码分离,使得数据库操作更易于维护和扩展。`sql...

    JAVAWEB缓存技术

    缓存能够显著降低对数据库的依赖,减少IO操作,从而提高响应速度,提升用户体验。以下是对JAVAWeb缓存技术的详细介绍: 1. **OSCache**:OSCache 是一款广泛使用的开源页面级缓存解决方案,它通过使用JSP标签来定义...

    SSH三大框架笔试面试题

    6. **生成响应:** Action执行完毕后返回一个ActionForward对象,指示ActionServlet将控制权转交给JSP页面或另一个Action。 **为什么使用Struts:** 1. **MVC架构模式:** Struts遵循Model-View-Controller模式,...

    struts+spring+hibernate笔试面试常见问题

    - **生成响应页面**:根据 Action 返回的 ActionForward 对象,将控制权转交给指定的 JSP 页面。 **8.2 使用 Struts 的原因** - **MVC 架构**:清晰地分离了 Model、View 和 Controller 层。 - **易于扩展**:提供...

    Spring_Structs_Hibernate

    1. **初始化ActionServlet:** 在Web应用启动时加载ActionServlet,并从配置文件中读取配置信息。 2. **接收用户请求:** 用户发起HTTP请求,ActionServlet根据请求路径查找对应的ActionMapping。 3. **创建...

    Spring,hibernate,struts的面试笔试题含答案

    5. **响应用户:** 将处理结果通过 `ActionForward` 返回给用户。 **为何使用 Struts:** 1. **简化开发流程:** Struts 提供了一套统一的框架和规范,简化了使用 JSP、Servlet、JavaBean 等技术构建 Web 应用的...

    2012年最权威,最完整SSH面试题(Struts+Spring+Hibernate面试题问答23题,选择30题) 问答23题,选择30题(附答案)

    - **渲染视图:** 将 `ActionForward` 指向的 JSP 页面渲染为响应结果。 **使用 Struts 的原因:** - **提供统一的 MVC 架构:** 使开发者能够更清晰地组织代码结构。 - **简化 JSP 和 Servlet 的开发过程:** ...

    SSH框架整合笔记

    7. **返回ActionForward**:指定响应的视图组件。 8. **生成响应**:最终呈现给客户端。 **为什么使用Struts:** - **简化开发流程**:提供了一套成熟的架构模式,使得开发者可以专注于业务逻辑的实现。 - **MVC...

    J2EE WEB缓存技术详解.doc

    - 整合缓存技术需要考虑现有系统架构,如Struts2+jQuery框架下,JCS的集成相对直接,可在Action层封装数据返回逻辑,对前端影响较小。 - 触发缓存的时机也是一个关键点,可以通过用户的首次请求或定期调度任务来预...

    Spring,hibernate,struts的面试笔试题.doc

    - **初始化 ActionServlet:** 应用启动时加载 `ActionServlet` 并读取配置文件。 - **处理用户请求:** - 查找匹配的 `ActionMapping`。 - 创建 `ActionForm` 并填充表单数据。 - 进行表单验证。 - 调用相应的 ...

    自整理Java关于基础和框架的面试题

    - 用户请求由前端控制器拦截,通过配置文件决定将请求转发给哪个Action。 - Action调用业务逻辑层处理请求,然后返回一个结果给前端控制器。 ##### Struts2的运行原理 - 用户请求到达FilterDispatcher,由它决定...

    J2EE常用开源项目

    - **OSCache**:OpenSymphony组织提供的Web应用缓存解决方案,可以提高响应速度,减少数据库压力。它可以缓存页面或静态内容,改善系统性能。 6. **页面布局**: - **SiteMesh**:用于网页布局和装饰,将页面内容...

    带二级缓存和业务封装的SSH项目源码

    这个项目中的二级缓存可能使用了EhCache或OSCache等第三方缓存解决方案,将经常访问的数据存储在内存中,减少数据库查询次数,提高响应速度。 **业务封装** 是指将业务逻辑抽象出来,形成独立的服务或组件,以便于...

    java面试知识

    - **response**:服务器响应对象。 - **out**:输出流对象,用于输出内容到客户端。 - **session**:用户会话对象。 - **application**:应用程序范围对象。 - **config**:Servlet配置对象。 - **exception**:异常...

Global site tag (gtag.js) - Google Analytics