(一)、经常用的过滤器
1
package com.ascent.util;
2
3
import java.io.IOException;
4
import javax.servlet.Filter;
5
import javax.servlet.FilterChain;
6
import javax.servlet.FilterConfig;
7
import javax.servlet.ServletException;
8
import javax.servlet.ServletRequest;
9
import javax.servlet.ServletResponse;
10
import javax.servlet.UnavailableException;
11
12
/** *//**
13
* Example filter that sets the character encoding to be used in parsing the
14
* incoming request
15
*/
16
public 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;2

3
import java.io.IOException;4
import javax.servlet.Filter;5
import javax.servlet.FilterChain;6
import javax.servlet.FilterConfig;7
import javax.servlet.ServletException;8
import javax.servlet.ServletRequest;9
import javax.servlet.ServletResponse;10
import javax.servlet.UnavailableException;11

12

/** *//**13
* Example filter that sets the character encoding to be used in parsing the14
* incoming request15
*/16

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

被折叠的 条评论
为什么被折叠?



