请教______关于——mvc,jdo架构的应用,--jsp页面变量初始化--bean生命周期的问题!!!

stillfire 2004-09-05 11:20:27
谢大家先!

看一下封装的dao
------------------------
package ees.dbaccess;

import java.sql.*;
import java.util.*;
import java.io.*;
import pms.pmora;

public class GuidelineDAO{
private java.util.Collection con=null;
private pmora db=new pmora(); //ClassFor,建立连接

public java.util.Collection getGuidelinebyParent(java.math.BigDecimal parentid)
throws SQLException {
con=new ArrayList();
try {
String sql="select * from ees_guideline where parentid="+parentid;
ResultSet rs=db.executeQuery(sql);
while (rs.next()){
GuidelineVO v=new GuidelineVO();
int i=1;
v.setGuidelineid(rs.getBigDecimal(i++));
v.setGuidelinename(rs.getString(i++));
v.setParentid(rs.getBigDecimal(i++));
v.setNote(rs.getString(i++));
v.setLayer(rs.getBigDecimal(i++));
con.add(v);
}
} catch (Exception e) {
System.out.println("查询—指标体系出错— u"+e.getMessage());
}
return con;
}

public java.util.Collection getGidbyParent(java.math.BigDecimal parentid)
throws SQLException {
con=new ArrayList();
try {
String sql="select guidelineid from ees_guideline where parentid="+parentid;
ResultSet rs=db.executeQuery(sql);
while (rs.next()){
GuidelineVO v=new GuidelineVO();
int i=1;
v.setGuidelineid(rs.getBigDecimal(i++));
con.add(v);
}
} catch (Exception e) {
System.out.println("查询—指标id出错— u"+e.getMessage());
}
return con;
}


public void close(){
db.close();
}

}


-----------------------
这中方法,但是这样做相当于对定制的查询 返回 Collection。
其中,我把
pmora db=new pmora(); 设定为私有变量,这样,所有的 表操作(query,update)全部共享这个连接,直到这个页面中调用了 DAO.close();关闭他的连接

页面中通过

con1=guidedao.getGidbyParent(new java.math.BigDecimal(0));
for ( it1 = con1.iterator(); it1.hasNext(); )
{
vo1 = (GuidelineVO)it1.next();
guidelineid1=vo1.getGuidelineid();
}

-------------------------------------------------------------------
问题1。

但是,有一些操作,只是希望从2个表中联合取出其中的数据
比如
student (studentid,studentname)
teacher (teacherid,name,student,score)

我对于teacher 做了一个Collection
现在,我只希望从其中 取出 studentname 这样,我只有做一个 getNameById()的方法,,只按照id取出name(通过数据库查询)

这样做,反而使的页面很混乱,没有达到预期mvc的效果,并且代码不易读和 维护!
(我也使刚刚有DAO这样的概念,大家是怎么做呢??)



问题2。
--------------------------------------------------------------
<%!

%>
中定义的和 <jsp:usebean>定义的是不是都是全局变量呢?
这种的什么周期 是多久呢,,,
是不是一段时间之后,jvm也会进行垃圾回收呢????

大家怎么样的定义变量呢??才能够,占用最少的内存,做最多的事情呢??

问题3
------------------------------------------------------------------
我知道bean有 4种scope
request,page,session, application

这些书上说的在 不同的情况 应用不同的
但是,

有没有时间的例子呢,

能然 清楚的理解呢???

...全文
190 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
stillfire 2004-09-08
大家给个意见啊!
回复
ittraining 2004-09-06
全中国最便宜的j2ee 培训,快看呀!

http://j.topcool.net/ittraining/ittraining1.htm
回复
stillfire 2004-09-06
回复人: AHUA1001(99) ( ) 信

你建立连接的方式很特别啊。

pmora 主要建立连接 , 以及 更新,插入,删除 ,等操作的封装!
麻烦指点一下


to :
回复人: HITZXL(编程要厚道)
1.
指点一下啊,,,解决问题指的事 快速开发,便于维护撒!
刚学,确实很多不理解,,能不能简单举个例子嘛!!!!

2.
用<%! %>
这样定义的好像是page 的 属性,,,但是,应该和 <jsp:usebean scope=page中使用的是不是一样呢?
怎么样回收呢??

3。
能不能简单介绍个例子。什么样的程序适合 于不同的scope..??

回复
lianeng 2004-09-06
幫你頂一下
回复
AHUA1001 2004-09-06
你建立连接的方式很特别啊。
回复
HITZXL 2004-09-06
1.不要一味追求mvc,解决问题才是关键
2.<%!

%>
中的事page范围吧
3.
http://dev.csdn.net/Develop/article/35/35286.shtm

标题 JSP中的page,request,session,application treeroot [原作]
关键字 JSP中的page,request,session,application
出处

application和session比较简单,这里主要说明request和page的作用范围。
application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。
session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。生命周期:会话超时,或者服务器端强制使会话失效。
request:请求作用域,就是客户端的一次请求。
page:一个JSP页面。
以上作用范围使越来越小, request和page的生命周期都是短暂的,他们之间的区别就是:一个request可以包含多个page页(include,forward以及filter)。举个简单的例子:
jsp1.jsp
<jsp:useBean id="beanID" class="xxx .xxx.BeanClass" scope="request" />
<jsp:include page="jsp2.jsp" />
jsp2.jsp
<jsp:getProperty name="beanID" property="sample" />
运行jsp1.jsp可以正常显示数据,因为作用范围是request,相当于调用了request.setAttribute()方法,
jsp2页通过request.getAttribute来获得这个bean.如果把request改为page,就会抛出NullPointerExceptioin.
一个请求可以跨好几个JSP(include和forword)和Servlet(如filter).不过这里有一个需要注意的就是区别
<jsp:include> 和<%@ include %>.如果上面的<jsp:include page="jsp2.jsp" />改为<%@ include file="jsp2.jsp" %>,即使scope为page也是正确的,<%@ include %>是编译时包含,<jsp:include>是运行时包含.前者就相当于宏,编译时替代,后者相当于函数,运行时返回.

回复
stillfire 2004-09-06
xdjm 帮忙看一下啊
回复
stillfire 2004-09-06
继续up 一下啊!
回复
stillfire 2004-09-06
回复人: lianeng(★★★★★) ( )

提点意见
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-05 11:20
社区公告
暂无公告