victory的博客

长安一片月,万户捣衣声

0%

基于JavaWeb的网上购物商城 | 菜单栏信息展示

菜单栏信息展示

实现功能:在网站首页的菜单栏显示所有的商品分类(登录/不登录状态下都会显示)—使用Filter实现
注:
(1)本功能的实现与首页热门商品展示类似
(2)需要将web.xml的LoginFilter的url-pattern路径配置为/*

LoginFilter.java
在实现首页热门商品展示的代码中进行功能添加(在LoginFilter.java的doFlter方法中添加如下码)

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        // TODO Auto-generated method stub
        try {
            //收集首页数据
            ProductService ps = new ProductService();
            List<Product> list = ps.findProList();
            
            //收集导航栏信息
            List<Category> clist = ps.findCateList();
            
            request.setAttribute("clist", clist);
            request.setAttribute("list", list);

            chain.doFilter(request, response);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

创建Category.java

package com.oracle.bean;

public class Category {
    private String cid;
    private String cname;
    public Category() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Category(String cid, String cname) {
        super();
        this.cid = cid;
        this.cname = cname;
    }
    public String getCid() {
        return cid;
    }
    public void setCid(String cid) {
        this.cid = cid;
    }
    public String getCname() {
        return cname;
    }
    public void setCname(String cname) {
        this.cname = cname;
    }
    
}

ProductService.java
在实现首页热门商品展示的代码中进行功能添加(在ProductService.java中添加如下代码)

public List<Category> findCateList() throws SQLException {
        // TODO Auto-generated method stub
        ProductDao pd = new ProductDao();
        List<Category> clist = pd.findCateList();
        return clist;
    }
    

ProductDao.java
在实现首页热门商品展示的代码中进行功能添加(在ProductDao.java中添加如下代码)

public List<Category> findCateList() throws SQLException {
        // TODO Auto-generated method stub
        QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
        
        String sql = "select * from category";
        
        List<Category> clist = qr.query(sql, new BeanListHandler<>(Category.class));
        return clist;
    }

header.jsp
修改header.jsp中的对应代码(如下所示)

<ul class="nav navbar-nav">
    <c:forEach items="${clist}" var="cate">
        <li><a href="#">${cate.cname}</a></li>
    </c:forEach>
</ul>