今天上课后,冯老师也没有给我们讲新课,而是给我们讲了购物车的实现,
购物车要点小结:
1. 对于网上购物车而言拒绝用户的每次操作都连接数据库,这样会大大消耗服务器的资源,所以我们应该将操作先保存在服务器的内存中再一次性写入数据库。
2. 在服务器启动的时候我们应该先把数据库中所有的物品信息一次性读到 Context 中,让这些信息作为一种全局变量使整个 WEB 程序共享。
3. 在进行数据强制转化的时候要考虑数据的内存结果是否一致,如不能把 String 强制转化成 int ,只能通过包装类进行操作。
4. 对于数据库的连接, DRIVER 只是 sun 公司提供的一个接口,各大数据库公司提供相应的实现类,我们利用反射得到其类的模板。
5. 从点击购买商品到结束购买要始终要购物车保存在 Session 中,而购物车用来操作一个 HashMap<Integer,Product> 。当然我们也可以直接把这个集合放入 Session 中,但是这样就不能体现 Java 中的封装思想。
6. 在 JDBC 中 PreparedStatement 和 Statement 的选择上,对于动态的 sql 语句(带有?的内容)一般选择 PreparedStatement ,因为 PreparedStatement 只编译一次,大大节约了资源。
7. 一般来说,一个不同的请求需要一个 Servlet 进行处理,这样就会造成很多的 Servlet 需要编写。对于这类问题我们可以让一个 Servlet 继承一个 BaseServlet 类,然后让 BaseServlet 类继承 HttpServlet ,覆盖 HttpServlet 中的 doGet() 和 doPost() 方法,在 doPost() 中实现 doGet() ,在 doGet() 中通过反射方法名调用相应方法,最后我们只需要在一个 Servlet 中编写相应的方法即可。
8. 对于程序的封装能实现代码的复用,减少代码间的耦合度,提高代码的耦合度。这在我们平时的编程中很重要。