菜单栏信息展示
实现功能:在网站首页的菜单栏显示所有的商品分类(登录/不登录状态下都会显示)—使用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>