1
2
目录
目录 (2)
1 SSH开发程序 (3)
1.1 Struts1 (3)
1.2 Struts2 ......................................................... 错误!未定义书签。
1.3 JfreeChart (5)
1.4 JasperReport (6)
1.5 Hibernate (7)
1.6 Spring (8)
1.7SSH (9)
2 网上拍卖网站的设计 (10)
网站数据库设计 (10)
3 网上拍卖网站的实现 (12)
3.1实现浏览拍卖物品种类页面功能实现 (12)
3.2实现浏览拍卖物品页面功能 (17)
3.3实现查看物品详细信息及出价界面功能 (23)
4 结论 (28)
第一章程序运行
3 1.1Struts1:
运行hello.jsp页面,点击按钮,发送hello.do请求,运行结果:
点击“提交”按钮后出现以下界面:
1.2.Struts2
运行login.jsp页面,输入正确显示welcome.jsp,否则显示login.jsp
4 输入不正确的情况下会回到该界面:
输入正确时,会显示以下界面:
1.3. JfreeChart
5
运行showChart.jsp:
单击“显示线性图表”可以出现以下界面:
单击“显示柱状图表”可以出现以下界面:
1.4. JasperReport
6
运行showReport.jsp,显示以下界面:
点击“显示报表”按钮,结果如图
1.5.Hibernate
7
运行test.jsp,显示结果如图
运行login.jsp,出现下图:
点击按钮“显示学生信息”,显示如图:
8
并且可以对学生信息进行修改、删除、添加等功能。
1.6.Spring
运行login.jsp页面,出现以下界面:
输入用户名:xyz,密码:123,登录结果如图:(若用户名密码不正确,直接回到原界
面)
1.7.ssh
9
在浏览器地址栏内发送showXs.action请求,结果如图
点击“提交”出现以下界面:
第二章网上拍卖网站的设计
10
该数据库的数据逻辑结构图如下表所示:
表3-3-1 auction_user用户信息表
如表4-2所示为商品分类信息表,记录了所有商品分类的信息。
表3-3-2 kind商品子分类信息表
如表4-3所示为记录用户所发布的商品的详细信息的表。
表中item_id为主键设为自动增长。owner_id为auction_user表中user_id的外键,
kind_id为kind表中kind_id的外键,csub为subsort表中ssid的外键,这些外键能保证
商品的完整性。cend表示商品的拍卖是否已经结束。
表3-3-3 item商品信息表
11
如表4-4所示为记录用户对商品出价情况的信息表。
表中bid_id为主键设为自动增长。item_id为商品表item中item_id的外键,这样可
以保证用户的出价都是针对已经发布的商品发出的。user_id为出价的用标识。howmuch代
表用户对此商品出了多少钱。
表3-3-4 bid用户出价信息表
如表4-5所示为记录用户发布的商品的状态的信息表。
表中state_id为主键设为自动增长。
表3-3-5 state用户出价信息表
12
第三章ssh框架学习
本次主要做了一个网上拍卖网站,运用ssh框架实现以下功能:
3.1实现浏览拍卖物品种类页面功能实现
(1)表示层实现
点击浏览拍卖物品种类链接时,就直接将请求转发给动作
viewKind.do处理。它由Struts的Action类的子类实现,在其中加入
业务逻辑并将主页实际所需要的数据从数据库中提取出来保存到
request对象或其他对象中,最后转向实际的主页面(页面名称为“viewKind.jsp”)即可。在struts-config.xml文件中的设置如下: r="method"> 点击主页导航栏上浏览拍卖物品链接即可进入浏览物品种类页 面。如图3-1所示 图3-1 浏览物品种类界面 商品分类区动态实现代码如下: 13 name="kind" property="kindName"/>种类名
property="kindDesc"/>
其中,使用Struts的logic及bean标签循环显示商品分类信息。
在遍历中用bean:write元素输出。
(2)实现业务逻辑
浏览拍卖物品种类页面的显示涉及到得业务逻辑为
org.yeeku.struts包下的ViewKindAction类,他用于从数据库中调出数
据供页面显示。其中涉及商品类别的分类显示代码如下:
import javax.servlet.http.HttpSession;
import java.util.List;
import org.yeeku.service.AuctionManager;
14
import org.yeeku.exception.AuctionException;
import org.yeeku.struts.base.BaseAction;
/**
* @author shm songhongmei_529@https://www.wendangku.net/doc/da13715081.html,
* @version 1.0
* 处理商品种类显示动作
*/
public class ViewKindAction extends BaseAction
{
public ViewKindAction()
{
}
public ActionForward execute(ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws AuctionException
{
List kinds = mgr.getAllKind();
request.setAttribute("kinds" , kinds);//将找到的对象保存
到request对象再传入
request.setAttribute("errMsg" ,
15 request.getAttribute("errMsg"));
return mapping.findForward("success");
}
}
其中BaseAction封装了系统所有逻辑功能的实现类
org.yeeku.service包下的AuctionManager接口,其实现类为AuctionManagerImpl。主要包含的方法如下:
List getItemByWiner(int winerId) throws AuctionException;//根据赢
取者查询物品
List getFailItems() throws AuctionException;//查询全部流拍的物品
Integer validLogin(String username , String pass) throws AuctionException;//根据用户名,密码验证登陆是否成功
List getBidByUser(int userId) throws AuctionException;//查询用户
的全部出价
List getItemsByOwner(int userId) throws AuctionException;//根据
用户id查找目前仍在拍卖中的物品
List getAllKind()throws AuctionException;//查询全部种类
void addItem(String name , String desc , String remark , double
initPrice , int avail , int kind , int userId) throws AuctionException;//添加
物品
void addKind(String name , String desc ) throws AuctionException;//
添加种类
16
List getItemsByKind(int kindId) throws AuctionException;//根据产
品分类,获取当前拍卖的全部商品
Sring getKind(int kindId) throws AuctionException;//根据分类id,
获取种类名
ItemBean getItem(int itemId) throws AuctionException;//根据物品
id,获取物品
void addBid(int userId , int itemId , double bidPrice)throws AuctionException;//增加新的竞价
void updateWiner()throws AuctionException;//根据时间来修改物
品的赢取者
void addAuctionUser(String username, String userpass, String email) throws AuctionException;//增加新的用户
(3)实现数据访问层
涉及到显示商品种类的数据访问层方法AuctionManager的
getAllKind()方法,并在该方法中调用为KindDao的findAll()方法,实现
代码如下:
public List getAllKind() throws AuctionException
{
try
{
return kindDao.findAll(); //通过调用此方法
}
17
catch (Exception e)
{
log.debug(e.getMessage());
throw new AuctionException("底层业务异常,请重
新试");
}
}
public List findAll()
{
return getHibernateTemplate().find("from Kind");
}
其中使用的HQL语句为“from Kind”,即从kind数据表中取出所
有记录。
3.2实现浏览拍卖物品页面功能
(1)表示层实现
通过查看商品种类界面,点击某一种类链接时,就直接将请求转
发给动作viewItem.do处理。最后转向实际的主页面(页面名称为“viewItem.jsp”)即可。在struts-config.xml文件中的设置如下: type="org.springframework.web.struts.DelegatingActionProxy" scope="request" validate="false" 18 parameter="method">
点击主页导航栏上浏览拍卖物品链接即可进入浏览物品种类页
面。如图3-2所示。
图3-2 浏览某类所有物品界面
查看某中类所有商品界面主要代码如下:
(2)实现业务逻辑 浏览某一种类拍卖物品页面的显示涉及到得业务逻辑为 org.yeeku.struts包下的ViewItemAction类,他用于从数据库中调出数据供页面显示。其中涉及商品类别的分类显示代码如下:import java.util.List; import org.yeeku.service.AuctionManager; import org.yeeku.exception.AuctionException; import org.yeeku.struts.base.BaseAction; import org.yeeku.model.*; /** * @author shm songhongmei_529@https://www.wendangku.net/doc/da13715081.html, * @version 1.0 * 处理商品显示动作 */ public class ViewItemAction extends BaseAction { public ViewItemAction() { } 相关文档
|