今天,突发奇想,为了减少数据库的资源的消耗,我把所有可能要用到的东西全拿出来放在filter里面了,这样一般的用户看页面就不需要干扰数据库了。。请高手指点下我这种做法的优缺点。
把filter给大家看。。package com.nbxcs.filter;import java.io.IOException;
import java.util.List;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;import com.nbxcs.fac.CoffeeImpl;
import com.nbxcs.fac.DetailImpl;
import com.nbxcs.fac.GuideImpl;
import com.nbxcs.fac.GuideitemImpl;
import com.nbxcs.fac.ProductImpl;public class DateInFilter implements Filter {
List productList;
List coffee;
List login;
List guide;
List detail;
public void destroy() {
} public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest hsr = (HttpServletRequest)arg0;
if(hsr.getAttribute("productList")==null){
hsr.setAttribute("productList", this.productList);
System.out.println("list已载入");
}

if(hsr.getAttribute("coffee")==null){
hsr.setAttribute("coffee", this.coffee);
}

if(hsr.getAttribute("login")==null){
hsr.setAttribute("login", this.login);
}

if(hsr.getAttribute("detail")==null)
hsr.setAttribute("detail", this.detail);

if(hsr.getAttribute("guide")==null){
hsr.setAttribute("guide", guide);
}
arg2.doFilter(arg0, arg1); } public void init(FilterConfig arg0) throws ServletException {
this.productList = ProductImpl.getAllproduct();
this.coffee = CoffeeImpl.getAllCoffee();
this.detail = DetailImpl.getAllDetail();
this.guide = GuideitemImpl.getAllGuideitem();
this.login = GuideImpl.getAllGuide();
}}