admin 管理员组

文章数量: 887031


2024年1月13日发(作者:matlab软件电脑安装教程)

Java Web开发(JSP)课程设计

Java Web开发(JSP)

课程设计报告

题 目:报价管理系统

设 计 者:XXX

专业班级:软件

学 号:XXXXX

指导教师: XXXXX

2012 年 12 月 26 日

河南理工大学计算机学院

Java Web开发(JSP)课程设计

报价管理系统报告书

一、系统需求背景

随着国家队采购项目的不断规范,通过招标的方式来进行商品销售已经成为主流。由于生产厂家数以千计,其产品更是种类繁多,而且商品的数量、报价和规则也是不断更新,手工的预算报价已经难以胜任。报价管理系统的产生很好的解决了这一难题,能够非常快熟的生成报价方案,具有维护方便、操作简单等特点。

该报价管理系统采用JSP+JDBC+MySQL来实现,同时还将使用MVC设计模式。其中视图层采用JSP来实现,控制层则采用Sevlert来实现,并通过JDBC来连接MySQL数据库。

该系统包括五个模块,分别是客户管理模块、产品管理模块、产品类型管理模块、订单模块以及报价模块。

其中,在数据库方面,我们需要建立数据库表,包括客户表、产品类型表、产品表、订单表和报价表。

二、系统所涉及的一些知识

2.1 JSP技术

JavaServer Pages 技术是一个纯Java平台的技术,它主要用来产生动态网页内容。在传统的网页HTML文件中加入Java程序片段和JSP标记,就构成了JSP网页。Web服务器接收到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。JSP是基于Java Servlet以及整个Java体系的Web开发技术,利用这一技术可以建立先进、安全、快速和跨平台的动态网页。

JSP在多个方面加速了动态的Web页面的开发:

1

Java Web开发(JSP)课程设计

程序写一次,到处可以运行。JSP在设计时,充分考虑到应用平台的无关性。依赖于Java的可移植性,JSP得到目前许多流行操作平台的支持,可在Apache、NetScape、IIS等服务器上执行。

执行速度快。JSP页面只需编译一次转化为Java字节代码,其后一直驻留于服务器内存中,加快了对JSP页面的响应速度。若不考虑JSP页面第一次编译所花的时间,则JSP的响应速度要比ASP快得多。

Java的优势。JSP技术是用Java语言作为脚本语言的。跨平台、成熟、健壮、易扩充的Java技术使得开发人员的工作在其他方面也变得容易和简单。Java语言通过提供防止内存泄漏的方法,在内存管理方面大显身手。加之,JSP为应用程序提供了更为健壮的意外事件处理机制,充分发挥了Java的优势。

JSP标签可扩充性和跨平台的可重用性。JSP技术能够使开发者扩展JSP标签得以应用,JSP开发者能定制标签库,大大减少对脚本语言的依赖。由于定制标签技术,使网页制作者降低了制作网页和向多个网页扩充关键功能的复杂程度。JSP组件(企业Javabeans,JavaBeans或定制的JSP标签)都是跨平台可重用的。Javabeans和企业Javabeans组件可以访问传统的数据库,并能以分布式系统模式工作于UNIX和WINDOWS平台。

2.2 JDBC

JDBC由一组Java语言编写的类和接口组成,使用内嵌式的SQL,主要实现三方面的功能:建立与数据库的连接,执行SQL声明以及处理SQL执行结果。JDBC支持基本的SQL功能,使用它可方便地与不同的关系型数据库建立连接,进行相关操作,并无需再为不同的DBMS分别编写程序。

2.3 MySQL

MySQL是一个多用户、多线程的SQL数据库,是一个客户机/服务器结构的应用,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。MySQL的快速和灵活性足以满足一个网站的信息管理工作。 因为许可证的灵活,任何人都可以以任何目的免费使用,修改,和分发 PostgreSQL,不管是私用,商用,还是学术研究使用。命令执行速度快,也许是现今最快的;简单有效的用户特权系统。MySQL使用完全免费,使得其运用范围更加广泛。

2

Java Web开发(JSP)课程设计

2.4 TOMCAT

Tomcat服务器是Apache Group Jakarta小组开发的一个免费服务器软件,适合于嵌入Apache中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。Tomcat服务器的兼容性很好,如WebLogic服务器采用其为Web服务器引擎,Jbuilder将其作为标准的测试服务器,Sun公司也将其作为JSP技术应用的示例服务器。但是Tomcat服务器有众多大软件公司的支持,而且服务器的性能稳定,其发展前景很好。

2.5 Eclipse

Eclipse是一个非常优秀的集成开发环境,它旨在简化用于多操作系统软件工具的开发过程,可以用于管理多种开发任务,其中包括测试、性能调整以及程序调试等,而且还可以集成来自多个供应商的第三方应用程序开发工具。通过集成大量的插件,Eclipse的功能可以不断扩展,以支持各种不同的应用。

Eclipse平台是一个成熟的、精心设计的、可扩展的体系结构,其组成结构如图所示用 Eclipse开发的插件,可以适应多平台的需要 , 且具有良好的可扩展性和灵活性。

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development

Tools,JDT)。

2.6 MVC设计模式

设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。本系统开发采用目前一种目前广泛流行的软件设计模式MVC。MVC(Model-View - Controller)应用程序结构被用来分析分布式应用程序的特征。3

Java Web开发(JSP)课程设计

这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。

MVC模式的出现,很好的解决了传统开发WEB应用方式中存在的问题。M代表模型(Model),包含完成任务所需要的所有的行为和数据;V代表视图(View)界面,显示模型提供的数据;C代表控制器(Controller),它将模型映射到界面中,处理用户的输入并响应请求。其模型关系如图所示。在MVC模式中,三层各尽其职、相对独立,各层内部的改变不会影响到其它层,从而降低了数据表达、数据描述和应用操作的耦合度,也能更好的实现开发中的分工,加快工程进度。

MVC设计模式中的三个模式结构

视图:数据的展现。视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。

模型:应用对象。模型是应用程序的主体部分。模型代表了业务数据和业务逻辑;当数据发生改变时,它要负责通知视图部分;一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。

控制器:逻辑处理、控制实体数据在视图上展示、调用模型处理业务请求。当 Web 用户单击 Web 页面中的提交按钮来发送 HTML 表单时,控制器接收请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。

4

Java Web开发(JSP)课程设计

三、 功能需求分析

本系统是为了方便价格管理而设计的,分为五个模块:客户管理,订单管理,产品管理,产品类型管理,报价管理模块。系统的基本功能是:商家可以通过该系统很方便对客户,订单,产品,产品类型,价格等统一管理,既方便又很节省时间,同时也提高了工作效率。里如果客户管理这一块来说,商家可以通过统一的添加方式一一添加不同的客户,然后在管理时可以通过客户编号,客户名称,电话,地址,联系人或者其他方式对客户进行查询。对于订单管理这模块,里面可以有订单编号,客户编码 , 产品编码 ,数量 ,订单时间 ,商家可以统一管理这些信息,还有专门的报价表共同以查询物品单价等等这些功能。

四、 系统设计方案

整体设计方案。

如:根据系统功能需求分析,可将系统完善大致分为如下几步:

(1)根据系统需要,做出系统分析;

(2)根据功能分析,设计出客户管理页面;

(3) 对客户管理模块DAO层进行设计:

(4)添加控制器实现客户添加功能和查询所有客户的功能;

(5)对某些页面实行分页技术,因为一页不可能把所有的信息都显示出来;

(6)、、、、、、、

五 、系统涉及的数据库表

所使用的数据库及其字段。

5

Java Web开发(JSP)课程设计

如:数据库安装的是MySQL 5.1,根据系统功能需求分析得到如下数据库表:

客户表:

列名

customercode

数据类型

varchar(32) 否

允许空

用户编号

用户名

电话

地址

联系人

其他

说明

customername varchar(255)

phone

address

ralationman

other

产品类型表:

varchar(20)

varchar(255)

varchar(30)

varchar(255)

列名

producttypecode

数据类型

varchar(32) 否

允许空

用户编号

用户名

说明

pruducttypename varchar(100)

产品表:

列名

productcode

数据类型

varchar(32) 否

允许空

产品编号

产品类型名

产品名

产品区域

产品所有者

产品单位

说明

producttypetypename varchar(32)

productname

producingarea

productowner

unit

price

quantity

other

varchar(255)

varchar(255)

varchar(255)

varchar(10)

Varchar(10)

varchar(10)

varchar(255)

产品价格

产品数量

其他信息

6

Java Web开发(JSP)课程设计

订单表:

列名

ordercode

customercode

productcode

quantity

ordertime

other

报价表:

数据类型

varchar(32)

varchar(32)

varchar(32)

varchar(10)

datetime

varchar(255)

允许空

订单编号

客户编码

产品编码

数量

订单时间

其他信息

说明

列名 数据类型

允许空

报价编码

产品编码

客户编码

报价人

报价时间

其他

说明

quotationcode varchar(32)

productcode

customercode

quotationman

varchar(32)

varchar(32)

varchar(32)

quotationtime datetime

other

varchar(255)

写好这些数据库表,定好每个数据库表的主键,再设置好外键的连接。

五、 具体功能分析

6.1客户管理模块页面设计

该页面是用户登录后所显示的初步页面,该页面包括五个模块:客户添加页面、按客户编号查询客户页面、按客户名称查询客户页面、按电话查询客户页面、按地址查询客户页面、按联系人查询客户页面、按其它查询客户页面。管理人员可以通过以上任意一种方式查询客户信息。其结果图如下:

7

Java Web开发(JSP)课程设计

6.2 客户添加

下面是部分代码:客户添加

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

客户添加

8

Java Web开发(JSP)课程设计

客户添加

客户编码
客户名称
联系电话
联系地址
联系人
其他

9

Java Web开发(JSP)课程设计

(1.)在业务控制器中需要接受表单参数。

public void execute(HttpServletRequest request, HttpServletResponse

response) {

}

(2.)接受参数

//接受参数

String customercode = ameter("customercode");

String customername = ameter("customername");

String phone = ameter("phone");

String address = ameter("address");

String relationman = ameter("relationman");

String other = ameter("other");

(3).封装Customer对象

//封装Customer对象

Customer customer = new Customer();

tomercode(customercode);

tomername(customername);

ne(phone);

ress(address);

ationman(relationman);

er(other);

(4.)通过DAO完成客户添加。

//获得DAO实例

CustomerDAO cdao = tomerDAO();

//通过DAO实例完成客户添加

tomer(customer);

6.3 在查询客户信息时,首先.得添加DAO中查询所有客户的方法

public List findAll() {

//1.获得连接对象

Connection conn = nection();

//2.查询SQL语句

10

Java Web开发(JSP)课程设计

}

String querySql = "select * from customer";

PreparedStatement pstmt = null;

ResultSet rs = null;

List customers = null;

//3.通过连接对象获得预处理语句对象

try {

}

return customers;

pstmt = eStatement(querySql);

//4.设置参数

//5.执行查询

rs = eQuery();

customers = new ArrayList();

while(()) {

}

tackTrace();

(rs);

(pstmt);

(conn);

Customer customer = new Customer();

tomercode(ing(1));

tomername(ing(2));

ne(ing(3));

ress(ing(4));

ationman(ing(5));

er(ing(6));

(customer);

} catch (SQLException e) {

} finally {

然后再添加业务控制器,代码如下:

package ;

import ;

import rvlet;

import rvletRequest;

import rvletResponse;

import erDAO;

11

Java Web开发(JSP)课程设计

import erDAOFactory;

import er;

public class CustomerFindAll extends WebAction {

}

public void execute(HttpServlet servlet, HttpServletRequest request,

}

HttpServletResponse response) {

//获得DAO实例

CustomerDAO cdao = tomerDAO();

//通过调用cdao中查询所有记录的方法

List all = l();

//将记录保存到request范围

ribute("all", all);

//设置跳转页面

String page = "/";

forward(servlet, request, response, page);

查询所有客户显示页面代码:

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

<%@ taglib prefix="c" uri="/jsp/jstl/core"%>

查询所有客户

12

font-size: 12px;

Java Web开发(JSP)课程设计

查询所有客户

var="customer">

客户编号 客户名称 联系电话 联系地址 联系人 其他
${ercode } ${ername } ${ } ${s } ${onman } ${ }

6.4按客户编号查询

代码如下:

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

13

Java Web开发(JSP)课程设计

按客户编号查询客户

按客户编号查询客户

font-size: 12px;

客户编码

添加业务控制器

package ;

import ;

import rvlet;

14

Java Web开发(JSP)课程设计

import rvletRequest;

import rvletResponse;

import erDAO;

import erDAOFactory;

import er;

public class CustomerFindByCustomerCode extends WebAction {

}

public void execute(HttpServlet servlet, HttpServletRequest request,

}

//获得参数

String customercode = ameter("customercode");

//通过调用cdao中查询所有记录的方法

Customer customer = CustomerCode(customercode);

//将记录保存到request范围

ribute("customer", customer);

//设置跳转页面

String page = "/";

forward(servlet, request, response, page);

HttpServletResponse response) {

//获得DAO实例

CustomerDAO cdao = tomerDAO();

配置业务控制器

("CustomerFindByCustomerCode", );

添加结果显示页面。

${ercode }

${ername }

${ }

${s }

${onman }

${ }

15

Java Web开发(JSP)课程设计

6.5

按客户名称查询

代码如下:

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

按客户名称查询客户

16

Java Web开发(JSP)课程设计

按客户名称查询客户

font-size: 12px;

客户名称

接下来的集中查询客户的方式的添加业务控制器,配置业务控制器,添加结果显示页面的代码的实现,和上述按客户编号查询的代码是类似的,在这里就不重复了。

6.6 按联系电话查询

代码如下:

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

按联系电话查询客户

font-size: 12px;

按联系电话查询客户

17

Java Web开发(JSP)课程设计

联系电话

6.7 按联系地址查询

代码如下:

按联系地址查询客户

18

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

font-size: 12px;

Java Web开发(JSP)课程设计

按联系地址查询客户

联系地址

6.8 按联系人查询

代码如下:

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

19

Java Web开发(JSP)课程设计

按联系人查询客户

按联系人查询客户

font-size: 12px;

联系人

6.9 数据库管理类和VO类

a..数据管理类封装了一些常用的JDBC操作,如获得连接对象、关闭连接对象、关闭处理语句、关闭预处理语句、关闭结果集。

20

Java Web开发(JSP)课程设计

获得连接对象部分代码:

package ;

import tion;

import Manager;

import eption;

/*

* 数据库管理类

*/

public class DataBaseManager {

}

//驱动类名称

public static String JDBC_DRIVER = "";

//数据库连接URL

public static String JDBC_URL = "jdbc:mysql://localhost:3306/quote";

//数据库用户名

public static String JDBC_USER = "root";

//数据库密码

public static String JDBC_PASS = "admin";

/**

* 获得连接对象

*/

public static Connection getConnection() {

}

Connection conn = null;

try {

//1.加载驱动类

e(JDBC_DRIVER);

//获得连接对象

conn = nection(JDBC_URL, JDBC_USER,

JDBC_PASS);

} catch (ClassNotFoundException e) {

}

return conn;

tackTrace();

tackTrace();

} catch (SQLException e) {

21

Java Web开发(JSP)课程设计

六、

总结:

通过本次的课程设计,让我自己动手进行数据库的连接、网页的设计、代码的编写与调试,加深了对这门课程的理解,更是锻炼了自己,使我从中学习到了非常多的东西。在实验中也遇到了很多问题,但是通过向老师同学询问,不断试验改错,虽然过程很辛苦,但是看着自己写的程序运行出想要的结果心里也是感到很满足。这次的设计让我很系统的运用了所学到的知识。

22


本文标签: 客户 查询 页面 管理 开发