文章目录
前言
前台和后台是什么意思
我们项目里面的前台指的是当我们把项目运行起来后 的index 页面或者默认页面
虽然就一个页面,但是需求并不少
后台指的是能够对图书经常增删查改的页面
后端跟前端有什么关联吗?
管理员可通过后台管理对商品进行商品上架和下架(技术层面都增删改查)
客户一般看到的是前台界面(技术层面一般就只有分页)
一、分析_建表
根据项目 新建表
基本上所有的表都会有ID,以及这个图片也需要一个字段,比如存放图片路径
所以大体上应该设计六七个字段
至此分析的第一步骤完成
接着,我们看看需求文档
注意一下,图片的路径,我们需要用到一个技术
就是图片的上传下载技术,目前还未涉及
开始建表
连接数据库
然后保存,这样books 表就建好了
接下来我们应该做什么呢?我们应该给图书加一些测试数据
直接执行
表写好了,接下来干嘛呢,开始写我们的代码
打开之后再打开books的页面
点修改和添加都是无效的
其实就是这些页面
写功能我们先实现什么功能呢
先写查询,之后再增删改
那么查询,在哪作为它的触发条件呢?
注意这里是后台,后台才会有增删查改操作,前台只要展示给客户有哪些书以及提供查询功能、
分页功能就行了,update操作是绝对没有的
图书管理就应该触发查询了
这里需要注意,图书管理 我们之前提取出来了
不应该是页面了,而应该改成servlet,去处理逻辑
servlet 调用 service ,service 调用dao,而 到dao层 要实现查询图书,
查询完毕之后并且返回 service,然后 service 返回 servlet ,把图书放到域中
再跳转到book_manager.jsp页面去显示域对象
这就是整套思路
二、查询(后台)
最开始是bean
从三层来说最先是写dao层,写完之后先测试一下接口能不能实现,再往下写
其中注意价格,这么目前设置为double类型,实际上还有其它的类型,我们目前暂时先这样
接着写dao
可以不完全根据文档来,我们需要什么就写什么,最主要是要有思路
现在我们要干嘛呢?现在我们要查询所有的book信息
(注意在java里面参数就是?)
select * from books
我们这里查询所有的book 需要参数吗?不需要
bean 一般我们不加 s 所以不是 Books
ctrl+shft+o
导包操作:
然后写实现类
实现类需要注意什么呢?
好处是啥?
而这个里面无非就是两行代码
写完实现类之后,我们就需要去测试一下 接口是否通了
不要直接finish,选择一下,测试哪个接口
选择好你要测试哪个类
成功标志
测试(dao)接口 没有问题,下面就开始写service
目前我们这个service 也不做过多的要求
为什么dao中和service中是一样的,因为目前没有特别复杂的业务
下面就是service以及它的实现类
导包有两种方式,一种是 智能提示,一种是这种
不管用哪种,千万别导错就行了
接着跟上面的写法一样,是实现类
dao层和service层就结束了,下面我们就开始 servlet层(表现层)了
谁要调用servlet,网页前端要调
新建servlet
我们发现居然不让我们finish
出现这种情况只有两个原因,要么重名了,要么(自动)注册的时候,已经注册了,比如以前新建过,我们删掉注册页面就行了
一旦eclipse(STS)能识别到就不会让你添加了
然后重新新建
注意这里有两个细节,要么是这样
一、
要么直接在新建的时候就改好
二、
这块跟前面的文章是一脉相承的
在方法的上面 /** 按回车 自动会出现注解
下面写方法体,思路还是
1、如果有参数,先去取到参数(但是我们这里没有参数所以忽略不取)
2、调用service中的响应方法
跳转的时候是不是我们要把数据带走?那么怎么带走呢?
我们需要把books放到域中
然后再跳赚转
这样后面在跳转的页面就可以获取到这个域的数据
这样就完成了,下面就是请求部分了
由于我们之前在BaseServlet做了反射原理
所以我们后面都需要遵循规范,直接使用post传一个method参数过去,并且参数的值就是方法名
这样就一定不会错,并且是非常高效便捷的思路
下面就是进行取值循环的操作,是不是一脸懵逼了
怎么写呢?如下:
整体的查询就写好了,最终测试一下
注意,Mysql服务一定要打开,也就是说要确保数据库是没有问题,能够使用的,因为会去连接数据库查询数据
最终效果如下
总结
回顾一下,其实也不难,熟能生巧
2、例如代码段 <%@include file="/WEB-INF/include/base.jsp" %>
一般我们就使用静态包含就行了,静态包含,如果被包含的页面发生了改变,也会被重新编译,没有发生改变就不编译而已,所以基本上是满足需求的