文档库 最新最全的文档下载
当前位置:文档库 › JSP报告

JSP报告

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 浏览某类所有物品界面

查看某中类所有商品界面主要代码如下:

background="images/bodybg.jpg">


cellspacing="1" bgcolor="#CCCCCC">

当前种类是:

物品名起拍时间最高价格所有者物品备注
<

ahref='viewDetail.do?itemId='>

property="name"/>

其中,使用Struts的logic及bean标签循环显示商品分类信息。在遍历中用bean:write元素输出。

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

{ }