我的第一个兼职(个人体会)

03-01-24 woshiben

我13号开始放假,接了一个小活,比较简单,就是给一个网站做一个网上商店和一个论坛。感觉网络上的资料比较多,再加上以前学习的时候也做过网上书店之类的小东西,所以就应承下来,估计3个星期能完成。

我开发时数据库采用Mysql,服务器采用Tomcat4.0.6,采用jsp/servlet+javabean,结构来写,开始的10天写得都很顺利。处理一些跟数据库相关的操作。可是到后来觉得对自己所写的东西很不满意,总是想找一些更好的方法来解决,一直不能静下来,渐渐地意识到自己的能力还是不够,尤其是对购销存的业务很不熟悉。很多时间都花在这上面,以至于最后都想放弃。不过我还是坚持下来了。

我在做的过程中发现很多问题。也跟我的一些同学讨论过。其中之一就是对于使用javabean来处理对数据库的数据的增删改查,这个bean里的数据有两个来源,一个是从页面得到的参数,一个是从数据库中查寻出来的数据。他们同时存在于bean中,我觉得有一点问题。我也看过其他人的代码,很多人处理的方式都不相同,但是没有发现一个比较好的。思路比较清晰的。按照一些人的说法,一个对象,或者说类也好,方法也好,功能尽量单一。一个方法解决一个问题。但是现在看来,我的javabean责任太重大了,不仅要处理进来的参数,对他们进行判断,看看满不满足要求,然后放进数据库中,还要处理从数据库中出来的数据,对他们处理后再在页面显示。他们太累了。我不忍心。

我再想如果能够写出这样的一个类就好了,专门处理从页面得到的数据,处理完了,然后再跟数据库交互,而从数据库中出来的数据也经由一个bean也好,servlet也好处理以后再交给页面显示。这样条理也许会清晰一些。

关于时间的处理,自己以前接触的少,现在做起实际的东西,好像什么都跟时间有关了,真受不了。最让我难以接受的是,做着做着,我发现随着时间问题,原来商品的价格是会变的。需求里可没这个东西。感觉javadoc在时间问题上讲的还是比较细的,又得学习新的东西。

最后想说的是关于中文显示的问题,我一直想找一个比较好的方法来解决,可是还是不理想,我一直以为banq前辈介绍的方法管用,就是在数据库的连接后面加上encode="iso8859_1"之类的,可是实际上还是出问题,我都傻眼了,同样的处理方式,这个地方没问题,哪个地方就有问题,郁闷啊,真想找个高手问问。也曾下了狠心想把这个问题彻底搞懂,下了一堆文档,还是看不懂。呵呵,没办法。

快过年了,少罗嗦几句,祝大家快乐,我在这里学到不少东西,向banq前辈和大伙表示感谢!woshiben 2003.1.24, heihei,我已经买到回家的票了!

banq
2003-01-26 17:58

祝你旅途愉快。

关于你说的"我再想如果能够写出这样的一个类就好了,专门处理从页面得到的数据,处理完了,然后再跟数据库交互,而从数据库中出来的数据也经由一个bean也好,servlet也好处理以后再交给页面显示。这样条理也许会清晰一些。"

其实EJB的Entity Bean就是你说的这样的类,下次你会开始理解J2EE了,其实EJB+JSP是网上商店最好的解决方案了

zingers
2003-01-27 09:40

用DAO模式来处理业务逻辑的实现,

比如你要有一个定单类OrderDeal,有一个方法order();

然后在这个方法里面调用OrderDealDAO中的相应方法,实现SQL永久保存。

这里有一点,你的order方法肯定要接收参数,好了,OrderBean出现了

你的方法应该是public void order(OrderBean);

这个bean只有setter,getter方法和业务数据,它们从jsp而来。

这样你的结构就比较清楚了。

我仍然坚持只在必须用EJB的时候才用它。

中文显示在tomcat4.X下可以修改server/lib/中的一个类,然后在Mysql中加上encodingCharater,再在jsp页面中保持gbk编码就可以了。

zingers
2003-01-28 09:25

哈哈,可能我比较后知后觉,或者说反应迟钝吧,我现在终于体会到EJB

的用处了。至少有一点,免除了不同数据库服务器切换时要增加许多DAO类了,更重要的一点是有助于自动化生成程序原型。

anonymous
2003-01-28 11:16

前几天再java研究组织看到过用过滤器来判定使用者encoding,然后用这个encoding来设置request的encoding,只看了看,没试过,不知道可不可以:)

3Go 1 2 3 下一页