zoukankan      html  css  js  c++  java
  • 总结

    这一周学习了JSP和servlet,一周前还不知道它们之间的区别,在mooc上照着一个教程copy了一个项目,算是明白了JSP和Servlet各自的用途。

    项目用的是model2模型

     

    模型层(javabean)中是项目中要用到的类:

      模型类(名称可能不规范):entity包:Items类、Cart类

      工具类:util包:DBhelper(连接数据库)

      业务逻辑类:dao包:ItemsDAO类

    Items类(商品):商品的各种属性(id,name,price,city,number,picture),属性的setter和getter,无参和含参的构造器,以及后面为了在购物车中合并相同商品而override的equals方法和hashcode方法。

    Cart类(购物车):

      购物车的属性: HashMap<Items,Integer>goods(一个商品的集合,key为商品,value为数量)、double totalPrice(总金额)

      购物车的方法:属性的setter和getter,构造器,新增商品到购物车(addGoodsInCart),从购物车中删除商品(deleteGoodsFromCart),计算总金额(calTotalPrice).

    ItemsDAO类:

      方法:getAllItems,getItemById 这两个方法用于从数据库中读入数据,getViewList(调用getItemById)这个方法用于后面在页面上显示浏览记录,给一个商品ID序列返回一个ArrayList<Items>

    DBhelper类:连接数据库,方法:getConnection(获得连接)

    public class DBhelper {
        private static final String driver = "com.mysql.jdbc.Driver";
        private static final String url = "jdbc:mysql://localhost:3306/shopping?useUnicode=true&characterEncoding=UTF-8";
        private static final String username = "root";
        private static final String password = "";
    
        private static Connection conn = null;
        static {
            try {
                Class.forName(driver);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
    
        }
    
        public static Connection getConnection() throws SQLException {
            if (conn == null) {
                conn = DriverManager.getConnection(url, username, password);
                return conn;
            }
            return conn;
        }

    前端JSP页面:

      index.jsp :商品列表页面

      cart.jsp :购物车页面

      details.jsp :商品详情页面

      failure.jsp :添加到购物车失败页面

      success.jsp :添加到购物车成功页面

    后台Servlet:servlet/CartServlet

      功能如上图所示:jsp页面的操作信息提交到servlet,servlet通过调用业务逻辑类总的方法实现数据库的修改和返回信息。

      重写doget,dopost方法,新增两个方法:private addToCart,private deleteFromCart,在doget和dopost方法中调用新增的两个方法来处理前端提交的请求。

  • 相关阅读:
    UVA 11997 K个最小和
    UVALive 3135阿格斯
    UVA 10635 王子和公主
    UVA11991线性查询
    UVA1339仿射和换位密码
    UVA 10382喷水设施
    LA2965字符串合并
    FatMouse's Speed--hdu1160(dp+输出路径)
    Dividing--hdu1059(动态规划)
    Piggy-Bank--hdu1114(完全背包)
  • 原文地址:https://www.cnblogs.com/jasonlixuetao/p/5816139.html
Copyright © 2011-2022 走看看