黑马程序员_学习日记79_807图书商城项目纪要

1、MD5加密
对字符串进行MD5加密,该方法在Common文件夹的Common类中
public static string CreateMd5(string str)
{
 MD5 md5  = MD5.Create();
 ...
}
单元测试验证加密算法:在方法上右击,创建单元测试

2、登录窗体
(1)在member文件夹中新建用户控件,复制用户登录.txt。用户控件:放常用的元素,可以在aspx中访问。
模板页与用户控件?
(2)在登录窗体中写binLogin_Click事件,在其中调用BLLc层的CheckLogin方法,登录成功则将用户信息存到Session中,并跳转到首页。在跳转之前加一个判断,即用户登录成功后可能手动输入地址
if(!string.IsNullOrEmpty(Request.QueryString["url"]))
{
 Response.Redirect(Request.QueryString["url"]);
}
else
{
 //跳转到首页
}
(3)在BLL层UserManager类中添加CheckLogin方法进行登录校验
public bool CheckLogin(string txtName,string txtPwd,out string msg,out Model.User model)
{
 model = dal.GetModel(txtName);
 if(model != null)
 {
  if(model.UserState.Name == "正常")
  {
   if(model.LoginPwd == txtPass)
   {
    msg = "登录成功";
    return true;
   }
   else
   {
    msg = "用户名密码错误";
    return false;
   }
  }
  else
  {
   msg = "用户被锁定";
   return false;
  }
 }
 else
 {
  msg = "用户不存在";
  return false;
 }
}
(4)在Common类中增加记录访问页的url的方法GotoPage()(有什么用?)
public static void GotoPage()
{
 HttpContext.Current.Response.Redirect("/member/Login.aspx?url="+HttpContext.Current.Request.Url.ToString());
}

3、“记住我”功能 (将用户名、密码放在Cookie中,可以让用户n天内免登录)
(1)以下代码在登录窗体btnLogin_Click事件中,登录成功用户信息存入Session后。
if(this.cbAutoLogin.Checked)//checkbox被选中
{
 HttpCookie userName = new HttpCookie("cp1",model.LoginId);
 HttpCookie userPwd = new HttpCookie("cp2",Enctry(model.LoginPwd));
 //TODO:有效期
 //TODO:Add添加cookie
}
添加Enctry对密码进行加密
在cookie中存储pwd时用MD5加密,而且不能只用MD5。我们用如下方法:
P表示密码,S表示随机两位字母,
我们写入cookie的加密后密码为:S+MD5(S+MD5(P))
(2)在登录页面的Load方法中,首先判断cookie中是否存在用户名密码,如有且和数据库中相等,则不用登录。直接跳转到用户请求页面或主页,同时不要忘了给Session赋值,将登录的用户信息放入Session。
贱招:
在我们判断数据库中的密码和cookie中的密码是否一致时,可以将cookie中的S(即前两位)截取,与数据库中的P进行S+MD5(S+MD5(P))运算,判断其值与cookie中是否一致。

4、图书列表数据的绑定
建MasterPage.Master模板页 BookList.aspx,实现模板
用Repeater控件绑定数据。
if(!IsPostBack)
{
 BindRepeater();
}

5、数据排序
(1)按价格排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个网上书城系统使用Eclipse开发的,代码完整,jar包齐全,sql脚本包含在里面,将下载下来的项目导入到Eclipse中即可运行,本项目做了很多校验,对可能出现的bug做了考虑,属于比较完善的系统。本系统包含九个模块,前台模块分为:用户模快,分类模块,图书模块,购物车模块,订单模块;后台模块分为:管理员模块,分类管理模快,图书管理模快,订单管理模块。书城界面简洁,易于操作,简单易懂,代码均有注释,各模块功能完善。各大模块的功能描述:前台: 1). 用户模块功能有: * 用户注册: > 表单页面是jQuery做校验(包含了ajax异步请求) # 在输入框失去焦点时进行校验; # 在提交时对所有输入框进行校验; # 在输入框得到焦点时,隐藏错误信息。 > 表单页面使用一次性图形验证码; > 在servlet中再次做了表单校验。 * 用户登录: > 表单校验与注册功能相同; > 登录成功时会把当前用户名保存到cookie中,为了在登录页面的输入框中显示! * 用户退出:销毁session 2). 分类模块 * 查询所有分类: > 有1级和2级分类 > 在页面中使用手风琴式菜单(Javascript组件)显示分类。 3). 图书模块: * 按分类查询 * 按作者查询 * 按出版社查询 * 按书名模糊查询 * 多条件组合查询 * 按id查询 除按id查询外,其他都是分页查询。 技术难点: > 组合查询:根据多个条件拼凑sql语句。 > 带条件分页查询:条件可能会丢失。使用自定义的PageBean来传递分页数据! > 页面上的分页导航:页码列表的显示不好计算! 4). 购物车模块: * 添加条目 * 修改条目数量 * 删除条目 * 批量删除条目 * 我的购物车 * 查询被勾选条目 购物车没有使用sesson或cookie,而是存储到数据库中。 技术难点: > 添加条目时,如果两次添加针对同一本书的条目,不是添加,而是合并; > 修改数量时使用ajax时请求服务器端,服务器端返回json。 > 大量js代码 5). 订单模块: * 生成订单 * 我的订单 * 查看订单详细 * 订单支付 * 订单确认收货 * 取消订单 后台 1). 管理员 * 管理员登录 2). 分类管理 * 添加1级分类 * 添加2级分类: 需要为2级分类指定所属1级分类 * 编辑1级分类 * 编辑2级分类: 可以修改所属1级分类 * 删除1级分类: 存在子分类时,不能删除 * 删除2级分类: 当前2级分类下存在图书时不能删除 * 查看所有分类 3). 图书管理 * 各种查询:与前台相同 * 添加图书: > 上传图片 > 页面中使用动态下拉列表显示2级分类,当指定1级分类后,2级分类下拉列表中动态显示该1级分类下所有2级分类名称 * 修改图书: 与添加图书相似,也使用动态下拉列表 * 删除图书: 需要删除图书对应图片,再删除图书 4). 订单管理 * 各种查询 * 订单发货 * 订单取消

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值