电子商务系统的一些代码

本文介绍了一种用于设置请求字符编码的过滤器实现,并提供了一个简单的购物车类用于管理商品,同时还展示了如何通过分页算法来高效地展示大量数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(一)、经常用的过滤器

 1package com.ascent.util;
 2
 3import java.io.IOException;
 4import javax.servlet.Filter;
 5import javax.servlet.FilterChain;
 6import javax.servlet.FilterConfig;
 7import javax.servlet.ServletException;
 8import javax.servlet.ServletRequest;
 9import javax.servlet.ServletResponse;
10import javax.servlet.UnavailableException;
11
12/** *//**
13 * Example filter that sets the character encoding to be used in parsing the
14 * incoming request
15 */

16public class SetCharacterEncodingFilter implements Filter {
17
18    /** *//**
19     * Take this filter out of service.
20     */

21    public void destroy() {
22    }

23    /** *//**
24     * Select and set (if specified) the character encoding to be used to
25     * interpret request parameters for this request.
26     */

27    public void doFilter(ServletRequest request, ServletResponse response,
28    FilterChain chain)throws IOException, ServletException {
29
30    request.setCharacterEncoding("gb2312");
31
32    // 传递控制到下一个过滤器
33    chain.doFilter(request, response);
34    }

35
36    public void init(FilterConfig filterConfig) throws ServletException {
37    }

38}

39

(二)、购物车类代码
package com.ascent.util;

import java.util.HashMap;

import com.ascent.po.Product;

public class ShopCart {
    
private HashMap<String, Product> hashMap;
    
    
public HashMap<String, Product> getHashMap() {
        
return hashMap;
    }


    
public void setHashMap(HashMap<String, Product> hashMap) {
        
this.hashMap = hashMap;
    }


    @SuppressWarnings(
"unchecked")
    
public ShopCart(){
        hashMap 
= new HashMap();
    }

    
    
/** *//**
     * 检查hashmap中是否有了该pid对应的对象方法
     * 
@param pid
     * 
@return true:有   false:无
     
*/

    
public boolean checkPid(String pid){
        
if(hashMap.containsKey(pid)){
            
return true;
        }
else{
            
return false;
        }

    }

    
/** *//**
     * 在上面方法返回false情况下添加product
     * 
@param pid
     * 
@param product
     
*/

    
public void addProduct(String pid,Product product){
        hashMap.put(pid, product);
    }

    
    
/** *//**
     * 根据id删除hashmap中的product
     * 
@param pid
     
*/

    
public void delProduct(String pid){
        hashMap.remove(pid);
    }

    
    
/** *//**
     * 修改hashmap中pid对应product的质量quantity
     * 
@param pid
     * 
@param quantity
     
*/

    
public void updateQuantity(String pid,String quantity){
        hashMap.get(pid).setQuantity(quantity);
    }

    
    
/** *//**
     * 清除购物车
     
*/

    
public void emptyCart(){
        
this.getHashMap().clear();
    }

}


(三)、分页算法
//分页类
package com.ascent.util;
import java.util.*;
/** *//**
 * 
@author Administrator
 * 
@version 负责页面控制的 JavaBean
 
*/

public class PageBean {            
    
public int currentPage;                // 当前页数
    public int totalPage;                // 总页数
    public int totalRows;                // 总行数
    public int rowsPage = 5;            // 每页显示多少行
    public ArrayList data;                // 封装页面显示的数据
    public PageBean(){}
    
public void countTotalPage(){        // 计算总页数
        if(totalRows%rowsPage==0){
            
this.totalPage = totalRows/rowsPage;
        }

        
else{
            
this.totalPage = totalRows/rowsPage + 1;
        }

    }

    
public ArrayList getData(){                
        
return data;
    }

    
    
public PageBean(int totalRows){
        
this.totalRows = totalRows;
        
this.countTotalPage();
    }

}





    
// 分页算法
    public String guestPageShow() throws Exception {
        
this.pageReturn();
        
return "guestproductsshow";
    }


    @SuppressWarnings(
"unchecked")
    
private void pageReturn() {
        String jump_page 
= this.getJumpPage();
        
if (jump_page == null{
            jump_page 
= "1";
        }

        PageBean page 
= this.listData(jump_page);
        ActionContext.getContext().getSession().put(
"product_page_list", page);
        
this.setDataList(page.getData());
    }


    
public PageBean listData(String number) {
        PageBean page 
= new PageBean(productService.getTotalRows());
        
int num = Integer.parseInt(number);
        String sql 
= "from Product p where delFlag=0 order by p.pid";
        page.data 
= productService.getData(sql, page.rowsPage * (num - 1),
                page.rowsPage);
        page.currentPage 
= num;
        
return page;

    }


    
// 分页算法


//实现
                PageBean page=this.listData("1");
                ActionContext.getContext().getSession().put(
"productuser_page_list", page);
                
                
this.setDataList(page.getData());



//jsp方面

  
<%
 PageBean pBean 
= (PageBean)session.getAttribute("productuser_page_list");
 
%>
 
<%
 
if(pBean.totalPage!=1){  
 
%>   
       
<form name="pageForm" action=
主栏目导航:首页、商品列表、特价商品、拍卖、团购、品牌专卖 次栏目导航:注册、登陆、留言, 我的圈子,缺货登记,帮助 头部栏目导航: 城市切换 我的帐户 点卡 拍卖 商铺 点评空间 购物资讯 社区 底部导航:首页 | 店铺介绍 | 联系我们 | 留言中心 | 我要开店 搜索 :商品搜索,高级搜索 定单搜索 一、头部栏目导航 我的帐户 将进入我的会员中心如没登陆将转到登陆界面 点卡 展现本网站推荐优惠点卡,以及对点卡的购买 拍卖 展现本网站最新拍卖商品及会员对所感兴趣的商品价格竞拍. 商铺 展现网站中的全部商铺可以按时间或人气排序 选择一个商铺后将进入店铺页面(铺子功能主要有) 商铺首页(显示该店铺的详细信息,及本店铺的信誉度和推荐物品.可根据商品名称收索该铺子此商品) 商品列表(显示本店铺所卖的商品) 拍卖(本店铺拍卖商品) 团购(本店团购商品) 店铺介绍 留言中心(会员对此店铺的意见及评价信息) 点评空间 点击进去点评专区 点评排行 (根据点击率进行排序评论) 热门点评 (根据回复最多的评论进行排序) 热门标签 最新点评 最多鲜花(根据所得花数进行排序,点击此评论可进行送花,支持,反对意见) 购物资讯 社区 二、主栏目导行: 首页 商品列表 展现出商品分总类和总类下的所有商品分类,及商品销售排行榜 特价商品 主要展现特价打折商品,方便会员查看购买. 团够商品 品牌专卖 展现某品牌下对应的所有该品牌物品,更利于对商品分类的查询 三、次栏目导航 登陆 会员登陆 免费注册 免费注册会员,将可以在本站购买商品及获取对应的积分和商品优惠折扣. 购物车 查看在本站所购买的所有商品和所需总价格. 留言 查看对本网站的所留意见,建议. 我的圈子 点击我的圈子将进入圈子主页 对圈子的搜索 (根据圈子名称查询对应圈子) 圈子排行 (根据圈子加入会员数进行排行) 热门圈子 (根据发贴数量进行排序) 热门标签 圈子热贴(圈子中回复帖子最多的来排序) 推荐圈子 圈子添加 选中圈子进入该圈子的详细信息页和该圈子下发表的所有帖子 缺货登记 会员在本网站查询不到所需商品可以在此登记 四、搜索 商品搜索 根据商品名称进行查询 高级搜索 根据关键字 名称 ,类别 商品编码 价格范围及说明进行关联查询 订单查询 根据定单号查询此订单详细信息 易想商城会员中心 一级栏目:我是买家 我是卖家 基本信息:会员头像,会员名字,会员等级,积分,我的圈子、店铺, 退出 交易管理、帐户管理、点评圈子、个人信息 一、 交易管理 我的购物车:显示还在购物车中的商品 订单中心:所有订单、需要支付的订单、处理中的订单、需要确认收货的订单、历史订单【仿当当的】 交易明细: 统计记录该会员的所有支出,收入交易记录 我的拍卖: 记录该会员在本网站拍卖的所有商品 我的团购: 该会员所参加团购物品. 二、 帐户管理 账户信息:记录本会员全部详细信息,及兑换点券. 兑换有效期,在线支付,修改信息,我的短消息等功能. 会员积分:统计该会员在本网站的积分,及积分详细记录. 收货地址管理: 查看和添加收货人的详细地址 充值卡充值:模仿动易功能,进行会员冲值. 暂存架: 所关注的所有物品存放处.方便过后购买及关注 收藏夹: 该会员喜欢商品收藏处方便关注浏览 三、 点评圈子 我的点评: 包括我的点评和我点标签, 我的点评主要包括会员所发表的所有评论及其他会员对所发表评论的支持反对查看. 我的圈子:包括发起的圈子和参与的圈子及相对圈子所发表帖子管理. 好友管理:包括好友管理、添加好友、创建新组、分组管理 站内短信:反馈留言、撰写短消息、草稿箱、收件箱、发件箱、废件箱 四、 个人信息 个人资料: 记录该会员所有详细信息 修改密码: 会员登陆密码修改 修改资料: 修改会员的基本信息 五、 功能说明之会员积分 功能说明: (1)获得积分: A、商品积分:是购买商城上赠送积分的商品,交易成功后就可以获得相应的积分。 B、注册积分:积分可以在后台设置多少,当注册并通过认证时可获得该积分; C、介绍奖励:介绍别人注册成为商城的注册会员,可以获得积分,积分数量可以后台设置。 D、购买积分:将商城的余额转换为积分。人民币与积分的对换比例后台设置 E、会员评价:会员评价积分,积分规则后台设定; (2)积分扣除:商城用户可使用积分来兑换商品,但用户所购买的含有积分的商品退货,商城系统会在用户自己的“积分管理”中扣除相应的积分,若用户的积分不足,则相应的在商品的退款金额中减去相应的金额,按照不足积分数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值