(cookie)网上商城收索记录实现

https://blog.csdn.net/cdnight/article/details/50971216

1. cookie中只能储存字符串,麻烦告知下用什么方式可以转换为字符串
并且需要转换回来。

 

var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
 
var last=obj.toJSONString(); //将JSON对象转化为JSON字符
或者
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符

2.Cookie是一个伟大的发明,它允许Web开发者保留他们的用户的登录状态。但是当你的站点有一个以上的域名时就会出现问题了。在Cookie规范上说,一个cookie只能用于一个域名,不能够发给其它的域名。因此,如果在浏览器中对一个域名设置了一个cookie,这个cookie对于其它的域名将无效。如果你想让你的用户从你的站点中的其中一个进行登录,同时也可以在其它域名上进行登录,这可真是一个大难题。
跨二级域名

  我们知道cookie是可以跨二级域名来访问,这个很好理解,例如你 www.test1.com 在的web应用程序创建了一个cookie,要想在bbs.test1.com这样的二级域名对应的应用程序中访问,就必须你在创建cookie的时候设置domain参数domain=test1.com。 以asp.net为例 代码如下:
    
HttpCookie cookie = new HttpCookie("name", "www.Admin10000.com");
cookie.Domain = "test1.com";
cookie.Path = "/";
Response.Cookies.Add(cookie);
跨顶级域名

  如果我不是二级域名而是完全在不同顶级域名中,例如 www.test1.com 所在的web应用程序创建了一个cookie,想要在 www.test2.com 或其二级域名的应用程序中访问,改怎么办呢?我们知道靠常规反的方法是访问不了的,关键我们就是看看有没有方法可以访问。事实是Cookie可以在一定条件下跨域,而不是随心所欲的实现跨域。

  我们来做个测试,看看两个站点 www.test1.com 和 www.test2.com 如何实现cookie跨域访问。 按照常规我们需要有2个顶级域名,并且有DNS服务器才能够配置域名,否则我们是无法验证的,但是这里我们也没有必要那么麻烦,我们可以通过修改hosts文件来模拟。在 c:\windows\system32\drivers\etc 中有 hosts文件,在末尾添加上

127.0.0.1    www.test1.com
127.0.0.1    www.test2.com

两行,就可以将本机用上面的域名访问本机回环地址了。我们只需要在IIS上部署一套程序,ip为本机回环地址,用两个域名分别访问就可以了。

2 简单cookie方法

function getCookie(name)

{

    var cookieValue = "";

    var search = name + "=";

    if (document.cookie.length > 0)

    {

        offset = document.cookie.indexOf (search);

        if (offset != -1)

        {

            offset += search.length;

            end = document.cookie.indexOf (";", offset);

            if (end == -1)

                end = document.cookie.length;

            cookieValue = unescape (document.cookie.substring (offset, end))

        }

    }

    return cookieValue;

}

<script>

var name = "_system_version";

var days = 7;

var version=getCookie("_system_version");

if(version =="2.0")

{

 version = "3.0";

}

var path = "/";

var expires = new Date();

expires.setTime(expires.getTime() + days * 3600000 * 24);

path = path == "" ? "" : ";path=" + path;

var _expires = (typeof days) == "string" ? "" : ";expires=" + expires.toUTCString();

document.cookie = name +"=" + version + _expires + path;

</script>

 

网上商城收索记录实现

 

 

/** * 增加搜索记录,放入cookie中

 */
function addRecords(searchParams)
{
var name ="supermarket_searchrecords";
var cookieValue = $.cookie(name);
var newCookie = "";
var breedIdAndName = "";

if(searchParams["breedInfos"] !="" && typeof(searchParams["breedInfos"]) !="undefined")
{
    var breedInfos = searchParams["breedInfos"];

    for ( var breedId in breedInfos) {
        var breedName = breedInfos[breedId];
        if (breedName != "") {
            if (breedIdAndName == "") {
                breedIdAndName += breedId +"-"+breedName;
            } else {
                breedIdAndName += "_" + breedId +"-"+breedName;
            }
        }
    }
}

//添加或更改的最后一条的记录信息,记录以下收索字段
var addRecord = "keyword:"+ (typeof(searchParams["keyword"])=="undefined" ? "" : searchParams["keyword"])+";"
+ "breedIds:"+(typeof(searchParams["breedIds"]) =="undefined" ? "":searchParams["breedIds"])+";"
+ "breedInfos:"+breedIdAndName+";"
+ "materials:"+(typeof(searchParams["materials"]) =="undefined" ? "": searchParams["materials"])+";"
+"specs:"+(typeof(searchParams["specs"]) =="undefined" ? "": searchParams["specs"])+";"
+ "cityId:"+(typeof(searchParams["cityId"])=="undefined" ? "":searchParams["cityId"])+";"
+ "cityName:"+(typeof(searchParams["cityName"]) =="undefined" ? "": searchParams["cityName"])+";"
+ "brands:"+(typeof(searchParams["brands"]) =="undefined" ? "": searchParams["brands"])+";"
+ "warehouses:"+(typeof(searchParams["warehouses"]) =="undefined" ? "":searchParams["warehouses"])+";"
+ "startPrice:"+(typeof(searchParams["startPrice"]) =="undefined" ? "": searchParams["startPrice"])+";"
+ "endPrice:"+(typeof(searchParams["endPrice"]) =="undefined" ? "": searchParams["endPrice"])+";";

if (cookieValue != null && cookieValue != "")
{
    var uneacapeCookieValue = unescape(cookieValue);  // 解码

    //操作收索记录,如果已经存在了,不再添加或改变
    if(uneacapeCookieValue.indexOf(addRecord) == -1)
    {
        var records = uneacapeCookieValue.split("|");
        var size = records.length;
        
        var lastRecords = records[records.length - 1].split(";");//最近的一条cookie
        var recordParams ={};//把cookie中的最后一条转换成对象
        var addFlag = false;//默认false,不添加只是改变最后一条
        //减一因为最后一个对象也有;(分号)
        for(var i=0;i<lastRecords.length-1;i++)
        {
            var record = lastRecords[i].split(":");
            recordParams[record[0]] = record[1];
        }

        if (searchParams != null && recordParams != null)
        {
            //如果只是添加条件,在最近一条cookie中赋值,即改变最后一条Cookie,如果条件变化包括删除了某个条件,则在原有cookie基础上新加记录
            //key1:value1;key2:value2;...key9:value9;|key1:value1;key2:value2;...key9:value9;
            for ( var pro in recordParams)
            {
                //breedInfos变化时,breedIds也会变化,不需要根据它判断
                if(    recordParams[pro] !="" && recordParams[pro] !="undefined" && pro !="breedInfos")
                {
                    //不为空的,就要判断它对应的值有没有变化
                    if(recordParams[pro] !=searchParams[pro])
                    {
                        addFlag = true;
                        break;
                    }
                 }
             }

            //只存储最近的n(目前n=5)条cookie,大于n-1时
            if(size > 4)
            {
                //true,n——>n-1,全部向左平移一个,即删除第一个,最后一个添加即第n个添加;
                if(addFlag)
                {
                    records.shift();
                    records.push(addRecord);
                    newCookie = records.join("|");
                }
                //false 改变最后一个,即第n个的值;
                else
                {
                    records.pop();
                    records.push(addRecord);
                    newCookie = records.join("|");
                }
            }
            //cookie条数小于n时
            else
            {
                //true添加一条
                if(addFlag)
                {
                    records.push(addRecord);
                    newCookie = records.join("|");
                }
                //改变最后一条逻辑
                else
                {
                    records.pop();
                    records.push(addRecord);
                    newCookie = records.join("|");
                }
             }
          }
    }
    else
    {
        newCookie = uneacapeCookieValue;
    }
}
else
{
    // 如果不存在Cookie 创建
    newCookie = addRecord;
}

//添加cookie
$.cookie(name, escape(newCookie), {expires: 30, domain:'.banksteel.com', path: '/'});
//cookie变化,刷新收索记录
showSearchHistory();
}

/**
 * 删除某条搜索记录
 */
function removeRecord(revNum)
{
    var name ="supermarket_searchrecords";
    var cookieValue = $.cookie(name);

    if (cookieValue != null && cookieValue != "")
    {
        var uneacapeCookieValue = unescape(cookieValue);  // 解码
        var records = uneacapeCookieValue.split("|");
        var newRecords ="";

        //当revNum等于0时与空相等,所以!==;
        if(records != null && revNum !=="")
        {
            records.splice(revNum, 1);
            newRecords = records.join("|");
        }    

        var newCookie = newRecords;
        //添加cookie
        $.cookie(name, escape(newCookie), {expires: 30, domain:'.banksteel.com', path: '/'});
        //刷新收索记录
        showSearchHistory();    
    }    
}

/**
 *展示收索记录
 */
function showSearchHistory(){
var name ="supermarket_searchrecords";
var cookieValue = $.cookie(name);
$("#hisul").empty();
var title = "<li class=\"tit\">搜索记录</li>";
$("#hisul").append(title);

if (cookieValue != null && cookieValue != "")
{
    var uneacapeCookieValue = unescape(cookieValue);
    var records = uneacapeCookieValue.split("|");

    //倒序展示
    for(var j=records.length-1;j>=0;j--)
    {    
        var recordParams ={};//每次生成一组新的对象集
        var perRecord = records[j].split(";");
        var li = "<li class='con' id=\"hisli_" + j + "\"></li>";
        var a1 ="<a href=\"javascript:;\" class=\"a1\" id=\"hisa1_" + j +"\"></a>";
        var a2 ="<a href=\"javascript:;\" class=\"con\" id=\"hisa2_" + j +"\">删除</a>";
        //var a2 ="<span class=\"a2\" id=\"hisa2_" + j +"\">删除</span>";
        var recordSpan ="";
        var breedparam ={};

        for(var i=0;i<perRecord.length-1;i++)
        {
            var record = perRecord[i].split(":");
            //把cookie中的每一条转换成对象
            if(record[1]=="undefined")
            {
                recordParams[record[0]] = "";
            }
            else
            {
                recordParams[record[0]] = record[1];
            }

            //整合收索记录字段
            if(record[1] != "" && record[1] != "undefined" && record[0] != "breedIds" && record[0] != "cityId")
            {   
                //处理品名字段
                if(record[0]=="breedInfos")
                {
                    var breedNames = "";
                    var breedIdAndNames = record[1].split("_");
                    
                    for(var n=0;n<breedIdAndNames.length;n++)
                    {
                        var perbreedId = breedIdAndNames[n].split("-")[0];
                        var perbreedName = breedIdAndNames[n].split("-")[1];
                        breedparam[perbreedId] = perbreedName;
                        recordParams["breedInfos"] = breedparam;

                        if(breedNames =="") {
                            breedNames = perbreedName;
                        }else{
                            breedNames = breedNames +","+perbreedName;
                        }
                    }

                    //每两个字段间有加号
                    if(recordSpan=="")
                    {
                        recordSpan = breedNames;
                    }
                    else
                    {
                        recordSpan = recordSpan +"<span>+</span>"+breedNames;
                    }
                }
                else if(record[0]=="brands" || record[0]=="keyword" || record[0]=="breedNames" || record[0]=="warehouses" || record[0]=="specs")
                {
                    if(recordSpan=="")
                    {
                        recordSpan = unescape(record[1]);
                    }
                    else
                    {
                        recordSpan = recordSpan +"<span>+</span>"+ unescape(record[1]);
                    }
                }
                else
                {
                    if(recordSpan=="")
                    {
                       recordSpan = record[1];
                    }
                    else
                    {
                        recordSpan = recordSpan +"<span>+</span>"+ record[1];
                    }
                }
            }
        }

        if(recordSpan !="")
        {
            $("#hisul").append(li);
            $("#hisli_"+j).append(a1);
            $("#hisli_"+j).append(a2);
            $("#hisa1_"+j).append(recordSpan);
            $("#hisa1_"+j).attr("onclick", "searchByParam("+JSON.stringify(recordParams)+");");
            $("#hisa2_"+j).attr("onclick", "removeRecord("+j+");");
        }
    }

  }

}

 

购物车cookie实现

 

/**
 * 获取cookie值
 * @param name
 * @returns {String}
 */
function getCookie(name) {
    var cookieValue = "";
    var search = name + "=";
    if (document.cookie.length > 0) {
        offset = document.cookie.indexOf(search);
        if (offset != -1) {
            offset += search.length;
            end = document.cookie.indexOf(";", offset);
            if (end == -1)
                end = document.cookie.length;
            cookieValue = unescape(document.cookie.substring(offset, end))
        }
    }
    return cookieValue;
}
/**
 * 获取资源Id
 */
function changeItem() {
    var ids = "";
    obj = document.getElementsByName("resourceId");
    for (i = 0; i < obj.length; i++) {
        if (ids == "") {
            ids = obj[i].value;
        } else {
            ids = ids + "," + obj[i].value;
        }
    }
    $("#ids").val(ids);
    
    var id = ids.split(",");
    var averageQty = "";
    var items = "";
    var qtyAll = "";
    var amt = "";
    for(var i=0;i<id.length;i++)
    {
        averageQty = $("#averageQty_"+id[i]).text().split(":")[1];
        items = $("#"+id[i]).val();
        amt = $("#amt_"+ id[i]).text().split(":")[1];
        qtyAll = parseFloat(averageQty) * items;
        $("#qty_"+id[i]).text(parseFloat(qtyAll).toFixed(4));
        amt = amt * qtyAll;
        $("#amtAll_"+id[i]).text(parseFloat(amt).toFixed(2));
    }    
}

/** 删除一行 */
function deleteCurrentRow(obj, id) {

    var idsDel = "";
    var resourceIdDel = getCookie("_cart_resource_ids");
    var resIdsDel = resourceIdDel.split("|");
    for (var i = 0; i < resIdsDel.length; i++) {
        if (resIdsDel[i] != id) {
            if (idsDel == "") {
                idsDel = resIdsDel[i];
            } else {
                idsDel = idsDel + "|" + resIdsDel[i];
            }
        }
    }

    var name = "_cart_resource_ids";
    var days = 7;

    var value = idsDel;
    var path = "/";
    var expires = new Date();
    expires.setTime(expires.getTime() + days * 3600000 * 24);
    path = path == "" ? "" : ";path=" + path;
    var _expires = (typeof days) == "string" ? "" : ";expires="
            + expires.toUTCString();
    var domain = ".banksteel.com";
    domain = domain == "" ? "" : ";domain=" + domain;
    document.cookie = name + "=" + value + _expires + path + domain;

    var idMap = ""
    var ids = $("#ids").val();

    var idList = ids.split(",");
    for (var i = 0; i < idList.length; i++) {
        if (idList[i] != id) {
            if (idMap == "") {
                idMap = idList[i];
            } else {
                idMap = idMap + "," + idList[i];
            }
        }
    }
    $("#ids").val(idMap);

    var tr = obj.parentNode.parentNode;
    var tbody = tr.parentNode;
    var ids = "";

    if (tbody.children.length > 1) {
        tbody.removeChild(tr);
        if (tbody.children.length == 1) {
            tbody.remove();
        }

        var resIds = $("#ids").val();
        var eachIds = resIds.split(",");
        for (var i = 0; i < eachIds.length; i++) {
            if (eachIds[i] != id) {
                if (ids == "") {
                    ids = eachIds[i];
                } else {
                    ids = ids + "," + eachIds[i];
                }

            }
        }
        $("#ids").val(ids);
    }

}

/** 删除一行 */
function newDeleteCurrentRow(obj, id) {

    var idsDel = "";
    var resourceIdDel = getCookie("_cart_resource_ids");
    var resIdsDel = resourceIdDel.split("|");
    for (var i = 0; i < resIdsDel.length; i++) {
        if (resIdsDel[i] != id) {
            if (idsDel == "") {
                idsDel = resIdsDel[i];
            } else {
                idsDel = idsDel + "|" + resIdsDel[i];
            }
        }
    }

    var name = "_cart_resource_ids";
    var days = 7;

    var value = idsDel;
    var path = "/";
    var expires = new Date();
    expires.setTime(expires.getTime() + days * 3600000 * 24);
    path = path == "" ? "" : ";path=" + path;
    var _expires = (typeof days) == "string" ? "" : ";expires="
            + expires.toUTCString();
    var domain = ".banksteel.com";
    domain = domain == "" ? "" : ";domain=" + domain;
    document.cookie = name + "=" + value + _expires + path + domain;

    var idMap = ""
    var ids = $("#ids").val();

    var idList = ids.split(",");
    for (var i = 0; i < idList.length; i++) {
        if (idList[i] != id) {
            if (idMap == "") {
                idMap = idList[i];
            } else {
                idMap = idMap + "," + idList[i];
            }
        }
    }
    $("#ids").val(idMap);

    var tr = obj.parentNode.parentNode;
    var tbody = tr.parentNode;
    var ids = "";

    if (tbody.children.length > 1) {
        tbody.removeChild(tr);
        if (tbody.children.length == 1) {
            tbody.parentNode.parentNode.remove();
        }

        var resIds = $("#ids").val();
        var eachIds = resIds.split(",");
        for (var i = 0; i < eachIds.length; i++) {
            if (eachIds[i] != id) {
                if (ids == "") {
                    ids = eachIds[i];
                } else {
                    ids = ids + "," + eachIds[i];
                }

            }
        }
        $("#ids").val(ids);
    }

}

/**
 * 修改件数
 *
 * @param obj
 */
function change(obj) {
    var text = $("#items_" + obj).text();
    var items = text.split(":");
    var textQty = $("#averageQty_" + obj).text();
    var qtys = textQty.split(":");

    var amt = $("#amt_" + obj).text().split(":")[1];

    var money = (1 * qtys[1] * amt).toFixed(2);

    var textVal = $("#" + obj).val();
    var dpattern = /^[0-9]*[1-9][0-9]*$/;
    if (textVal != "") {
        if (!dpattern.test(textVal)) {
            $("#" + obj).val("1");
            alert("件数是正整数 !");
            $("#qty_" + obj).text(parseFloat(qtys[1]).toFixed(4));
            $("#amtAll_" + obj).text(money);

            return;
        }
    }

    if (parseInt(textVal) > parseInt(items[1])) {
        $("#" + obj).val("1");
        alert("已超过挂牌件数,最多购买" + items[1] + "件。");
        $("#qty_" + obj).text(qtys[1]);
        $("#amtAll_" + obj).text(money);
    } else {
        var averageQty = qtys[1];
        var qtyAll = (averageQty * textVal).toFixed(4);

        $("#qty_" + obj).text(qtyAll);

        var amtAll = (amt * qtyAll).toFixed(2);
        $("#amtAll_" + obj).text(amtAll);
    }

}

/**
 * 显示总重量
 */
function qtyAll() {
    var qtyAll = "";

    var obj = document.getElementsByName("resourceId");
    if (obj.length == 0) {
        $("#qtyText").text("0.0000");
    } else {
        for (i = 0; i < obj.length; i++) {
            var qty = $("#qty_" + obj[i].value).text();
            if (qtyAll == "") {
                qtyAll = parseFloat(qty);
            } else {
                qtyAll = parseFloat(qtyAll) + parseFloat(qty);
            }
        }

        $("#qtyText").text(parseFloat(qtyAll).toFixed(4));
    }
}

/**
 * 显示总金额
 */
function amtAll() {
    var amtAll = "";

    var obj = document.getElementsByName("resourceId");
    if (obj.length == 0) {
        $("#amtText").text("0.00");
    } else {
        for (i = 0; i < obj.length; i++) {
            var amt = $("#amtAll_" + obj[i].value).text();
            if (amtAll == "") {
                amtAll = parseFloat(amt);
            } else {
                amtAll = parseFloat(amtAll) + parseFloat(amt);
            }
        }

        $("#amtText").text(parseFloat(amtAll).toFixed(2));
    }

}

/**
 * 提交订单
 */
function orderSub(obj) {
    var ids = $("#ids").val();
    if (ids == "") {
        alert("没有可提交的订单!");
        return;
    }
    var idMap = ""
        var idList = ids.split(",");
    for (var i = 0; i < idList.length; i++) {
        var items = $("#" + idList[i]).val();
        if (items == "") {
            alert("件数不能为空!");
            return;
        }
        if (idMap == "") {
            idMap = "{resourceId:" + idList[i] + ",items:" + items + "}";
        } else {
            idMap = idMap + "," + "{resourceId:" + idList[i] + ",items:"
            + items + "}";
        }
        
    }
    if (confirm("确定提交订单吗?")) {
        idMap = "[" + idMap + "]";

        $("input[name='resourceIds']").val(idMap);
        $("#resourceForm").submit();
    }

}
function deleteConOld(obj, id) {
    if (confirm("确定要删除数据吗")) {
        deleteCurrentRow(obj, id);
        qtyAll();
        amtAll();

    }
}

function deleteConNew(obj, id) {
    if (confirm("确定要删除数据吗")) {
        newDeleteCurrentRow(obj, id);
        qtyAll();
        amtAll();

    }
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
科汛cms(Kesioncms)是基于采用网络中已经成熟、稳定的技术ASP+ACCESS(SQL2000/2005)开发而成,利用本系统您可以很方便地管理自己的网站。本系统是一款由文章、图片、下载、分类信息、商城、求职招聘、影视、动漫(flash)、音乐、广告系统、个人/企业空间、小型互动论坛、友情链接、公告、调查等20多个功能模块,并集成自定义模型、自定义字段等功能组合而成的强大、易用、扩展性强的开源网站管理软件。 我们认为“简单就是美”,因此一直以来,科汛开发人员在开发过程中无处不充分考虑用户的使用习惯,尽最大可能降低用户的使用门槛,让用户关注于内容维护本身, 而不需要投入过多的时间来学习系统的使用技巧,在细节处下大工夫。 Kesioncms系统功能完善,覆盖面广、扩展性强、负载能力好、模板调用非常灵活、管理方便,因此不仅适合于建设一般企业、政府、学校、个人等小型网站,同时也适合于建设地方门户、行业门户、收费网站等大中型网站。 主要特性: 1、系统采用模块化开发,可自由屏蔽暂时没有用到的功能模型,同时又是一款100%开源的程序,二次开发更方便。 2、系统支持整站生成HTML静态和动态ASP 整个系统都可以生成静态HTML,有效的提高了系统的性能,不仅减轻服务器的负载提高搜索收录率,增加网站收录。同时也可以实现内容收费和访问权限控制。 超多种生成文件命名形式可供选择,您可以随心所欲的设置要生成的扩展名,一切更可能的根据您的喜好DIY。 经过开发人员的优化,生成速度非常快,操作便捷。生成文件名以倒序方式生成:如index_100.html,index_99.html,index_88.html,自由设置每次生成的页数! 这种好处当您的栏目下有上万篇文章时越是明显,因为每次生成时不需要将所有页面重新生成一次,只需要根据预设定的生成最新更新的记录即可! 3、 系统由文章、图片、下载、分类信息、商城、求职招聘、影视、动漫(flash)、音乐、广告系统、个人/企业空间、小型互动论坛、友情链接、公告、调查等20多个功能模块组成。 用户可以选择性的购买和安装所需功能模块,而且还可以根据自定义模型、自定义字段功能开发新的功能模块,如房产系统,企业调查,在线报名等系统以满足个性化需求。 4、 网站模板与程序分离,支持多种标签调用,支持DIV+CSS,通过模板设计便可实现个性化网站 科汛cms实现了“网站模板与程序完全分离”的新概念,独创ajax输出和JS标签跨站调用,支持不同频道、栏目、专题、内容页应用不同的模板,支持批量绑定模板,模板换肤更是一键之谈。 模板制作也非常方便,用户可以发布自己制作的模板,也可以下载安装他人分享的模板。 不需写任何一行代码,可以使用自己熟悉的工具,如Frontpage、Dreamwaver等来制作模板。用户完全可以自行设计模板,从而更好的体现用户的个性和特色。 5、上传文件清理大大节约空间资源:系统后台可以根据管理员操作的项目来清理无效、过期的文件,从而大大节约了空间,节约了成本。 6、支持无限级栏目,可绑定二级域名,而且各栏目下的数据可以移动、合并 7、系统支持自定义模型,自定义字段,用户可根据需要基于文章、下载、图片模型创建新的频道,可轻松建站如房产,在线报名等系统功能,帮助用户轻松建立大型站点。 所以,您不需要懂代码,无需编程便可轻松扩展系统功能满足个性化需求 8、自定义字段功能:可自由设置字段类型、字段类型(单行文本、多行文本、下拉列表、数字、日期、单选按钮、多选按钮、电子邮箱、文件)、表单选项限制(功能启用时间限制、是否只允许会员提交、每个会员是否只允许提交一次),可按自定义字段搜索和排序。会员注册和各频道都支持自定义字段功能,用户可根据需要设置自定义字段扩展功能满足个性化需求。 9、全站所有模型支持Tags标签,主动式信息分类让信息相互链接,提高站点 PV 10、支持自定义SQL标签调用,可自由设定数据源,从而调用除Kesioncms系统外的其它外部数据库资源,并且调用的其它外部数据可以分页。 11、相关链接可根据关联条件查询。 12、支持频道绑定独立域名、各频道数据分表存储、自定义字段、后台按频道分级管理,帮助用户轻松建立大型站点。 13、支持频道绑定独立域名、各频道数据分表存储、自定义字段、后台按频道分级管理,帮助用户轻松建立大型站点。 14、支持在线支付和充值卡充值功能,可选择支付宝、网银在线等支付平台,提供完善的财务管理功能和消费明细,每个栏目都可以进行完善的权限设定(浏览、查看、投稿发表等各种权限)和内容收费,可帮助用户轻松建立电子商务网站。 15、提供API整合接口,可整合主流论坛、博客等软件,轻松实现多个程序紧密结合。 可同时整合动网论坛、oblog等第三方软件,轻松实现会员一站通,帮助用户轻松实现“cms + 论坛 + 博客”的多功能门户方案。 16、提供utf-8编码和语言包,可建设国际化站点 同时提供GBK和UTF-8软件包,用户可以根据需要把模板和语言包翻译成其他语言,为多语言环境的开发提供了便利,助你的站点迈向世界。 17 、支持多级管理权限控制,让网站多人维护更轻松 系统支持按频道和模块分别设置栏目管理员和模型管理员,同时还可以根据需求分配不同的权限给他们进行管理,帮助用户轻松实现网站多人维护。 18、多重安全机制和权限控制,为网站安全保驾护航 支持后台访问目录更名、Cookie加密、验证码、认证码、IP锁定、IP白名单、防SQL注入、防跨站脚本、防脚本文件上传等多重安全机制,并且后台支持按频道和模块严格控制访问权限,为网站的安全运营提供最强有力的保障。 19、独创标签AJAX输出,采用无刷新ajax分页技术,不仅栏目生成速度大大提高,还有效的防止列表被采集,标签可支持ajax->table,ajax->div+css,table,div+css四种调用方式,独创标签导入导出功能,让您更方便标签的共享、备份等操作。 20、百度、GOOGLE站点地图功能,生成和自动更新提交站点最新信息,可以大大的提高收录量。 21、强大的(信息)采集系统,可采文章信息,方便用户系统性的收集信息,使用简单,只需懂点html基础代码即可;支持内容、列表分页采集、多重过滤和内容字符替换:支持远程保存图片、批量入库操作、可预览采集结果。 22、圈子功能:圈子又称群组,此功能对调动用户积极性,挖掘相同爱好的博友推波助澜。每个圈子都有独立的模板和管理员,娱乐,学习,互动,随意创建,用户体验非常好。 23、DIGG功能:Digg中文翻译为“鼎革”,或者“顶格”, 它采取的是用户驱动的机制,通过一种类似民主投票的方式来表示对信息的支持和认可,使得被digg多的信息脱颖而出,出现在digg页面上。众多用户对此功能的评价是时尚+实用。 24、评论功能:网站是供大家交流的平台,后台可以启用审核与非审核模式。当有不合适不合时的言论,管理员只需审核这些评论即可,这一功能,大大减少了管理员的工作量,维护了网站的正常运行。 可以对任意频道和模块里的任意内容附加评论,支持评论中加入表情图标,可对单一评论回复和投鲜花鸡蛋,支持是否开启评论,游客回复等; 25、相册功能:用户可以开通相册,上传并管理自己的靓照。 26、系统具有强大的数据库字段替换功能;强大的在线执行SQL语句功能。 27、强大的数据备份和恢复功能,可以在线备份、恢复、压缩数据库。 28、评论独创Ajax让发表评论更为方便。用户体验的新突破,有效地提高用户讨论的兴趣。 29、支持广告类型:gif图片广告、FLASH广告、文字广告、HTML代码广告。 支持7种广告位显示方式: 页内嵌入循环:就是将广告位直接置入某页面一固定位置,并在同一位置循环显示广告位中的所有正常广告条,这样,每刷新一次就会更替显示一个新的广告条 上下排列置入:从上到下竖排广告位中的所有正常广告条 左右排列置入:从左到右横排广告位中的所有正常广告条 向上滚动置入:向上滚动显示广告位中的所有正常广告条 向左滚动置入:向左滚动显示广告位中的所有正常广告条 弹出多个窗口:页面打开时同时弹出多个窗口,每个窗口内显示一个广告条,弹出数量跟该广告位中的正常广告条数一致 循环弹出窗口:页面打开时同时弹出一个窗口,在同一窗口内循环显示广告位中的正常广告,这样,每刷新一次就会在弹出窗口中更替显示一个新的广告条 只需后台修改广告即可更新广告;可设置广告过期时间,通用于站内所有位置调用,让你的站点处处体现商机。 30、多种导航菜单管理(普通导航菜单,顶部菜单,树形菜单),可根据网站需要自行选择导航方式,更加方便。 31、后台操作日志管理,完整记录所有后台操作,可通过日志查出非法操作记录提供证据。 32、保存远程图片,添加或采集信息时,可选择远程保存图片到本地服务器,防止对方删除图片或者服务器不正常时图片不显示。 33、水印缩略图,可按要求等比缩小,可按要求在指定位置加图片或文字水印,提升内容被转载后的宣传机会。 34、两种编辑器选择,可视化编辑器,类似word的所件即所得的在线内容编辑功能,支持表格、图片、FLASH、多种格式播放器插入,支持图片和附件上传。 35、字符过滤,自动过滤敏感字符,避免损害网站形象、避免网站被公安机关强制关闭。 36、关联链接,自由设置站内关联链接,自动给内容中的一些关键词加上链接,引导浏览者查看更多内容,提高网站黏度; 37、数据库字段替换,可批量替换各个数据表中指定字段的内容,快速纠正错误。 38、强大的会员互动功能 支持企业会员和个人会员 支持会员注册、登录、退出、审核、锁定、资料修改等基本功能; 支持新会员注册时多种验证方式,邮件验证、管理员审核、密码找回; 支持一个会员账号只允许一个会员登录,可以有效防止一个会员账号多人使用的情况; 支持自定义会员注册自段,轻松地收集所需的会员资料; 支持会员登录时是否需要验证码; 支持自定义会员组 支持注册会员赠送资金、积分、点券、有效期等计费方式并可兑换产品; 支持新会员注册时发送站内短信通知 支持在后台预设注册时禁止使用的用户名 支持与第三方软件如论坛整合,轻松实现cms与论坛会员同步注册、登录和退出; 支持前台会员投稿功能,可以让会员好的东西与大家分享 支持发送站内短信,邮件群发 支持我的收藏,我发表的评论管理 支持会员点券,有效期,资金明细,充值卡管理等 39、友情链接 支持链接分类、支持前台申请后台审核,支持按文字、logo等多种方式显示,可统计点击次数; 40、 站内调查模块 可设置单选或多选,可设置投票的有效期限,可限制同一IP在24小时内只能进行一次投票; 41、 单页面 可创建单个网页,模板和html生成路径都可以自定义。例如:公司介绍、联系我们等,在各种网站均能应用。 42、留言本(小型互动论坛) 访问者可以发表留言咨询,管理员可在后台进行回复,实现访可与管理员的互动交流; 43、 自定义网页 由于现有的页面都是开发人员根据一定的需求模型设计的,可能难以满足网站的个性化需求;您可以通过此功能自己定义网页,并通过模板和标签来控制该页面的内容,以满足个性需求。 44、文章页有上一篇,下一篇,长文章可以自动分页,信息量大,适合搜索引擎收录。 45、下载系统采用服务器管理方案,支持Web迅雷,FlashGet联盟等的专用下载,帮助用户轻松建立专业下载网站。 46、全新引入Application+XML缓存机制,大大提高了系统的生成速度及运行效率 47、全站所有频道(只要涉及到图片)均可自动添加水印及生成缩略图功能及幻灯片功能。 48、影视系统支持多种格式(如:.rm,.rmvb,.ra;.wmv,.avi,.asf,.wm等),还支持当前最流行的Flv格式,支持会员上传功能,极有力的增强站内互动。 49、系统集成CC视频插件,其它还有很多的细节功能,大家使用过程中慢慢就知道了...... 总之:科汛内容网站管理系统适合于各级政府机关、教育机构、组织协会、媒体、企事业单位用来建设地区门户、行业门户、单位内网和外网和收费网站等。从2006年发布至今得到了广大用户的认可及支持,而我们的Kesioncms管理系统也必将成为您建设网站及网站运营的最佳选择。
基于Java的校园二手物品交易网站的设计与实现全文共3页,当前为第1页。基于Java的校园二手物品交易网站的设计与实现全文共3页,当前为第1页。基于Java的校园二手物品交易网站的设计与实现 基于Java的校园二手物品交易网站的设计与实现全文共3页,当前为第1页。 基于Java的校园二手物品交易网站的设计与实现全文共3页,当前为第1页。   [摘 要] 本网站开发过程主要使用的软件有MyEclipse + MySQL + Navicat + VS code。使用MyEclipse + MySQL编写程序完成页面设计,Navicat编辑系统所需的数据库信息并且链接,VS code进行编辑优化。解决的主要问题是当代大学生多余物品浪费的问题。   [关键词] HTML语言;Java技术;二手物品交易   一、需求分析   根据用户对该网站的需求分析,可以得出该系统功能模块如下:用户管理模块、二手物品信息管理模块、交易管理模块、订单管理模块。   二、系统设计与实现   1.功能设计   校园二手物品交易网站主要由三个模块组成:用户管理模块、二手物品管理模块和订单管理模块。实现的具体功能如下:管理员管理功能:管理买卖双方的账号信息和管理员的账号信息;买家管理功能:用户注册,发布自己所需信息,和卖家进行沟通;卖家管理功能:发布自己的二手物品信息;二手物品管理功能:二手物品具体信息和二手物品具体分类管理;订单管理功能:二手物品订单表和订单详情表的管理,二手物品订单配送地址的管理。   2.数据库设计   各实体之间的关系如下:用户-发货:确认信息关系(一对一);用户-二手物品:购买关系(一对多);用户-购物车:收藏关系(一对多);二手物品-订单:出售关系(一对一);二手物品-收货:到达关系(一对一);管理员-二手物品:管理关系(一对多);管理员-用户:管理关系(一对多)。数据库逻辑结构设计如下所示:用户(用户id、账号、用户名、密码、手机号、真实姓名)。用户id为主键,其他为属性。二手物品(二手物品id、二手物品名称、二手物品价格、二手物品状态、二手物品剩余数量、二手物品样式、二手物品分类)。二手物品id为主键,其他为属性。订单(订单号、收货地址、用户名、二手物品状态、评论留言)。订单号,用户名为主键,其他为属性。管理员(用户id、二手物品id、网站图片)。用户id,二手物品id为主键,其他为属性。购物车(二手物品id、二手物品样式、二手物品剩余数量、二手物品状态)。二手物品id为主键,其他为属性。发货(订单号、收货人姓名、收货时间、收货地址、发货时间、物流号、快递公司)。订单号为主键,其他为属性。收货(用户名、收货人姓名、收货地址)。用户名为主键,其他为属性。   3.系统主要功能模块的实现 基于Java的校园二手物品交易网站的设计与实现全文共3页,当前为第2页。基于Java的校园二手物品交易网站的设计与实现全文共3页,当前为第2页。  (1)二手物品管理模块 基于Java的校园二手物品交易网站的设计与实现全文共3页,当前为第2页。 基于Java的校园二手物品交易网站的设计与实现全文共3页,当前为第2页。   二手物品管理模块在表格左上角设置button,名字为新建信息,该button就是新信息发布的入口。将该button的指向设为新的jsp页面,该jsp页面为发布的信息采集页面,主体为表单,其主要采集的信息有:二手物品类别(下拉菜单选择项)、二手物品名称(input标签采集项)、价格信息(input标签采集项)等。   (2)用户管理模块   用户管理根据管理权限不同可以分为普通用户管理和管理员管理。个人用户的表单设置包括用户名、密码、确认密码等5个<input>标签,管理员的表单设置有用户名、密码、验证码、管理员操作等10个<input>标签。通过以上设置对用户进行详细管理,方便用户管理操作,让系统更加优化。   (3)购物车管理模块   购物车功能实现就是在购物车表中插入或者更新一条数据记录,包括二手物品的id、信息和状态、数量。如果没有收藏的就直接可以收藏到购物车,如果已经收藏过的二手物品就会显示该物品已经在购物车中。主要收藏二手物品的属性有二手物品的id,通过request来读取二手物品的id可以看到该二手物品的主要信息,存在的话,二手物品數量加一。从cookie中获取购物车列表,然后转换成二手物品列表。   (4)订单管理模块   订单管理模块用户在搜索框中输入搜索关键字,前台采集到关键字后以post请求方式提交到服务器,然后服务器调用搜索方法doSearch(keyword,isHighter,start,num){},将关键字提交给搜索引擎,搜索引擎根据关键字将对应的信息id返回给服务器,此时服务器调getInforLi

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值