第一次开发Java Web项目的总结
对
Struts
框架的理解
Struts框架的目标是为了分离web程序的表示层,控制层和后台功能层,即实现注明的MVC模式(M-Model模型,V-View视图,C-controller控制器).
这次项目中,对应层次用到的具体技术
层次
|
具体技术
|
Model
|
Servlet
|
View
|
JSP,JavaBean
|
Controller
|
JDBC
|
对
DAO
模式的理解
DTO类封装表中各个属性以及它们对应的get,set方法,
DAO类主要是方法,每一个方法都会直接跟数据库打交道,不同的方法通过不同的SQL语句完成不同的功能,例如createUser(UserDTO user)就是在user表创建一个新的元组.
对工厂化方法的理解
工厂化方法就是做一个单独的类,来控制类对象的实例化.这样做的目的在于,当操作的一组数目过多时(比如一个数据库有N张表,就有N个DAO类) ,可以省略新建类对象的工作,同时增加可理解性.
Eg:
public
class
DAOFactory
...
{
private static Object initLock = new Object();
private static DAOFactory factory = null;
public static DAOFactory getInstance() ...{
if (factory == null) ...{
synchronized (initLock) ...{
if (factory == null) ...{
try ...{
factory = new DAOFactory();
}
catch (Exception e) ...{
e.printStackTrace();
return null;
}
}
}
}
return factory;
}
public UserDAO createUserDAO() ...{
return new UserDAO();
}
public ProductDAO createProductDAO() ...{
return new ProductDAO();
}
public OrderproductDAO createOrderproductDAO() ...{
return new OrderproductDAO();
}
public OrderinfoDAO createOrderInfoDAO() ...{
return new OrderinfoDAO();
}
}
private static Object initLock = new Object();
private static DAOFactory factory = null;
public static DAOFactory getInstance() ...{
if (factory == null) ...{
synchronized (initLock) ...{
if (factory == null) ...{
try ...{
factory = new DAOFactory();
}
catch (Exception e) ...{
e.printStackTrace();
return null;
}
}
}
}
return factory;
}
public UserDAO createUserDAO() ...{
return new UserDAO();
}
public ProductDAO createProductDAO() ...{
return new ProductDAO();
}
public OrderproductDAO createOrderproductDAO() ...{
return new OrderproductDAO();
}
public OrderinfoDAO createOrderInfoDAO() ...{
return new OrderinfoDAO();
}
}
这样要生成UserDAO类,代码:
DAOFactory.getInstance().createUserDAO……
生成ProductDAO类,代码就是:
DAOFactory.getInstance().createOrderproductDAO……
以此类推……
对代理类的理解
如果有些方法不适合放在相应的DAO类里面,就可以把它放在代理类里面,例如checkLogin()方法,不适合放在UserDAO类里,就可以把它放在UserManager里面,当然checkLogin()方法还是会调用DAO类相关方法的.
一些零碎的体会
1.
The only way to learn a language well is to use it.
有很多概念,在学习Java的时候难以理解,比如package的用法,接口interface,抽象方法的实现等,但这些在开发项目却很容易理解.
实践中理解概念
,
实践中掌握语言
.
2.
熟悉类库函数
开发时经常会遇到需要使用系统类库的情况,自己对类库不是很熟悉,还是多实现吧,特别是java.util.* 这个包!
3.
写代码要细心
有时候一个小小的错误,可能会要上半天的功夫才能查出问题来,而且会出现一些让你看不懂的错误,我有一次把jsp的标签属性写错了,结果出现的大量异常,弄得我都”心惊胆战”,费了大半天才查处问题, 真是失之毫厘,谬以千里. 在写与变量相加完成的SQL语句时,特别要小心.
4.
开发过后再学一次理论
大学里学了很多计算机课程,软件工程,数据库等等,这些知识如果没有一定的开发经验作基础,很难完全消化,不可能真正领悟.实践之后,回头再去学那些知识,达到知其然,知其所以然的境界!