array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 JavaWeb项目 java+servlet 网上商城 - 爱码网

JavaWeb项目:java+servlet 网上商城
此项目为本人的Java大作业。
前台代码;代码已经上传到github上 下载地址  Github
一、项目概况
1.1设计内容
  主要是实现网上购物,包括前后台,后台包括:分类管理,用户管理,商品管理,订单管理等;前台包括:分类管理的展示,注册,登录,商品列表页的显示,浏览记录,购物车,订单,商品详情,易宝支付等。

后台的分类管理、用户管理,商品管理主要是增删改查,订单管理,主要是前台用户提交的,我们管理员只能查看订单详情,不能修改和删除。利用ajax实现查看订单的订单项。

前台的分类展示,利用的是redis非关系型数据库实现的。

    注册功能:采用的是邮箱验证,注册成功后,必须经过邮箱**,才能进行登录。

    登录功能:采用session中保存用户名和密码,实现自动登录,。

    商品列表页的显示:主要是根据分类管理的id查询对应的商品。

    浏览记录:主要采用的是将浏览过的商品暂时保存到cookie中,然后判断,本次浏览的商品是否浏览过,如果浏览过,直接将本商品的位置放到第一位,否则,直接将商品放到第一位。

    购物车:此功能不涉及表,主要是将购物车的内容保存到session中,提交购物车,购物车直接清空。

   订单:主要是将购物车的所有东西,转换成订单,然后填上收货人,地址,联系方式,提交订单。


此系统开发期间我们小组不定时地进行用户使用反馈信息收集,根据收集数据不断对系统进行优化、完善。目的是希望从使用者的角度查找系统的缺陷之处,继而使得整个系统的运行、结构更加清晰化、条理化、自动化。

1.2开发工具
  Eclipse或者Myeclipse,Java,MySQL,Redis,Html,CSS,JS。
二、详细设计
2.1网站结构

JavaWeb项目 java+servlet 网上商城

JavaWeb项目 java+servlet 网上商城

JavaWeb项目 java+servlet 网上商城

JavaWeb项目 java+servlet 网上商城

JavaWeb项目 java+servlet 网上商城

JavaWeb项目 java+servlet 网上商城

JavaWeb项目 java+servlet 网上商城

JavaWeb项目 java+servlet 网上商城

JavaWeb项目 java+servlet 网上商城

JavaWeb项目 java+servlet 网上商城

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">

 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>易买网 - 登录</title>
  <link type="text/css" rel="stylesheet" href="css/style.css" />
  <script type="text/javascript" src="js/jquery.min.js"></script>
  <script type="text/javascript" src="scripts/myfunction.js"></script>
  <style>
   .code {
    font-family: Arial;
    font-style: italic;
    color: Red;
    border: 0;
    padding: 2px 3px;
    letter-spacing: 3px;
    font-weight: bolder;
   }
  </style>
 </head>

 <body οnlοad="createCode()">
  <div id="header" class="wrap">
   <div id="logo"><img src="images/logo.gif" /></div>
   <div class="help">
   </div>
   <div class="navbar">
    <ul class="clearfix">
     <li class="current">
      <a href="index.html">首页</a>
     </li>
     <li class="nav_1">
      <a href="javascript:void(0);" id="1" οnclick="bignav(this.id)">图书</a>
     </li>


     


<!--      <li class="nav_2">
      <a href="javascript:void(0);" id="2" οnclick="bignav(this.id)">百货</a>
     </li>
     <li class="nav_3">
      <a href="javascript:void(0);" id="3" οnclick="bignav(this.id)">家居</a>
     </li>
     <li class="nav_4">
      <a href="javascript:void(0);" id="4" οnclick="bignav(this.id)">食物</a>
     </li> -->
     
    </ul>
   </div>
  </div>
  <div id="childNav">
   <div class="wrap">
    <ul class="clearfix" id="nav">
    </ul>
   </div>


  </div>
  <div id="register" class="wrap">
   <div class="shadow">
    <em class="corner lb"></em>
    <em class="corner rt"></em>
    <div class="box">
     <h1>欢迎回到易买网</h1>
     <table>
      <tr>
       <td class="field">用户名:</td>
       <td><input class="text" type="text" id="userName" name="userName" οnfοcus="FocusItem(this)" οnblur="CheckItem(this);" /><span></span></td>
      </tr>
      <tr>
       <td class="field">登录密码:</td>
       <td><input class="text" type="password" id="passWord" name="passWord" οnfοcus="FocusItem(this)" οnblur="CheckItem(this);" /><span></span></td>
      </tr>
      <tr>
       <td class="field">验证码:</td>
       <!--
             <td><input class="text verycode" type="text" name="veryCode" οnfοcus="FocusItem(this)" οnblur="CheckItem(this);" /><img id="veryCode" src="" /><span></span></td>
            -->
       <td>
        <input type="text" id="validCode" class="text verycode">
        <input type="text" onClick="createCode()" readonly="readonly" id="checkCode" class="unchanged" style="width: 80px;cursor:pointer" />
       </td>
      </tr>
      <tr>
       <td></td>
       <td><label class="ui-green"><input type="submit" name="submit" value="立即登录" οnclick="validate()"/></label></td>
      </tr>
     </table>
    </div>
   </div>
   <div class="clear"></div>
  </div>
  <div id="footer">
 Copyright &copy; All Rights Reserved. 1000001号
  </div>
 </body>
 <script>
  //加载
  $(function() {
   getnav(); //获取栏目
  })

  //登陆信息
  var user = sessionStorage.getItem("User");
  if(user == null) {
   var target = $('.help');
   var str = '<a href="shopping.html" class="shopping">购物车</a>' +
    '<a href="login.html">登录</a>' +
    '<a href="register.html">注册</a>' +
    '<a href="guestbook.html">留言</a>';
   target.append(str);
  } else {
   var name = JSON.parse(user).userName;
   var target = $('.help');
   var str = '<lable>' +
    name + '</lable><button οnclick="out()">登出</button>';
   target.append(str);

   alert("请不要重复登陆!!");
   setTimeout(function() { //一秒后跳转
    location.href = "index.html";
   }, 1000);
  }

  var code;

  //验证码生成和刷新
  function createCode() {
   code = "";
   var codeLength = 6; //验证码的长度 
   var checkCode = document.getElementById("checkCode");
   var selectChar = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); //所有候选组成验证码的字符,当然也可以用中文的   
   for(var i = 0; i < codeLength; i++) {
    var charIndex = Math.floor(Math.random() * 36);
    code += selectChar[charIndex];
   }
   if(checkCode) {
    checkCode.className = "code";
    checkCode.value = code;
    checkCode.blur();
   }
  }

  function validate() {
   var inputName = $('#userName').val().trim();
   var inputPassword = $('#passWord').val().trim();
   var inputcode = $('#validCode').val().trim();
   if(inputName == 0) {
    alert("请输入用户名!");
   } else if(inputPassword == 0) {
    alert("请输入密码!");
   } else if(inputcode.length <= 0) {
    alert("请输入验证码!");
   } else if(inputcode.toUpperCase() != code) {
    alert("验证码输入错误!");
    createCode(); //刷新验证码
   } else {
    submit();
   }
  }

  function submit() {
   var req = {};
   req.userName = $('#userName').val().trim();
   req.passWord = $('#passWord').val().trim();
   $.ajax({
    type: "post",
    url: "Login",
    data: req,
    dataType: 'json',
    success: function(resp) {
     //var a = JSON.get("result")
     if(resp.hasOwnProperty("result")) {
      alert("登录失败!请检查账号是否正确");
      window.location.reload();
     } else {
      sessionStorage.setItem("User", JSON.stringify(resp));
      location.href = "index.html";
     }
    }
   });
  }

  
  //一级标题查找二级标签 一级标签:图书/百货/家居/食物
function bignav(id) {
 var target = $("#nav");
 //清空二级标签
 target.html("");
 $(".current").removeClass('current');
 var nav_big = '.nav_' + id;
 $(nav_big).addClass('current');
 var req = {};
 req.id = id;
 $.ajax({
  type: "get",
  url: "navFind",
  data: req,
  dataType: 'json',
  success: function(resp) {
   for(var row of resp) {
    //上侧
    var str = '<li><a href="goods-list?name=' +
     row.navName + '">' +
     row.navName + '</a></li>';
    target.append(str);
   }
  }
 });
}
 </script>

</html>

相关文章: