(一)、經(jīng)常用的過(guò)濾器
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
// 傳遞控制到下一個(gè)過(guò)濾器
33
chain.doFilter(request, response);
34
}
35
36
public void init(FilterConfig filterConfig) throws ServletException
{
37
}
38
}
39
(二)、購(gòu)物車(chē)類(lèi)代碼
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對(duì)應(yīng)的對(duì)象方法
* @param pid
* @return true:有 false:無(wú)
*/

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);
}

/** *//**
* 根據(jù)id刪除hashmap中的product
* @param pid
*/

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

/** *//**
* 修改hashmap中pid對(duì)應(yīng)product的質(zhì)量quantity
* @param pid
* @param quantity
*/

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

/** *//**
* 清除購(gòu)物車(chē)
*/

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

(三)、分頁(yè)算法
//分頁(yè)類(lèi)
package com.ascent.util;
import java.util.*;

/** *//**
* @author Administrator
* @version 負(fù)責(zé)頁(yè)面控制的 JavaBean
*/

public class PageBean
{
public int currentPage; // 當(dāng)前頁(yè)數(shù)
public int totalPage; // 總頁(yè)數(shù)
public int totalRows; // 總行數(shù)
public int rowsPage = 5; // 每頁(yè)顯示多少行
public ArrayList data; // 封裝頁(yè)面顯示的數(shù)據(jù)

public PageBean()
{}

public void countTotalPage()
{ // 計(jì)算總頁(yè)數(shù)

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();
}
}




// 分頁(yè)算法

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;

}

// 分頁(yè)算法


//實(shí)現(xiàn)
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="pageProductuserManagerAction.action" method="post">
<%@ include file="page.jsp" %>
</form>
<%} %>

//page.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<script language="JavaScript">

function Jumping()
{
document.pageForm.submit();
}

function gotoPage(pagenum)
{
//alert(pagenum);
//alert(document.pageForm.jumpPage.value);
document.pageForm.jumpPage.value = pagenum;
document.pageForm.submit();
}
</script>
<table>
<tr>
<td>每頁(yè)<%=pBean.rowsPage%>行</td>
<td>共<%=pBean.totalRows%>行</td>
<td>第<%=pBean.currentPage%>頁(yè)</td><td>共<%=pBean.totalPage%>頁(yè)</td>
<td>

<%if(pBean.currentPage==1)
{out.print("首頁(yè) 上一頁(yè)");}else
{%>
<a href="javascript:gotoPage(1)">首頁(yè)</a>
<a href="javascript:gotoPage(<%=pBean.currentPage-1%>)">上一頁(yè)</a>
<%
}
%>

<%if(pBean.currentPage==pBean.totalPage)
{out.print("下一頁(yè) 尾頁(yè)");}else
{%>
<a href="javascript:gotoPage(<%=pBean.currentPage+1%>)">下一頁(yè)</a>
<a href="javascript:gotoPage(<%=pBean.totalPage%>)">尾頁(yè)</a>
<%} %>
</td>
<td>
轉(zhuǎn)到第<select name="jumpPage" onchange="Jumping()">

<%for(int i=1;i<=pBean.totalPage;i++)
{

if(i==pBean.currentPage)
{
%>
<option selected value=<%=i%>><%=i%></option>
<%
}
else

{
%>
<option value=<%=i%>><%=i%></option>
<%
}
}
%>
</select>頁(yè)
</td>
</tr>
</table>
這個(gè)ssh項(xiàng)目的配置文件