每一个servlet都要执行的操作怎么优化基本上每个servlet都要有以下这段代码,怎么优化好呢?
private static Logger log = Logger.getLogger(【这里是对应类的class】);
HttpSession session = request.getSession();
String renrenUserId = (String) session.getAttribute("renrenUserId");
String sessionKey = (String) session.getAttribute("sessionKey");
log.info("sessionKey:" + sessionKey + ",userid:" + renrenUserId);

RenrenApiClient apiClient = new RenrenApiClient(sessionKey); if (sessionKey != null && renrenUserId != null) {

解决方案 »

  1.   

    呵呵。。 楼主 去学下 spring吧。 这框架对代码的优化很好。是用 动态代理 实现的。
      

  2.   

    这样不知道行不行,基类public class BaseServlet extends HttpServlet{

    private boolean flag = false;


    public synchronized boolean isFlag() {
    return flag;
    } public synchronized void setFlag(boolean flag) {
    this.flag = flag;
    } @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    Logger log = Logger.getLogger(Object.class);
    HttpSession session = request.getSession();
            String renrenUserId = (String) session.getAttribute("renrenUserId");
            String sessionKey = (String) session.getAttribute("sessionKey");
            log.info("sessionKey:" + sessionKey + ",userid:" + renrenUserId);
            
            RenrenApiClient apiClient = new RenrenApiClient(sessionKey);       this.setFlag(getMethod(sessionKey, renrenUserId));
    }

    private boolean getMethod(String sessionKey,String renrenUserId){
    if (sessionKey != null && renrenUserId != null) {
    return this.isFlag();
            }
    return false;
    }
    }
      

  3.   

    你的类public class TestServlet extends BaseServlet{ @Override
    protected void service(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {
    System.out.println("aa");
    super.service(request, response);
    if(this.isFlag()){
    //......
    }
    }
    }
      

  4.   


        if(this.isFlag()){这里用this获得不到isFlag。你的意思我明白,但是如果isFlag为false,这里面就不执行了,这逻辑不对啊。
      

  5.   

    类似权限的代码可以放到filter中