1,servlet调用bean,bean操作数据库获得结果集后返回给servlet,servlet封装在session里传给JSP页面。
2,servlet调用bean,bean不返回结果给servlet,servlet跳转到JSP页面,JSP页面用useBean获取结果集。个人感觉第一种更加面向对象,但第二种好像处理得快点,用哪种方法好?

解决方案 »

  1.   

    1.Servlet   控制器层(C),Bean  model层(M),Jsp   视图层(V)   即是MVC模式  它避免了视图层直接调用控制层,增加了程序的可扩展性....2.视图层直接调用控制层,不是怎么符合MVC设计模式
      

  2.   

    用第一种吧,比较符合MVC模式,维护起来也方便很多
      

  3.   

    可是我觉得第一种比第二种显示数据要慢点,而且要用一个session来传递不会浪费资源吗?
      

  4.   

    除了登录注册得到的用户对象,其他都因该放在request里。统统放进session太浪费了
      

  5.   

    在第一种中,为什么要把返回的结果放在session里返回到jsp页面了?直接在jsp页面就可以调用servlet里的方法啊
      

  6.   

    用第一种,比较符合mvc模式。放入session不好吧,太占资源了。放入request中,在用转发方法到jsp界面。request,的范围为一次请求,而session的时间范围长,要等到客户端关闭或session过期,才销毁。
      

  7.   

    我用request的话会报空指针异常
    我在Bean里用Vector<Object[]> v封装结果集
    servlet里Vector<Object[]> v = gb.guestbook(page);request.setAttribute("v",v);
    jsp里
    Vector<Object[]> v = (Vector<Object[]>)request.getAttribute("v");
    Enumeration<Object[]> e=v.elements();
    while(e.hasMoreElements()) {
    而且JSP会有警告:类型安全:未经检查的从 Object 到 Vector<Object[]> 的强制类型转换
      

  8.   

    解决了,原来是我的重定向出现了问题
    request.getRequestDispatcher("").forward(request, response);
    就可以了!