网上书城项目日记(一)

时间:2024-04-11 10:34:41

今天大概是我开始做这个项目的第四天。从今天开始我就要边做边记录笔记了。(对前台jsp页面的修改等我就不再记录了主要记录后台功能实现部分)

项目名称是:我的网上书店

运用的只是SH整合框架

数据库MYSQL

Tomcat8.0

数据库设计如下图,非常简单(因为我用的是hibernate自动生成的数据库,所以在设计数据库的时候比较简单,完全是按照课本上的E-R关系图进行的建库)

网上书城项目日记(一)

目前我的网上书城已完成了前台的浏览功能:

1.用户登录

2.首页展示(全部图书,特价图书以及对图书的分类展示和图书详情)

3.搜索功能

在图书展示上分了两种类型的展示(第一种是根据全部图书,特价图书,新上架图书,畅销图书分类我在项目中备注为type,另一种分类是根据图书类别,例如程序设计书,移动开发,数据库等进行分类的,我在项目中备注为classify)

《我的心得体会》:

1.在这次自己做的这个网上书城的项目上我首先是学习到了接口interface的重要性,还更加深刻的认识到有action->service->dao三者的分层关系,使我的编程逻辑能加明确。

2.学习过了servlet的监听器但是不会用!也让我在这次项目中学习到了如何启动一个监听:

  首先创建一个servletContextListener,重写初始化方法(能够让服务启动的时候就执行某些造作)再在web.xml文件里声明一个listener。这样就完成了我(首页展示的功能),首页展示,是无论用户是否登录,都能够在index.jsp页面可以看到图书列表,因此我就先暂时把一些图书列表放在了application中,这样前台获取到application中的列表,就能够展示

3.学习到了怎么去发送不同的请求,响应同一个界面换句话说就是(怎么去展示jsp页面的优势)。

我的products.jsp页面和product_detail.jsp页面都只有一个,不可能对每一个分类的图书,或者每一本图书都创建一个页面

做法是:发送请求后传递一个参数,在action端接收请求并将请求需要的数据存入到request里,前台jsp再用EL表达式或OGNL表达式获取到数据并在相应页面上的相应位置进行展示。完成这整个获取和展示的步骤

 在这个项目中用到地方就是用户在浏览商城时,能够浏览与查看详情

4.数据库分页技术 我在dao层简单的查询语句都用的是hql,在分页上也是用的HQL分页,其中两个分页函数用起来很方便query.setFirstResult(firstRow);   query.setMaxResults(maxRow);这个数据库分页花费了有一天多的时间了,(在这里真的是非常的感谢我有个编程能力及编程思想其强大的蓝朋友)首先是分为两个模块,在dao层实现对数据库的分页查询(也就是上面说的两个分页函数了),在service层去动态调用dao层的分页函数(传递firstRow和maxRow值),再在action层去获取page的值,根据page的值去动态调用service层获取到这一页需要展示的list列表。这里的前台需要动态展示有多少个分页也就是网上书城项目日记(一)这样的页面(因为当前共有13条记录,每一页做多展示9条记录,所以最多只有2页),这时,在action中就可以根据发送的请求获取一个String类型的html标记语言,用后台程序生成html标记语言去动态的展示分页界面。