旅游网的后台实现

Tomcat是常见的免费的web服务器.

  • Cookie是把用户的数据写给用户的浏览器。

  • Session技术把用户的数据写到用户独占的session中。

用户管理功能:

注册用户信息的实现:

servlet

获取前台提交过来的验证码,通过request的getSession方法获得验证码,对比用户的验证码和session中的验证码,若相同,继续向下执行代码,若不相同,创建一个ResultInfo(结果信息)的对象,将验证码错误写入resultinfo对象中,然后将info对象序列化并写回客户端,并return.

获取数据:request.getParameterMap获取用户注册信息的map集合

封装数据:使用BeanUtils.populate方法,传入user对象和map集合,完成map数据向user对象的封装

调用service完成注册:返回一个布尔类型数据flag来表示是否注册成功.

响应结果:,若注册失败,将resultinfo对象标志位设为true,若注册失败,将resultinfo对象标志位设为false,并且设置提示信息:"注册失败".然后将info对象序列化并写回客户端.

service:

调用dao中的findByUsername方法,根据用户名查找对象,若用户存在,并注册失败,返回falce.若用户不存在,则调用dao中的save方法,保存用户的注册信息,并返回true.

dao:

实现两个方法:

第一个是从mysql中查找用户名的方法:findByUsername(String username)

第二个是向mysql中保存注册信息的方法:save(User user)

用户登录的实现:

servlet层:

获取前台提交过来的验证码,通过request的getSession方法获得验证码,对比用户的验证码和session中的验证码,若相同,继续向下执行代码,若不相同,创建一个ResultInfo(结果信息)的对象,将验证码错误写入resultinfo对象中,然后将info对象序列化并写回客户端,并return.

获取数据:request.getParameterMap获取用户登录信息的map集合

封装数据:使用BeanUtils.populate方法,传入user对象和map集合,完成map数据向user对象的封装

调用service查询用户对象

若用户对象为null,则用户不存在,用户名密码错误,将错误信息写入resultinfo对象中,设置resultinfo对象标志位为falce.

若用户对象存在,则登陆成功设置resultinfo对象标志位为true,然后将info对象序列化并写回客户端.

service:

调用dao中的findByUsernameAndPassword方法,根据用户名和密码查找对象,并返回用户对象.

dao:

实现根据用户名和密码查找对象的方法,方法名叫做findByUsernameAndPassword,并返回用户对象.

退出的实现:

  1. 访问servlet,将session销毁,其方法是request.getSession().invalidate();

  1. 然后通过response重定向到登录页面.

商品分页及展示的功能:

servlet

定义分页查询的方法pageQuery  方法实现逻辑:

接收参数,通过request.getParameter获得当前页码,每页显示的条数,商品类别id

处理参数,上面接收的参数为字符串形式,这里用parseint将其转换为整数形式。

调用service的分页查询方法,查询PageBean对象,将PageBean对象序列化为json,并返回客户端。

service

封装PageBean,创建PageBean对象

根据传入的参数,设置PageBean对象的当前页码和每页显示条数。

调用dao的查询总记录数的方法,并设置PageBean对象的总记录数。

调用dao的查询当前页数据集合的方法,将数据集合存入List集合中并设置PageBean对象的当前页数据集合。

根据总记录数和每页显示条数计算出总的页数,并设置Pagebean对象的总页数。

然后返回Pagebean对象。

dao

定义两个方法:

第一个是根据cid查询总记录数

第二个是根据cid,当前页码,每页显示条数查询当前页的数据集合

商品查询功能:

servlet

定义分页查询的方法pageQuery 方法实现逻辑:

接收参数,通过request.getParameter获得当前页码,每页显示的条数,商品类别id,查询的商品名称

处理参数,用parseint,将部分参数从字符串形式转换为整数形式。

调用service的分页查询方法,查询PageBean对象,将PageBean对象序列化为json,并返回客户端。

service

封装PageBean,创建PageBean对象

根据传入的参数,设置PageBean对象的当前页码,每页显示条数和查询商品名称。

调用dao的查询总记录数的方法,并设置PageBean对象的总记录数。

调用dao的查询当前页数据集合的方法,将数据集合存入List集合中并设置PageBean对象的当前页数据集合。

根据总记录数和每页显示条数计算出总的页数,并设置Pagebean对象的总页数。

然后返回Pagebean对象。

dao

定义两个方法:

第一个是根据cid和商品名称查询总记录数

第二个是根据cid,当前页码,每页条数和商品名称查询当前页的数据集合

商品收藏实现:

servlet

第一个方法是判断登录用户是否收藏过该商品,实现逻辑为,request.getParameter获取商品id,从session中获取用户对象user,从user中获取用户ID。调用sevice方法查询商品是否被收藏,并赋值给flag标志位,然后调用writevalue方法将flag写回客户端。

第二个方法是添加收藏, 调用service添加收藏的方法,传入商品ID和用户ID。

service

创建两个方法:

第一个是调用dao查询商品收藏信息的方法,传入商品ID和用户ID,若得到的favorite对象不为null,则返回true,表示商品已收藏,反之返回false,表示商品未收藏。

第二个是调用dao添加收藏的方法,传入商品ID和用户ID。

dao

创建两个方法:

第一个是根据商品ID和用户ID查询商品收藏信息,并返回favorite对象。

第二个是添加收藏的方法。 

支付功能:

完成订单的生成:

在servlet层中通过request.getParameter获取前台传来的数据,如买家地址,商品编号和数量,买家的留言。然后构造一个订单对象,然后调用service层的方法添加订单,传入订单对象,商品编号及数量。

在service层中,调用dao的方法实现添加订单的功能,传入的是订单对象,返回订单的id。

支付订单:

前台点击开始支付

在servlet层中定义两个方法。

第一个是创建支付宝链接的方法,通过request.getParameter获取前台传来的订单编号,然后通过订单编号从数据库中获取订单名称及订单金额等信息,然后调用阿里巴巴为我们提供的工具类,在这个工具类中使用alipay_request对象将支付信息封装起来,调用SDK生成表单,通过response对象将表单输出到浏览器,然后浏览器中的script会通过form.submit()方法自动地将表单提交到阿里的支付系统,然后阿里支付系统会返回一个二维码并在浏览器展示。

第二个是接受支付宝返回通知的方法,通过request.getParameterMap()方法获取支付宝返回的信息,我们用公钥来验证返回的信息是不是由支付宝发出的,并从返回的信息中获得订单号和支付宝交易号,验证成功后,若用户支付成功,则修改订单状态为已支付,并将商品的销售数量加一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值