การใช้ Caching ใน Struts

posted on 11 Mar 2005 11:40 by somkiat

เมื่อเราต้องการทำให้ application สามารถทำงานได้รวดเร็วยิ่งขึ้น หนึ่งในวิธีการที่สามารถจะทำได้คือการใช้ Caching Solution ครับ ดังนั้นเรามาดูกันว่าจะใช้ Caching ร่วมกับ Struts กันอย่างไร เนื่องจาก Struts เป้น web frameowrk ที่มีความนิยมใช้กันมากที่สุดครับ

ขั้นตอนการทำนั้นมี 2 ขั้นตอนคือ

1. สร้าง Plug-in สำหรับการทำ Caching ซึ่งจะต้อง implemet ด้วย interface com.apache.struts.action.PlugIn ครับ

2. ทำการ register plug-in ที่สร้างขึ้นมาใน struts-config.xml

มาดูรายละเอียดกันว่าทำอย่างไร

1. สร้าง plug-in

import java.util.List;

import javax.servlet.ServletException;

import org.apache.struts.action.ActionServlet;

import org.apache.struts.action.PlugIn;

import org.apache.struts.config.ModuleConfig;

public class ApplicationPlugIn implements PlugIn {

private int count = 0;

private String keyName = null;

private List data= null;

public ApplicationPlugIn() {

super();

}

public void setCount(int count) {

this.count = count;

}

public void setKeyName(String keyName) {

this.keyName = keyName;

}

public void destroy() {

}

public void init(ActionServlet servlet, ModuleConfig config) throws ServletException {

//ดึงข้อมูลจาก database มาเก็บไว้โดยเท่ากับ count

data = getSomeDataFromDatabase(count);

//เก็บข้อมูลไว้ใน Context Scope

servlet.getServletContext().setAttribute(keyName, cities);

}

}

2. Register plug-in ใน struts-config.xml ดังนี้

<plug-in className="com.strutsrecipes.plugin.plugins.ApplicationPlugIn">

<set-property property="keyName" value="datatest"/>

<set-property property="count" value="35"/>

</plug-in>

จากตัวอย่างถ้าเก็บข้อมูลใน list data เป็น

Class SearchBean {

String id;

String name;

//getter and setter method

}

ดังนั้นเราสามารถนำมาแสดงผลใน jsp page