Java实验报告 - - - 网上订餐

更新时间:2024-07-06 01:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Java实训外卖管理系统

班级:本计科132班 组长: 成员:

2015年12月20日

1.概述

1.1主要思想

随着网络的迅速发展,,Internet的应用使用范围越来越广泛。人类社会的发展与知识的传递有着一种必然的联系,教育是人类传递知识的最直接最有效的方式。在21世纪这个信息高度发达,并且高速流通的时代,计算机的普及以及计算机网络技术的应用,让大量普通人能够有机会接触到比以往更多的知识。在这个日新月异的时代,不会使用网络与他人沟通,就意味着落后,被社会淘汰。同时随着身边的各种外卖的兴起,因此我们决定运用所学的Java、jsp、JDBC等知识的结合建立一个订餐精品网站。

Java课程设计报告

1.2主要内容

本次课程设计是运用JSP和数据的相结合,建立一个以网上订餐雏形的商业网站。这个网上购物系统所需要的功能从用户角度进行划分,可以分为前台用户功能和后台管理功能。用户功能主要提供给购物的用户使用,包括用户的注册、登录,购物车,查看订单等;后台管理功能主要提供给系统的管理人员使用,包括对用户、餐品、订单的管理。

用户注册后,登陆网站的用户可以在线查看、订购产品,并可在论坛中与其他用户进行交流及提出意见等。这些部分用JSP设计页面及连接,使用数据库来建立相关的表,以便于对其进行查看、修改或删除。

在网站设计中,管理员完成对网站的维护与管理的工作。使用数据库中权限的功能对管理员设置权限,管理员可以对餐品信息进行新增,修改及删除,也可以对订单信息进行处理,同时管理员也可以对用户信息进行管理

1.3主要目的

本次课程设计通过对JSP电子商务网站的设计与实现的研究,检查我们所学习的JSP、JDBC等在知识理解、在实际运用的熟练度的不足。

1. 帮助我们加深对JSP的理解,我们在课堂上学的都是基础理论知识,对于如何用程序语言来描述所学知识还是有一定难度。通过课程设计,我们可以真正理解其内涵。

2. 锻炼我们的逻辑思维,程序设计能直接有效地训练我们的创新思维、培养分析问题、解决问题能力。即使是一个简单的程序,依然需要我们有条不理的构思。

3.培养我们严谨认真的学习态度,在程序设计过程里,当我们输入程序代码的时候,如果不够认真或细心,那么可能就导致语法错误,从而无法得出运行结果。那么,这个我们反复调试,反复修改的过程,其实也是对我们认真严谨治学的一个锻炼。

1.4开发环境

工具:NetBeans IDE 8.0.1

数据库:SQLserver 2005

Web应用服务器:Glassfish 4.1

1.5运行环境

硬件:

处理器:400MHz以上

1

Java课程设计报告

内存: 128M以上 显卡: 8Mb以上 硬盘空间:4GB以上 软件:

window系统

NetBeans IDE 8.0.1, SQL server 2005, Java

IE浏览器、360浏览器等

2.需求分析

商务系统随着中国经济的高速发展发生了巨大的变化。专做营销的中小型企业随着百姓个人消费水平的增长迅速成长起来,但同时也带来了这一行业激烈的竞争。

2.1可行性分析

可行性分析是在全面调查基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、运行的方面进行分析和研究,以避免投资失误,保证新系统开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。这部分将从以下四个方面进行研究:技术可行性、经济可行性、操作可行性和调度可行性。

(1)技术可行性

因为计算机硬件的发展已经越来越快,现在计算机的性能已经可以胜任普通网站的web服务器。购买一台计算机作为订餐网站对于我们来说并不是问题。

JSP是Java在Internet/Intranet Web上的重要应用技术,可以和各种Java技术完好的结合在一起从而实现非常复杂的应用。因此得到了广泛的支持和承认,成为一种非常流行的网站开发技术。利用JSP技术可以建立先进、安全和跨平台的动态网站。鉴于JSP技术的成熟与广泛的使用,加以指导老师的帮助可以得到

2

Java课程设计报告

很多的技术支持。由于在学习数据库时一直以SQL Server作为例子,所以采用Microsoft SQL Server2005作为数据库的后台。

(2)经济可行性

对于我们来说这经济的可行性没有问题的。 (3)操作可行性

如今,计算机与网络已经非常地普及。特别是在企业信息化高需求与快速发展的时代,计算机应用已经成为企业员工必备的技能。由于这个课题是以PC机作为服务器的网站,营销商可以自己对网站进行操作和管理。

2.2业务需求分析

网站的制作已经不单单是把企业想要表达的内容摆放在网站上那么简单,当今的网站设计包含了更多的设计元素,给予浏览者更多的视觉享受。现在企业营销商需要用一些更新颖更有效的方式增强竞争力。建设一个宣传自身餐品形象的电子商务营销模式的网站是一种有效的方法。另外,通过电子商务网站,广阔自己的营销方式和市场,能够帮助企业营销商从鱼龙混杂的市场中脱颖而出,完善企业销售与服务的环节,最终提升企业的价值与经济效益。

2.3用户需求分析

这个网站以上面的业务需求为基础,进一步提出网站需要完成的以下任务:网站需要让供应商、客户以及浏览者能看到商城的信息及动态,另一个重要的内容就是能够显示出该商城现有的各类型餐品及其详细信息;由于消费者的需求在增长和变化,商城在面对面销售的基础上也要随之发展出相应的服务,如在线订购等技术。

另外,企业营销商除了能与普通客户一样浏览网站之外,还需要对网站进行管理。企业需要定期更新现有餐品的详细信息和商城动态,必要时还要对企业的介绍做更改。对于消费者通过网站提交的各种订单能够进行处理以方便销售。

2.4功能需求分析

根据上面的需求分析,需要设计出网站的前台与后台。用户在前台所浏览的内容,网站的后台需要能相应的做出更新或修改。根据以上的想法,设计出网站的功能:

前台用户相关功能主要包括:

1) 用户注册、登录; 2) 餐品展示 3) 购物车; 4) 订单查询; 5) 订单删除;

后台管理相关功能主要包括: 1) 添加餐品;

3

Java课程设计报告

2) 处理订单; 3) 查询用户信息; 4) 删除餐品; 5) 浏览管理员信息 6) 浏览餐品信息

将以上这些功能制作成网页以后,在其中分别互相建立连接,基本完成商城及用户对网站的要求。

2.4业务流程分析

将上面的需求分析进行归纳。得出网站的两个业务主角,即用户与管理员。然后制定他们的相关活动。对应网站的功能可以确定,用户活动对应网站前台业务流程;管理员活动对应网站的后台业务流程。在对业务流程分析中,尽量把业务主角的活动考虑全面,使系统的功能尽量完整。 2.4.1 前台业务流程分析

前台业务主要面向客户。用户可以浏览网站主页、餐品的介绍和一些服务信息。前台流程如图2.4.1所示。

存档 餐品信息浏览 浏览餐 品清单 提交 购物车 客户 订购 订单 查看订单 修改资料 修改 资料 留言 提交 订单留言板 添加留言 存档 存档 图2.4.1前台业务流程图

提交

2.4.2后台业务流程分析

在网站设计中,管理员完成对网站的维护与管理的工作。使用数据库中权限

4

Java课程设计报告

的功能对管理员设置权限,管理员可以对商品及商品分类的信息进行新增,修改及删除,也可以对订单信息进行查看、撤销、发货、完成等处理,同时管理员也可以对用户信息进行管理。后台流程图如图2.4.2所示

管理员 维护网站 网站信息 提交 查看信息 存档 添删餐品 餐品信息 提交 查看信息 存档

图2.4.2后台业务流程图

查看订单 受理订单 查看订单 提交订单 存档

3.总体设计

设计采用现在比较流行的JSP网站开发技术,并考虑到网站所处理的数据的结构特点及所学到的知识,应用Microsoft SQL Server2005数据库系统作为网站的后台数据库。系统实现了网站的基本功能,包括客户的注册登录、浏览网站信息、信息查询、购物并填写订单以及管理员对于网站的维护与更新。

结合这次设计的意义对Internet在商业中的应用与发展做一下介绍;然后针对整个系统进行分析,其中包括可行性分析、需求分析、系统的业务流程分析、数据分析等;在此基础上确定网站的功能目标,将网站的功能逐次划分,并细分出子功能模块;接下来设计并实现各个模块,在每个模块都能完成其功能的结果下将其综合成一个完整的系统。

3.1流程图

3.1.1前台购物流程图如图3.1.1所示

5

Java课程设计报告 未注册用户 浏览餐品 选择餐品 订购餐品 注册 已登录注册用户 登录 未登录注册用户 图3.1.1前台购物流程图

去购物车 去 结 算 提交订单

用户在前台可以浏览餐品,看到自己喜欢的餐品可以选择餐品,然后订购餐品,这时需要进行判断,如果是没有注册的用户,那么要先到注册页面注册,如果是注册了没有登录的用户,则跳转到登录页面,已经登录的用户则跳转到购物车页面,然后去结帐,然后提交订单。

3.1.2用户登录流程图如图3.1.2所示

图3.1.2用户登录流程图

用户登录,首先要有一个提供用户登录的表单。用户登录的表单应该嵌入整体的结构当中。在实际的应用中,可以这样设计,如果用户没有登录,则在页面中显示用户登录的选项,用户登录后,则可隐藏用户登录的选项而代之以用户的

6

Java课程设计报告

基本信息。

首先,用户要有一个用户名和密码。商务网站需要很高的稳定性和安全性,因此对用户名不允许使用恶意的代码作为用户名。同时对密码也要求保密,将密码加密后再存入数据库。另外,一个电子商务网站。用户的真实姓名是必不可少的。除此之外还需要用户的性别、E-MAIL、电话号码等。 3.1.3餐品管理流程如图3.1.3所示

图3.1.3 餐品管理流程图

在该功能里管理员可以进行不需要的餐品的删除,在这里管理员当然也可以浏览到餐品的详细信息。并且比普通用户在浏览餐品界面里所看到的餐品信息多一个该餐品在数据库中的ID。

3.1.4购物车流程如图3.1.4所示

7

Java课程设计报告

购物车 查询餐品 修改删除 调整餐品 满意否 返回

图3.1.4购物车流程图

购物车具体的实现可采用这种形式:定义一个购物车的类(Class)。

1.列出餐品的列表,使用户能够自由选择所需要的餐品。 2.当用户在点击“添加到购物车”的链接时,执行如下功能: 检查用户购物车类是否存在。如不存在,则建立,并注册这Session变量;在有用户购物车类存在的情况下,检查该类中是否有该餐品。如存在,则餐品数量相应加1;如没有该餐品,则将该餐品添加到该类中。

3.2功能模块图

3.2.1 前台功能模块图如图3.2.1所示

8

Java课程设计报告

图3.2.1 前台功能模块图

3.2.2 后台功能模块图如图3.2.2所示

图3.2.2 后台功能模块图

3.3注意事项

9

Java课程设计报告

由于我们能力有限,如遇到疑问或者不解的地方,请给于我们指出或者建议,我们表示感谢并修改不足之处。

4.详细设计

4.1网站首页

界面截图:

源代码如下:

<%@page import=https://www.bwwdw.com/plus/\<%@page import=https://www.bwwdw.com/plus/\

<%@page import=https://www.bwwdw.com/plus/\<%@page import=https://www.bwwdw.com/plus/\<%@ page language=https://www.bwwdw.com/plus/\

<%@ tagliburi=https://www.bwwdw.com/plus/\<%

//变量声明

java.sql.ConnectionsqlCon; //数据库连接对象 java.sql.StatementsqlStmt; //SQL语句对象 java.sql.ResultSetsqlRst; //结果集对象

java.lang.StringstrCon; //数据库连接字符串 java.lang.String strSQL; //SQL语句 int intPageSize; //一页显示的记录数 int intRowCount; //记录总数

10

Java课程设计报告

int intPageCount; //总页数 int intPage; //待显示页码 java.lang.String strPage;

int i; //设置一页显示的记录数 intPageSize = 8; //取得待显示页码 strPage=request.getParameter(https://www.bwwdw.com/plus/\

if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据

intPage=1; }

else{//将字符串转换成整型

intPage=java.lang.Integer.parseInt(strPage); if(intPage<1)

intPage=1; }

//装载JDBC驱动程序

sqlCon=DBConnection.getConnction();

//创建一个可以滚动的只读的SQL语句对象

sqlStmt=sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); //准备SQL语句

strSQL=https://www.bwwdw.com/plus/\ fromfoodshttps://www.bwwdw.com/plus/\ //执行SQL语句并获取结果集

sqlRst= sqlStmt.executeQuery(strSQL); //获取记录总数 sqlRst.last();

intRowCount= sqlRst.getRow(); //记算总页数

intPageCount = (intRowCount+intPageSize-1) intPageSize;

//调整待显示的页码

if(intPage>intPageCount) intPage = intPageCount; List foodsList = new ArrayList(); %>

餐品展示

11

Java课程设计报告



<%

if(intPageCount>0){

//将记录指针定位到待显示页的第一条记录上

sqlRst.absolute((intPage-1) * intPageSize + 1); //显示数据 i = 0;

while(i

12

width=https://www.bwwdw.com/plus/\width=https://www.bwwdw.com/plus/\Java课程设计报告

food.setDescription(sqlRst.getString(https://www.bwwdw.com/plus/\ food.setFoodImage(sqlRst.getString(https://www.bwwdw.com/plus/\ foodsList.add(food); sqlRst.next(); i++; }

session.setAttribute(https://www.bwwdw.com/plus/\} %> 点击图片查看内容 ${currentFood.foodName} 现价:人民币${currentFood.foodPrice}元

13

Java课程设计报告

编号: ${currentFood.foodID}

第<%=intPage%>页  共<%=intPageCount%>页  <%if(intPage<%}%>  <%if(intPage>1){%>

href=https://www.bwwdw.com/plus/\上一页<%}%>

14

Java课程设计报告

4.2用户注册

界面截图:

源代码:

<%@ page language=\<%@ page import=\

用户注册


4.3餐品详情

界面截图:

17

Java课程设计报告

源代码:

<%@ page language=\

<%@ taglib uri=\

${foodToAdd.foodName}

18

Java课程设计报告


${foodToAdd.foodName} 人民币0元

19

Java课程设计报告

${foodToAdd.remark}

详细资料


https://www.bwwdw.com/plus/\

${foodToAdd.description}


4.4管理员及后台

4.4.1后台首页

20

Java课程设计报告

界面截图:

源代码:

<%@ page language=https://www.bwwdw.com/plus/\

欢迎您来到易淘食后台管理,祝您心情愉快!   

21

Java课程设计报告

餐品添加:

源代码:

<%@ page language=https://www.bwwdw.com/plus/\<%@ page import=https://www.bwwdw.com/plus/\

<% String s=(String)session.getAttribute(https://www.bwwdw.com/plus/\ if(s==null) { %>

添加餐品

22

Java课程设计报告


23

Java课程设计报告

24

Java课程设计报告

Adminfoodsform.Jsp

<%@page import=\<%@page import=\<%@page import=\<%@page pageEncoding=\<%@ page language=\<%

//变量声明

java.sql.Connection sqlCon; //数据库连接对象 java.sql.Statement sqlStmt; //SQL语句对象 java.sql.ResultSet sqlRst; //结果集对象

java.lang.String strCon; //数据库连接字符串 java.lang.String strSQL; //SQL语句 int intPageSize; //一页显示的记录数 int intRowCount; //记录总数 int intPageCount; //总页数 int intPage; //待显示页码 java.lang.String strPage; int i;

//设置一页显示的记录数 intPageSize = 4; //取得待显示页码

strPage = request.getParameter(\

if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据

intPage = 1; }

else{//将字符串转换成整型

25

Java课程设计报告

intPage = java.lang.Integer.parseInt(strPage); if(intPage<1) intPage = 1; }

//装载JDBC驱动程序

sqlCon=DBConnection.getConnction();

//创建一个可以滚动的只读的SQL语句对象

sqlStmt=sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); //准备SQL语句

strSQL = \ * from foods\ //执行SQL语句并获取结果集

sqlRst = sqlStmt.executeQuery(strSQL); //获取记录总数 sqlRst.last();

intRowCount = sqlRst.getRow(); //记算总页数

intPageCount = (intRowCount+intPageSize-1) / intPageSize; //调整待显示的页码

if(intPage>intPageCount) intPage = intPageCount; %>

餐品浏览

<% String s=(String)session.getAttribute(\ if(s==null) { %>

26

Java课程设计报告

color=\餐品信息表 <%

if(intPageCount>0){

//将记录指针定位到待显示页的第一条记录上

sqlRst.absolute((intPage-1) * intPageSize + 1); //显示数据 i = 0;

while(i

27

Java课程设计报告

<% sqlRst.next(); i++; } }

28

Java课程设计报告

%>

第<%=intPage%>页  共<%=intPageCount%>页  <%if(intPage<%}%>  <%if(intPage>1){%>

href=\上一页<%}%>

<%

//关闭结果集 sqlRst.close();

//关闭SQL语句对象 sqlStmt.close(); //关闭数据库 sqlCon.close(); %>

4.5网站所需要的bean类

购物车bean:

package com.restrant.bean; import java.io.Serializable;

public class CartItemBean implements Serializable { private FoodBean food; //

private int quantity; // CartItemBean public CartItemBean(FoodBean foodToAdd, int number) { food = foodToAdd; quantity = number; } public FoodBean getFood() { return food; } public void setFood(FoodBean food) { this.food = food; } public int getQuantity() { return quantity; }

29

Java课程设计报告

public void setQuantity(int quantity) { this.quantity = quantity; } }

餐品的bean:

package com.restrant.bean; public class FoodBean { private String foodID;

private String foodName; private String remark; private int foodPrice; private String description; private String foodImage; public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getFoodID() { return foodID; }

public void setFoodID(String foodID) {

this.foodID = foodID; }

public String getFoodImage() {

return foodImage; }

public void setFoodImage(String foodImage) {

this.foodImage = foodImage; }

public String getFoodName() {

return foodName; }

public void setFoodName(String foodName) {

this.foodName = foodName; }

public int getFoodPrice() {

return foodPrice; }

30

Java课程设计报告

public void setFoodPrice(int foodPrice) { this.foodPrice = foodPrice; }

public String getRemark() { return remark; }

public void setRemark(String remark) { this.remark = remark; }

}

用户登录的bean:

package com.restrant.bean; public class LoginBean { private String loginName; private String loginPass; @return loginName public String getLoginName() { return loginName; }

@param loginName public void setLoginName(String loginName) { this.loginName = loginName; }

@return loginPass public String getLoginPass() { return loginPass; }

@param loginPass public void setLoginPass(String loginPass) { this.loginPass = loginPass; } }

订单的bean:

package com.restrant.bean; public class OrderBean {

private String gustid; private String customerName; private String address; private String zipCode; private String telephone;

31

Java课程设计报告

private String movePhone; private String notice; private double totalPrice; @return totalPrice public double getTotalPrice() { return totalPrice; }

param totalPrice @param totalPrice public void setTotalPrice(double totalPrice) { this.totalPrice = totalPrice; }

@return address public String getAddress() { return address; }

param address @param address public void setAddress(String address) { this.address = address; }

@return customerName public String getCustomerName() { return customerName; }

param customerName @param customerName public void setCustomerName(String customerName) { this.customerName = customerName; }

public String getgustid() { return gustid; }

param customerName @param id public void setgustid(String id) { this.gustid = id; }

@return movePhone public String getMovePhone() { return movePhone; }

param movePhone

32

Java课程设计报告

@param movePhone public void setMovePhone(String movePhone) { this.movePhone = movePhone; }

@return notice public String getNotice() { return notice; }

param notice @param notice public void setNotice(String notice) { this.notice = notice; }

@return telephone public String getTelephone() { return telephone; }

param telephone @param telephone public void setTelephone(String telephone) { this.telephone = telephone; }

@return zipCode public String getZipCode() { return zipCode; }

param zipCode @param zipCode public void setZipCode(String zipCode) { this.zipCode = zipCode; } }

管理员bean:

package com.restrant.bean; public class adminloginBean { private String loginName;

private String loginPass; @return loginName public String getLoginName() { return loginName; }

@param loginName

33

Java课程设计报告

public void setLoginName(String loginName) { this.loginName = loginName; }

@return loginPass public String getLoginPass() { return loginPass; }

@param loginPass public void setLoginPass(String loginPass) { this.loginPass = loginPass; } }

注册bean:

package com.restrant.bean; public class adminzhuceBean {

private String adminid; private String adminname; private String adminpassword; public String getId() { return adminid; }

@param adminid public void setId(String adminid) { this.adminid =adminid; }

public String getadminName() { return adminname; }

@param adminname public void setadminName(String adminname) { this.adminname = adminname; }

@return loginPass public String getPass() { return adminpassword; }

@param adminpassword public void setPass(String adminpassword) { this.adminpassword =adminpassword; } }

34

Java课程设计报告

4.6链接数据库部分代码

package com.restrant.DAO;

import java.sql.Connection;

import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DBConnection { @return Connection public static Connection getConnction() { Connection dbConnection = null; try { dbConnection=java.sql.DriverManager.getConnection(\:1433;DatabaseName=shop \ } catch (SQLException e) { } return dbConnection; } public static void closeConnection(Connection dbConnection) { try { if (dbConnection != null && (!dbConnection.isClosed())) { dbConnection.close(); } } catch (SQLException sqlEx) { } } public static void closeResultSet(ResultSet res) { try { if (res != null) { res.close(); res = null; } } catch (SQLException e) { } } public static void closeStatement(PreparedStatement pStatement) { try { if (pStatement != null) { pStatement.close(); pStatement = null; } } catch (SQLException e) { }

35

Java课程设计报告

}

public static void main(String args[]) {

DBConnection.getConnction(); System.out.print(\ } }

链接数据库部分代码: GetDataBean.Java

package com.restrant.DAO; import java.sql.Connection;

import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.*;

import com.restrant.bean.FoodBean; public class GetDataBean { private Connection connection; private PreparedStatement titlesQuery; private ResultSet results; public List getFoods() { List foodsList = new ArrayList(); try {

connection=DBConnection.getConnction();

titlesQuery = connection .prepareStatement(\ + \ + \ ResultSet results = titlesQuery.executeQuery(); while (results.next()) { FoodBean food = new FoodBean(); food.setFoodID(results.getString(\ food.setFoodName(results.getString(\ food.setRemark(results.getString(\ food.setFoodPrice(results.getInt(\ food.setDescription(results.getString(\ food.setFoodImage(results.getString(\ foodsList.add(food); } } catch (NullPointerException|SQLException exception) { }

36

Java课程设计报告

}

}

finally { try { if (results != null) { results.close(); results = null; } } catch (SQLException e) { } try { if (connection != null && (!connection.isClosed())) { connection.close(); } } catch (SQLException sqlEx) { } }

return foodsList;

5.主要技术

5.1 JSP技术

本系统采用JSP技术开发。因为JSP与同类的CGI、ASP、PHP相比有着独特的优势。JSP是Sun属下Java soft公司推出的技术,使用的Java语言是ASP、PHP和JSP三者中最新的技术。它以Java Servlet技术为基础,又在许多方面作了改进,并且充分借鉴了ASP和PHP一些合理的地方。它的平台无关性胜过ASP技术,而强大的JDBC数据库接口规范又优于PHP技术,而且JSP技术是以JAVA语言为基础的,可以使用JavaBeans组件和自定义标签,因此具有良好的扩展性。

总的来说,JSP业已成为目前主流的动态网页开发技术之一。JSP的优点如下:

(1)借助JSP技术,Web网页设计人员可以使用HTML或者XML标记来设计和风格化Web页面,使用JSP标记来生成动态Web页面。在服务器端,JSP引擎负责解释JSP标记和脚本,生产请求的内容,然后将结果以HTML页面等形式发送回浏览器。这样开发者可以保护自己的核心代码,同时可以保证任何Web浏览器的高度兼容性。

(2)JSP页面可借助可重用的、跨平台的组件(JavaBean),来执行Web应用所要求的极为复杂的业务处理。能够共享和交换调用一般操作的组件,或者让这些组件被别的开发人员或者开发团队所使用。

(3)通过开发定制化的标签库等方法,JSP技术可以支持动态扩展技术。 (4)作为Java2的一个重要组成部分,JSP技术能够支持高度复杂的、基

37

Java课程设计报告

于Web的企业级应用。JSP技术可以轻松地与现有多种应用体系架构整合,可以充分利用已有开发工具和技巧,并扩展到企业级分布式应用环境。

此外,JSP技术无论是在跨平台特性、运行效率、企业级软件开发还是商业支持方面都具有优势,从而使其成为目前和未来进行动态网页开发的最佳工具之一。

5.2Microsoft SQL Server2005

这次网站的设计选用Microsoft SQL Server 2005作为后台数据库。

Microsoft SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。

Microsoft SQL Server 2005 数据引擎是该企业数据管理解决方案的核心。此外 Microsoft SQL Server 2005 结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web services 和移动设备将数据应用推向业务的各个领域。

与 Microsoft Visual Studio、Microsoft Office System 以及新的开发工具包(包括 Business Intelligence Development Studio)的紧密集成使 Microsoft SQL Server 2005 与众不同。无论您是开发人员、数据库管理员、信息工作者还是决策者,Microsoft SQL Server 2005 都可以为您提供创新的解决方案,帮助您从数据中更多地获益。

5.3连接数据库与JavaScript

JDBC(Java Database Connectivity)是sun公司制定的Java链接数据库技术。在安装好数据库后JSP并不能直接与数据库连接[8],这里选择利用第三方JDBC驱动程序连接数据库。在项目开发中,如果频繁在JSP页面中使用数据库连接函数,释放函数进行操作的话,势必会非常麻烦,而且代码的冗余量也很大,页面很多的时候维护也会非常麻烦,页面上到处都是数据库连接和释放代码。因此,可以利用公共数据库访问连接JavaBean的开发。通过将数据库连接函数代码,释放函数代码等封装在JavaBean中,可以减少非常多的代码编程工作,提高代码可维护性。

在加载了JDBC驱动程序,建立了数据库的URL后,创建一个Condb.java的文件,通过调用DriverManager类的getConnection方法与db_Business数据库连接。在getConnection方法的实现中,声明数据库名称为db_Business。这样,在其他的Java文件和页面中声明调用或包含了Condb.java文件后,都可以对数据库操作了。

JavaScript也叫小脚本语言,是一种基于对象和事件驱动并具有安全性能的脚本语言,使用它的目的是与HTML超文本标识语言、Java 脚本语言一起实现在一个网页中链接多个对象,与网络客户交互作用,从而可以开发客户端的应用程序。它是通过嵌入或调入在标准的HTML语言中实现的[9]。

38

Java课程设计报告

6.总结

现在越来越多的中小型企业已经成为未来经济增长的关键动力。企业的发展需要跟随现代科技的进步。建设一个具有电子商务功能的网站不仅能打破时空的界限,而且能有效的降低销售成本,提高企业的竞争能力。因此设计并开发一个具有电子商务功能的门户网站具有非常重要的意义。 通过这次课程设计,使我们对网站开发有了更为深刻的理解,积累了一定的网站建设经验。虽然在之前servlet中接触到了网页制作,但是只是比较单一页面的设计,没有综合一个完整的应用项目的各情况。而在这次课程设计中,通过实际调查研究与编写程序,使自己理论与实践相结合,熟悉了编程环境,掌握了一些社会经验和编程经验,对自己今后的工作和学习有着良好的促进作用。在开发过程中遇到了许多不可预知的困难,但最终在组员的配合下一一解决了。在解决了各种难题的同时,我们也学到了许多技术知识和开发技巧,相信这些知识和技巧将在我们的以后工作和学习中发挥作用。

当然,由于时间有限,我们能力的不足以及开发经验的缺乏,本系统还有许多需要改进的地方,如餐品的查询功能比较简单,我们可以充分的利用SQL语句来开发功能更为强大的查询系统。此外,在以后系统运行的过程中,可能还会遇到些问题,将会在以后有可能的情况下进一步改进系统功能。

在这1个月时间里,在我们的合作下,我们完成了本次课程设计,但更重要的是对知识的积累,通过调研阶段的系统学习和在以后设计过程中对细枝末节的补充和对技巧的掌握,使我们受益非浅,现在我们已经有信心设计完成一个网站项目。但另一方面,我们也发现有很多知识需要学习,在IT行业里,技术日新月异,为了在这个行业里立足,必须领会最新的思想,学习最新的知识,掌握最新的技术,迎合最新的趋势。在今后的学习生活上,我们将会努力学习、不断丰富自己。

7.参考文献

1. 郝玉龙.JAVA EE编程技术(第2版),北京:清华大学出版社;北京交

通大学出版社,2013.6。

2. 范明叶阳东职为梅.数据库原理教程,北京:科学出版社,2008。 3. 王家华.软件工程[M],沈阳:东北大学出版社,2005,46-199。 4. 萨师煊,王珊.数据库系统概论(第三版)[M],北京:高等教育出版社,

2000,45-149。

5. 黄理,李积善,曹林有,张勇.用JSP轻松开发Web网站(第一版)[M].

北京:北京希望电子出版社.2001.100~152。

6. 邹竹彪.JSP网络编程从入门到精通[M],北京:清华大学出版社,2007,

329-548。

39

本文来源:https://www.bwwdw.com/article/ht4.html

Top