实验报告-Web技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课内实验报告
课程名:Web 技术
任课教师:吴振宇
专业:物联网工程
成绩:
2015/2016学年第1学期
南京邮电大学
基于JSP的网上书城设计与实现
一、实验描述
1、需求分析
随着计算机网络技术的飞速发展和人们生活节奏的不断加快,电子商务技术已经逐渐融入了人们的日常生活当中,网上商城作为电子商务最普遍的一种形式,已被大众逐渐接受。因此开发一个网上商城系统,适合当今形势,更加方便人们在线购物。
2、分工:
负责实现图书选购、购物车功能、收藏功能、查看图书详细信息、用户注册、用户登录、查看用户的订单信息、修改用户个人信息。
负责实现现有图书管理:修改,删除,查看、用户管理:查看,修改,删除、订单管理:查看订单清单,更新订单付款,出货状态,删除订单、添加新图书、添加图书分类。
负责书写实验报告。
二、实验内容
1、总体设计
(1)系统设计
本系统采用三层架构设计,它的工作原理如下图所示。
三层架构模型
采用三层构架以后,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层(2)系统流程
前台系统流程图
后台系统流程图
(3)数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
数据库需求分析
针对一般在线书店的需求,得出如下需求信息。
1.用户分为未注册用户和已注册用户。
2.订单分为单张详细订单和总订单。
3.一个用户可以购买多本图书。
4.一个用户对应一张订单。
5.一个列表对应多张订单。
针对本系统功能分析,总结出如下的需求信息。
1.用户,包括数据项:用户ID、用户名、密码。
2.图书,包括数据项:图书编号、图书名、价格、图书介绍。
3.订单列表,包括数据项:订单编号、图书编号、购书数量。
4.订单,包括数据项:订单编号、用户编号、下单时间。
实体关系E-R图
商品实体E-R图
用户实体E-R图
订单实体E-R图
2、详细设计
系统概述
前台主要功能介绍:
①搜索商品:用户不用登录可以输入商品的名称来查看需要查询的商品,而且可以查看商品的详细信息,如生产厂商、剩余数量、介绍等。
②分类查询:用户可以按分类来查看该分类的商品。
③用户注册:用户可以输入注册信息来注册,用户可以检查用户名是否存在,用户注册信息没有错误则可正确注册(不要使用中文名称来注册)。
④用户登录:用户输入登录名和密码进行登录,如果用户名和密码错误无法登录。
⑤更新信息:用户登录后可以查看个人信息并更新个人信息,还可以修改密码。
⑥购物车:用户登录后就可以购物,可以把商品添加到购物车,或者把商品从购物车删除,如果商品数量为0则无法添加到购物车。
⑦提交订单:用户把商品添加到购物车后即可提交订单,订单提交后用户可
以进行付款(本系统为用户模拟了一个账户,用于用户购物,用户账户余额不足则无法付款)。
⑧查看订单:用户可以查看自己的订单。
后台主要功能介绍:
①商品种类管理:管理登录后台后可以对商品种类进行添加、删除。添加时如果商品种类已经存在会提示添加错误。
②商品管理:管理员对商品进行添加、删除操作,如果商品已经存在,添加时会提示商品已经存在。
③订单管理:管理员可以查询订单,查看所有订单信息。
④用户管理:管理员可以查询用户,管理用户信息。
⑤系统管理:管理员可以修改登录密码,安全退出。
功能展示及说明
客户界面设计与实现
1).界面头和界面尾设计
他们的效果如下图:
主界面显示效果
2).用户登录模块的设计
为了检验用户是否合法,所以需要输入用户名和密码来验证用户的合法性,用户登录模块刚好完成这样的一个功能。该模块需要用到LoginAction.java这个servlet。需要设计一个表单让用户输入信息。效果图如下:
用户登录界面
要实现登陆功能,首先要连接数据库,把数据库中的用户信息与表单中获取的信进行验证,数据库连接的代码如下:
package er;
import java.util.List;
import java.util.Map;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import erStatus;
import com.albert.bs.model.Cart;
import com.albert.bs.model.Course;
import com.albert.bs.model.Product;
import com.albert.bs.model.SessionContainer;
import er;
import com.albert.bs.service.CourseService;
import com.albert.bs.service.ProductService;
import erService;
import erAction;
import com.albert.bs.util.MD5Util;
import com.opensymphony.xwork2.ActionContext;
public class LoginAction extends UserAction {
private static final long serialVersionUID = -4357525212351724516L; private String username;
private String password;
private String validcode;
private String rememberPsw;
private UserService userService;
private ProductService productService;
private CourseService courseService;
@SuppressWarnings("unchecked")
public String execute() throws Exception {
Map session = ActionContext.getContext().getSession();
SessionContainer container = (SessionContainer)