JavaWeb平台

2024-10-10

JavaWeb平台(共9篇)

JavaWeb平台 篇1

1 建设背景

高职院校的科研活动越来越多, 如仍采用手工管理的方式, 由于管理效率低下, 管理人员的劳动量很大。需要自动化管理, 但由于每个高职院校的科研管理模式不完全一样, 无法购买一个完全合适的管理系统, 故此建立一个科研管理网站是非常有必要的。

科研管理系统使用B/S结构进行开发, 教师可以通过浏览器进行各类成果的申报, 申报后, 管理员可以对这些申报信息进行审核和管理。管理员可以很方便的进行数据的统计、查找和备份等功能。其他相关部门如人事处和培训部门可以通过网页方便查询教师的科研论文、著作、获奖等信息。本系统的建立, 可以适当降低管理员的管理复杂程度, 并可以方便教师查询自己的信息。

2 开发方式的研究和选择

现在流行的网站开发平台主要有ASP、JavaWeb和PHP, 常见的数据库工具主要有SQLServer、Oracle、MySQL、Access等, 各种平台和工具由不同公司开发各有特点。

本系统进行了两套方案的设计工具。第一套方案是使用ASP平台开发网站, 使用SQLServer数据库, 在windowsServer操作系统下运行, 这些都需要购买正版产品, 费用较高。

第二套方案是使用JavaWeb平台, 数据库工具使用MySQL, 平台和数据库可以在Linux操作系统下运行, Linux操作系统免费, JavaWeb和MySQL也都是免费的, 不涉及到版权纠纷和高昂的软件购置费用问题。

为了节约成本系统建设成本, 本系统采用Java Web平台开发, 并为平台配置MySQL数据库。

3 系统分析与设计

开发前会对系统涉及到的各个部门进行详细的调查。采用座谈和问卷调查的方式, 得到的本系统主要完成内容有以下几点。

(1) 教师个人信息管理。

教师可以通过在网页输入教师编号查询到自己的个人信息, 根据需要可以对个人信息进行修改。

管理员可以对教师信息进行管理, 能够进行教工信息的录入进行修改, 能够通过教工号、姓名、部门等信息进行分类查询, 能够进行所有教师详细信息的查询。

(2) 教材成果管理。

教师在指定时间内通过系统填写自己的教材成果信息。在管理员审核前教师可以随时查询到自己的教材信息, 并进行修改。

管理员能够对教师填写的教材成果信息进行审核, 可以通过教材名称、出版社、出版年份等进行查询。

(3) 论文成果管理。

教师在指定时间内通过系统填写自己发表的论文信息。在管理员通过审核之前, 可以随时进行修改。教师可以查询审核通过情况。

管理员可以对教师填写的论文成果信息进行审核, 如果不通过则要给出不通过的原因。管理员可以通过论文名称、期刊名称、发表年份和作者等信息进行查询。

(4) 课题成果管理。

教师在指定时间内通过系统填写自己的课题成果信息。教师可以查询课题成果的审核情况, 在审核前可以随时修改。

管理员可以对教师提交的报告进行审查, 如果不能进行通过, 要给出不通过理由。管理员可以根据课题名称、课题来源、作者、立项年份或结题年份进行查询。

(5) 获奖成果管理。

教师在指定时间内通过系统填写自己的获奖成果信息。可以随时查询审核情况, 在审核前可以进行信息的修正。

管理员可以对教师填写的获奖成果信息进行审核。并可以根据奖励类型、奖励级别、奖励单位和奖励时间进行查询。

(6) 课题申报。

教师通过网站提交拟申报的课题, 并通过附件的方式将文档提交的服务器中等待管理员审核。管理员在教师提交完毕后, 关闭申报功能, 然后对每个申报的课题进行审核, 并开发查询功能给教师。

(7) 其他部门查询管理。

为了方便和科研处相关的其他部门的查询工作, 提供了多部门查询功能。在被管理员授予权限后, 可以查询所有的信息, 但也仅限于查询。

人事处或其他部门指定用户可以查询学校教师的教材成果、论文成果、课题成果和获奖成果等, 达到了信息统一和共享的功能。

根据上述调查结果, 使用绘图工具, 绘制出UML图。对调查结果进行数据库概念设计、逻辑设计好物理设计, 然后进行数据库开发。在系统开发过程中再对系统功能变化进行适当的修正和测试以保证系统的正确性。

4 Java Web实现方式的研究和选择

使用Java Web进行网站开发, 可以有几种难度的框架层次可供选择。

(1) 简单的JSP网页设计实现。

在开发动态部分时, 直接使用简单的JSP方式开发, 所有内容直接写到.jsp文件中, 输入输出使用out、request和response直接实现。跨网页信息直接使用session和application对象。

优点:每个网页逻辑简单, 输入输出网页中直接编写, 可以让学生一起参与共同完成此项目。

缺点:对于复杂的网站开发, 会有大量的重复代码产生, 如果有问题修改起来复杂。

(2) Java Web的MVC模式实现。

动态内容分为模型、视图和控制器三部分, 使用JSP网页、Java Bean和Servlet实现。

优点:使用MVC三层模式实现, 大大提高了软件的重用性, 数据层次清晰, 结构严谨, 安全性较高, 学校学生熟悉本模式可以融入到开发中。即使部分学生掌握尚不熟练, 经过简单培训后就可以完成。

(3) J2EE架构实现。

J2EE是一套企业级的应用开发技术架构, 架构中包含大量组件, 使用此架构可简化并且规范应用系统的开发与部署, 可以提高网站可移植性、安全与再用价值。

优点:企业级的架构, 框架大, 适合制作大中型网站, 安全性最高, 但制作难度也最高。

问题是:网页中的表单需要使用struct2方式制作, 学生学的传统的HTML网页工具如FrontPage、Dreamweaver无法完成。学生对此技术很生疏, 很难在短时间内融入到开发中。

教师科研管理系统经过系统分析调查发现, 需要实现的功能复杂程度不高, 为了节约成本和锻炼学生, 采用JavaWeb的MVC框架实现。有两名带领几个学生在学生软件工作室完成, 这种方式能够完全满足系统实现的要求, 又可以很好的锻炼学生的网站开发能力。

开发过程分配。

首先进行HTML静态网页实现, 实现所有和用户进行交互的网页, 让用户通过网页表单进行信息输入, 提交后将信息存储到数据库中。系统通过网页中的表格进行信息的输出, 通过报表的形式显示汇总信息。

为了让用户在表单中输入的数据格式是正确的, 内容是完整的, 进行Java Script设计为制作好的静态网页添加上Java Script验证, 进行数据格式和完整性验证让不合格的数据通过并正确通知用户输入正确数据。

静态网页和对应的Java Script内容逻辑过程简单, 不容易出错, 此部分内容交由学习计算机软件开发专业的学生完成, 完成后有老师进行测试, 对于出现的不完善和错误再由学生改进。通过教师指导, 学生完成的方式, 可以顺利完成此部分内容, 并实际锻炼了学生的静态网页设计和实现能力。

最后进行Java Bean的编写, 让数据格式和网页输入输出内容对应, 编写Servlet程序, 将静态网页、Java Bean和数据库连接起来, 并对其中需要处理的数据和逻辑处理完成。此过程由于逻辑相对复杂, 容易出错, 采用学生和教师共同开发的方式实现, 保证质量的同时, 锻炼学生的动态网页开发能力。

5 结语

由教师带领学生完成, 可以锻炼学生的开发能力, 让学生在学校内就有实战开发经验, 为学生的就业提供很好的帮助。

使用JavaWeb平台中的MVC三层模式、MySQL数据库、Linux操作系统, 编写实现科研管理系统。由于工具和操作系统都是免费的, 系统的建设实现和网站发布成本很低。系统设计和实现应用后, 可以大大提高科研管理人员的管理效率, 降低管理人员的管理难度。

参考文献

[1]赵彦敏.基于B/S结构的呼叫中心知识库的设计[J].安徽建筑工业学院学报 (自然科学版) , 2005, 6.

[2]基于UML建模的高校仪器设备管理系统的设计[J].安徽科技学院学报, 2009, 4.

[3]李亚平.利用JavaServlet开发的企业内部网信息管理系统[J].化工建设工程, 2 00 2, 3.

[4]周启生.基于JSP和Servlet网页自动生成工具的设计与实现[J].科技信息, 2009, 25.

[5]洪涛涛.基于.NET的WEB在线考试系统设计研究[J].黑龙江科技信息, 2011, 2 1.

JavaWeb平台 篇2

1,从安装上来讲,B/S只需要在服务器端安装即可,而C/S却需要每一个客户端进行安装。2,从部署上来说,B/S只需要服务器能够支持即可,而C/S却对每一个客户端的电脑提出了要求。

3,从升级,维护角度来说,B/S只需要在服务器端升级维护即可,像网易的邮箱,而C/S却是服务器更新维护一次,客户端就要下载相关的补丁才能使用 4,从安全性来讲,B/S是基于服务器的,较之C/S安全性好

5,从本质上来说,B/S是基于请求驱动的,即客户端发送一个Http请求,然后服务器进行处理之后,响应给客户端,而C/S却是基于事件驱动的,像腾讯的QQ。

6,从耦合度来讲,B/S与服务器端耦合,而C/S却是与客户端的操作系统进行耦合。但是Client/Server(从游戏的角度来讲)较之Brows/Server具有优质的画面。

Servlet的使用步骤:

1,创建一个JAVA类,存放在com.fit.servlet包中,并且此类extends HttpServlet类,才能成为一个Servlet 2,覆写doGet()和doPost()方法

3,最后,在web.xml文件中进行Servlet配置。具体的配置如下:

Servlet类名

完整的包.类名称

Servlet类名

网页访问的名称,例如/hello Servlet的生命周期,作用,并说出和CGI(Common Gateway Interface)的区别

就是指Servlet从创建出实例对象到销毁的过程。它是一个容器,负责创建实例来接受客户端的请求,并且以多线程的方式响应给客户。具体过程如下:

Servlet被服务器实例化之后,容器运行其init方法进行初始化,请求到达时运行其service方法,在此过程中仅创建一个对象,然后service方法自动调用与请求相应的doXxx方法,当服务器决定将实例进行销毁时,再调用其destroy方法。

与CGI(通用网关接口)的区别在于,Servlet处于服务器进程中,它通过多线程的方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每一个请求都产生新的进程,服务完成后就销毁,所以效率低于Servlet 作用:可以用来进行接收客户端的请求,也可以进行请求流的控制。

Http协议:(了解)

首先它是(Hypertext Transfer Protocol)超文本传输协议。

HTTP报文由从客户机到服务器的请求和从服务器到客户机的响应构成。请求报文格式如下:

请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体

请求行以方法字段开始,后面分别是 URL 字段和 HTTP 协议版本字段,并以 CRLF 结尾。

应答报文格式如下:

状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体

状态码元由3位数字组成,表示请求是否被理解或被满足。原因分析是对原文的状态码作简短的描述,状态码用来支持自动操作,而原因分析用来供用户使用。客户机无需用来检查或显示语法。工作流程:

一次HTTP操作称为一个事务,其工作过程可分为四步:

首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。

建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客 户机与服务器断开连接。

Javascript的作用:

1,进行验证(通过正则表达式,在css+HTML的部分特性进行浏览器端的格式验证工作)

2,进行交互(将客户端的一个请求通过JavaScript可以发送到服务器端,也可以在浏览器端进行人机的交互,突破了以前静态页面的交互性限制)3,进行特效的处理,如走马灯,时间时钟。

Servlet生命周期:(详细)是指Servlet实例从被创建到其消失(对象销毁,回收)中间的时间及各个阶段,称之为Servlet生命周期。

前提:web服务器加载类。之后执行以下过程:

1,实例化:Servlet容器创建Servlet实例,具体就是当接收到客户端的第一次请求时,Servlet容器负责创建Servlet的一个实例。且在此过程中仅创建一个实例,通过多线程的方式响应客户端的请求

2,初始化:该容器调用init()方法。

3,服务:当请求到达时,该Servlet容器自动调用server()方法,根据客户端发送请求的方式,选择doXxx()方法执行

4,销毁:当web服务器被卸载的时候,调用destroy()方法进行对象的销毁。请看以下的一段代码: package com.fit.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Test extends HttpServlet { private static final long serialVersionUID = 1L;

public Test(){

super();

System.out.println(“===========================”);

} public void destroy(){

System.out.println(“对象被销毁!”);} public void init()throws ServletException {

System.out.println(“对象初始化!”);} protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

System.out.println(“get方法执行”);} protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

this.doGet(request, response);} protected void service(HttpServletRequest arg0, HttpServletResponse arg1)

throws ServletException, IOException {

System.out.println(“服务开始启动了!”);

super.service(arg0, arg1);}

}运行效果如下:

=========================== 对象初始化!服务开始启动了!

get方法执行

2011-7-19 12:07:04 org.apache.catalina.core.StandardContext reload 信息: Reloading this Context has started 对象被销毁!

分析原因:

1,实例化对象发生在客户端请求第一次到达的时候,而不是类被加载的时候。2,对象只被实例化一次.3,如果service()被覆写的话,则调用的时候加入super.service(arg0, arg1);这句话时候才可以清楚的调用的doXxx()方法,如果不加入此句话,那么将不会执行doGet()方法。所以一般不要覆写service()方法。只需要覆写doGet()和doPost()方法。

4,当web服务器被卸载的时候,将执行destroy()方法。进行对象的销毁!

Jsp页面构成元素,Jsp跟Html的区别,优势

Jsp定义:(Java Server Page)Java服务器端语言,组成如下: 1,静态模板:由HTML,css,JavaScript等元素构成。

2,指令:设定网页元素的属性,用于提供这个歌JSP网页的相关信息。

3,脚本元素--声明:<%!...%>,在此之中可以进行变量,常量的定义,类,方法都可以声明,但是一般不用。

4,脚本元素--Java脚本:<%...%>,在此期间可以进行Java代码的拼写。5,脚本元素--表达式:<%=..%>,用于表达式输出时使用。

6,动作:利用JSP动作可以重用JavaBean组件,可以动态的包含页面,也可以进行服务器端的跳转(即将用户的请求转发给其他的页面)。7,注释:

--HTML注释:,此种注释可以在页面中看到,成为客户端注释。--Jsp注释:<%----%>,此种注释在页面中看不到,也成为服务器端注释。--Java注释:

单行注释:// 多行注释:/*„„„*/ Jsp优点:使用HTML,CSS等技术构建页面的模板部分,用Java语言根据用户的输入动态生成可变的内容部分。既可以实现HTML控制页面布局,也亦可以实现Servlet的功能,实现了内容与表示分离。Jsp的常见指令,并说出静态包含和动态包含的区别

Page指令:<%@ page language=”java” import=” 完整的包.类名称” autoFlush=”true[false]” errorPage=”文件名” isErrorPage=”false[true]” isThreadSafe(设置是否能多线程使用)contentType=”text/html;charset=ISO-8859-1” %> 包含指令:<%@ include file=”文件名”%> taglib指令:此指令用于在Jsp页面中引入用户自定义的标签库。例如: <@% taglib url=http://java.sun.com/jsp/jstl/core prefix=”c”%> 静态包含跟动态包含的区别:

<%@ include file=”文件名%>,此包含属于静态包含,是指先将文件包含进来然后在进行编译,编译后生成的class文件中,被包含的文件在静态块中。且此种包含不允许带参数。

此种包含属于动态包含,先解释再包含进来结果,即只有在客户端进行请求时才会被动态的编译载入,在生成的class类中,它被请求一次就被创建一次。且此种被包含页面可以取得包含它的页面的参数。

Jsp常见的动作,调用JavaBean相关:

,调用此动作,可以用于实例化JavaBean,或者定位一个已经存在的JavaBean的实例,并把实例的引用赋给一个变量。

,通过这个动作可以取得JavaBean对象的属性

或者通过此动作,可以用来设置JavaBean的简单属性和索引属性,此动作的name属性必须与总的id属性相匹配。当JavaBean的属性名与请求参数名相同的情况下,可以使用property=“*”的方式为多个JavaBean的属性同时赋值,如: jsp页面通信:

:此动作用来在当前Jsp包含动态和静态文件的输出结果,可以和配合使用,向嵌入的Jsp页面传递参数

:此动作用来从当前Jsp页面转向其他页面,并传递Request对象,response对象,该标签后面的代码将不会被执行。Jsp的内置对象,四种作用域的通信对象的范围

输入/输出对象

request:表示客户端对网页的请求

response:用于处理Jsp生成的响应,使用Http协议将响应发送给客户端。

out:表示从response中取得的输出流。常用的方法有write(),print(),println()等,用于在页面中输出文本形式的响应内容 作用域通信对象

pageContext:此通信对象的作用域仅在当前页面有效,一旦跳转则不可用

request:此通信对象的作用域针对的同一个客户的请求,如果不是同一个请求则不可以使用

session:此通信对象的作用域适用于一次会话,即打开的同一个浏览器的所有页面都可以适用

application:此通信对象的作用域适用于基于WEB服务器的所有会话,适用于监听器 Servlet对象

page:指向当前Jsp页面经过转译(jsp.java文件),编译(.java文件.class文件)后的对象本身,即编译后的Servlet对象本身

config:是在一个Servlet初始化时,服务器向它传递的初始化信息。初始化信息可以在web.xml中找到。错误对象

execption:表示Jsp页面运行时抛出的异常对象,可以在专门准备的错误处理页面中访问这个异常对象。

Jsp执行过程:

jsp文件转译:当客户端请求一个正确的Jsp文件时,将Jsp—>.java文件(即将Jsp文件翻译成相应的Servlet类的源文件)编译:.java文件.class文件,即将Servlet类的源文件进行编译成为.class的Servlet文件。调用Servlet的service()方法响应用户的请求。

描述Jsp和Servlet的区别,共同点,各自的应用范围:

1,从发展上来看,Jsp可以避开Servlet的输出页面的繁琐步骤,它集合了HTML和Servlet的优点。

2,从本质上来说,Jsp是Servlet的扩展,它是Servlet的简易形式。Jsp经过转译之后就成为了类Servlet。

3,从创建方式上来说:Jsp由HTML代码和JSP标签构成,而Servlet则完全是由程序代码构成擅长于流程控制和事务处理的类

4,从使用角度来说:在MVC中,Jsp担任的是VIEW层,侧重于视图,而Servlet则充当的控制层,侧重于控制逻辑。请求转发和重定向

 response.sendRedirect():利用response对象向客户端发回一个响应指示其访问其他URL资源,或者说是一个web组件向另一个web组件发送一个新的请求,属于重定向,地址栏有变化。且不可以传递属性request参数,当所有的代码执行完之后才进行重定向。

request.getRequestDispatcher().forword(req,resp):web组件将一个请求转发给另一个web组件,他们始终是同一个请求,在此期间可以传递request属性参数,地址栏没有变化。且一执行到此代码处,后边的将不再执行

JavaBean的组成:

类必须是具体的,公共的。提供无参数的构造方法

JavaWeb平台 篇3

专利审查是一项专业性很强的工作, 在专利审查过程中, 审查员会参考到多种审查资源。主要包括:各级推选的优秀案例、相关的审查规定、培训和学术资源。

在日常的使用过程中, 笔者发现虽然这些资源对促进审查工作具有重要作用, 但是在资源获取过程中存在着很多不便之处, 主要包括:目前各种审查资源存储在不同的平台上, 不利于资源的集中利用;现有的各项审查资源, 检索入口比较单一, 一般只是按标题浏览的方式, 获取时难度很高;还有些资源是以群发邮件的形式来传播, 难以检索。由于常用审查资源目前存在着存储平台分散、检索难度大的不足, 审查员对这些资源的利用受到很大限制, 既造成了大量的资源浪费, 又影响了专利审查的效率和质量。

目前信息管理系统的结构分为C/S结构和B/S结构, 其中B/S结构因为简化了客户端配置, 减轻了系统维护与升级的成本和工作量, 降低了系统的总体成本, 成为未来的发展趋势。在B/S结构中, JSP作为Sun公司推出的新一代站点开发语言, 被广泛使用。世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。比较出名的如IBM的E-business。本文的专利审查资源信息共享平台采用了JSP/Servlet进行开发, 并采用开源的Mysql-5.0.22对数据进行存储, 服务器运行在Tomcat中, 开发环境采用最流行的Java Web开发工具My Eclipse8.0, 网页编写采用业界使用最广泛的Dreame Weaver8、Photoshop6.0、FLASH5.0/MX, 另外, 为了提高效率, 实行多人共同开发, 采用了SVN进行版本管理。

二、专利审查资源信息共享平台介绍

1.建设目标。共享平台容纳的资源和实现的功能很多, 规划设计的总原则是“统一平台、部门共用、互连互通、资源共享”。要建设出这样一个复杂的平台, 使之能满足广大审查员的需求, 需要遵循以下一些基本的设计原则: (1) 具有易操作性。新开发的系统应易于操作, 无需对用户进行过多的培训, 因此在界面风格和使用习惯上应努力与大家经常使用的其它系统相近似; (2) 具有稳定性。只有系统安全稳定、才能满足用户的需求, 被用户持久使用; (3) 树立“数据是系统核心”的思想。在系统的设计上要保证数据的完整性、规范性和安全性; (4) 具有可扩展性。在系统的设计上要充分考虑不断扩展的功能需求, 使设计出的系统具有可扩展性。

2.平台整体框架。综合考虑上述因素, 平台选用了Jsp+Servlet+Java Bean开发模式, 该模式遵循了MVC设计模式, 充分体现了JSP与Servlet自身的优点, JSP作为视图, 用来表现页面;Servlet作为控制器, 控制程序的流程调用业务进行处理, Java Bean封装了业务逻辑。为了提高开发效率, 信息共享平台使用了几个社区中的开源组件, 包括Log4j (在日志实现部分使用, 可以方便的输出日志) 、jspsmartupload (灵活实现文件的上传下载) 、jfreechart (直观的输出统计图标) 。

在数据的保存上, 本平台采用开源的Mysql数据库对数据进行管理, 使得数据的保存完全性高, 稳定性强。并且在数据的录入过程中, 对多个字段进行标引, 以获得更多的检索入口。

3.建设成果。本平台实现了登录模块、优秀案例模块、统计模块、系统管理模块的功能。

三、结束语

javaweb简历项目经验 篇4

软件环境: wdows xp

硬件环境: PC机

开发工具: MyEclipse + Tomcat 5.5 + Oracle9i + jdk1.4.2

项目描述: 本项目结构上分为表现层、业务层和数据访问层,层次间的依赖关系自下到上。采用 的技术有Struts,Spring,Hibernate等。其中表现层采用Struts框 架开发;业务层封装业务流程,为适应业务的变更,每一业务模块均有专门的接口及 实现类,利用Spring的IOC功能将实现类注入给表现层的Action;数据访问层借助于 Hibernate实现,代码简洁且可适应不同的数据库主要实现项目功能介绍: 个人办公 1.实现对站内电子邮件的发送,接收,查看,删除。 2.短信息,对个人短信的提醒,发送,接收,已发短信,以及查看和删除短信。 3.个人考勤,个人上班登记,下班登记,外出登记,请假登记等操作的添加,查看。 4.日志管理,日志管理分为我的日志和下属日志,对自己的日志可以进行查看和添加,对下属的日志可以进行有条件的查询。

JavaWeb分页技术与实现 篇5

1 实现分页技术

首先,来看典型的三层架构中,从请求发起到返回数据的整个过程,如图1所示。

从图1中得知,在Web服务器中、数据库服务器中都可以分页。

2 分页技术比较

2.1 Web服务器中分页

Web服务器中分页,可以利用Displaytag标记库,它可以对Java Web应用的数据通过HTML表格进行分页和排序显示,同时它还支持数据的导出。另外,Pager标记库可以灵活地实现各种不同风格的分页导航效果。在Web服务器中进行分页适合数据量比较小的情况,如果对超过10000条记录的数据分页,会在Web服务器中占用大量内存,分页速度非常慢,这不是分页显示的最佳解决方法。

2.2 数据库服务器中分页

数据库服务器中分页,可以利用底层SQL语句实现超大记录的显示分页。SQL标准中并没有定义获取满足条件的记录的子集的SQL语法,现阶段只能根据不同的数据库,使用该数据库所特有的SQL语法来完成这个操作。

2.2.1 Oracle实现分页的SQL语句

Oracle中可以使用rownum伪列来获取满足条件的结果的子集。具体SQL语句如下所示:select*from(select a.*,rownum num from(select*from book order by name desc)a where rownum<=60)where num>=20;其中黑粗体部分的SQL语句可以换成其他任意查询语句。

2.2.2 My SQL实现分页的SQL语句

My SQL中提供了limit关键字,具体SQL语句如下所示:select语句limit页面的第一条记录页面容量。

3 定义分页接口

为了增强程序代码的复用性,针对分页的特性定义一个Pagination接口,不同的数据库和持久层技术可以针对这个接口提供具体的分页实现代码。

Pagination.java内容如下:

4 Oracle分页接口的实现类

5 结语

分析了Java Web中的分页技术,并提出超大数据量的分页在Oracle、My SQL中实现方法。编写针对Oracle数据库分页的接口和接口实现类,具有很好的通用性。

参考文献

[1]刘培文.Java程序设计教程.北京:中国人民大学出版社,2009.

[2]刘伟,张利国.Java Web开发与实战.北京:科学出版社,2008.

[3]李宁.Java Web开发技术大全.北京:清华大学出版社,2009.

JavaWeb平台 篇6

如何将HTML开发和JSP开发分离呢?第一是采用Java-Bean组件编程技术,另一种形式则是使用JSP标签(Tag)技术。

l )在JSP中使用Java Beans来完成业务功能比直接在JSP页面中插入Java程序要好得多,但是对页面的设计者来说要求熟悉Java程序编程,在JSP页面中对Java Bean中的各个属性和方法进行调用。

2)通过使用标签技术,就可以在页面程序中不出现Java程序代码,并且可以对Java Bean中的各个功能进行标签化,然后页面的设计者通过使用标签来实现对Java Bean中的后台处理程序进行调用。这样,HTML开发人员专注于页面的外观设计,而Java程序员则专注于后台程序代码的开发,大大提高了程序的可读性、维护性和方便性,也便于各程序员之间的协作开发。JSP程序员可以建立定制标签和后端代码模块,而Web设计人员则可以使用这些定制标签并且全力关注于页面设计。

1 什么是标签库

JSP标签库也被称作定制标签,是一种通过Java Bean生成基于XML的脚本的方法。实际上,标签就是简单而且可重用的代码模块。

定制标签使得在JSP项目中很容易创建重用的开放源代码模块。通过标记库可以定义出现在JSP页面中的自定义标签,可以把特定的Java代码与每个标记都关联起来。例如,如果要访问一个天气情况数据库,而且需要输出当前的天气状况。那么,就可以在JSP中插入JDBC程序代码直接查询数据库,把这些代码封装到一个Java Bean内,或者把它定义成一个标记库。

2 标签库的特性

2.1 易于在多个项目上安装

标签很容易从一个JSP项目移植到另一个项目。一旦建立了一个标签库,只需要把这个标签库定义成一个JAR文件就可以在其他JSP项目中重新使用了,而在建立标签时所加进标签的内容是不能重用的。因为标签可以重新使用,所以标签库可以很方便地用于其他的项目。.

2.2 易于扩展JSP功能

标签库具备JSP规范中的任何特性和功能。这也意味着拥有无限的能力可以扩展和增加JSP的强大功能却无需等待新版本JSP的发布。甚至于,完全可以取消页面上的JSP include调用功能,只需用include标签建立自己的规范就行了。

2.3 易于维护

标签库的定义使用使得JSP Web应用程序变得很容易维护,从而减轻开发人员的负担。

3 使用标签库taglib技术简化程序设计

<htm L>、<table>等均为HTML中的标签,而<jsp:forward>是一个标签库中的某个标签,其中Jsp为该标签库的库名,forward为标签名称。

在JSP中,一个标签看起来很象一个标准的HTML标签。但是,它的逻辑不在客户端被执行,而是由服务器端的Servlet来转换。每个标签被封装到一个独立的类,它的名字和参数属性被一个特殊的.tld扩展名的部署描叙文件指出。

通过使用标签库技术也能使网页设计师不用编程JSP的Java代码就操作复杂的数据库和事务等。特别适用于需要重复使用某一段程序的地方。

4 标准标签库的应用方法

标准标签库(JSTL)是一组能够方便用户操作的标签,能够完成很多常用的功能。JSTL在刚开始时是作为一个开源项目供大家使用的,在JSP2.0之后,JSTL已经成为JSP的一部分。标准标签库是根据JSP提供的自定义标签机制完成的。自定义标签能够把一些处理功能封装起来,其使用与普通的JSP标签一样简单。标准标签库的用法与所的自定义标签库的用法完全相同。

要使用自定义标签库中的标签,需执行如下几个过程:

编写标签库、部署标签库、使用taglib指令声明要使用的标签库、访问标签库中的标签。

1)编写标签库包括两部分:编写实现文件和编写标签库描述文件。因为标签库实际上就是使用java文件实现功能,然后像使用普通JSP标签那样使用自己定义的标签库,所以需要编写功能的实现文件。

2)部署标签库:就是把要使用的标签库放到应用中。标准标签库的相关文件在两个压缩包jstl.jar和standard.jar中,所以部署的时候只需把这两个压缩包放到WEB-INF目录lib子目录中即可。下载这两个压缩包的网址分别是:

http://repo2.maven.org/maven2/javax/servlet/jstl/ http://repo2.maven.org/maven2/taglibs/standard/

修改WEB-INF目录下的web.xml文件以定位标签的*.tld文件

自定义的标签库名的前缀,请不要用servlet, sun, 和sunw做为前缀

进行标记使用声明,声明此JSP文件使用了自定义的标签,同时引用标签库,也指定其标签的前缀。

</taglib-location>

</taglib>

</web-app>

3)JSP页面上的标签库声明:使用标签库标示符即可方便地声明页面上存在的标签。标签库在页面上声明之后,就可以随意使用它们了。例如:

<% @ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core”%>

该标签库的标识是http://java.sun.com/jsp/jstl/core,前缀是c.

4)使用标签库的标签:

标签库中标签的使用方法应该依据tld文件对该标签的描述来确定。如:

5总结

JSP标签从本质上代表着一个JSP功能的调用,即一个标签的使用就是一次函数调用。同时标签也具有Java Bean所具有的业务逻辑处理能力。其优点是JSP标签能够处理JSP正文的内容,比如改变页面的显示样式,而Java Bean不可以;JSP标签接口简单,易于实现,也易于开发和维护。而缺点是JSP标签在进行部署时要比Java Bean复杂得多,主要体现在配置JSP标签库描述文件tld上。

参考文献

[1]李绪成.Java Web程序设计基础教程[M].西安:西安电子科技大学出版社,2007:61-64.

[2]杨树林.Java Web应用技术与案例教程[M].北京:人民邮电出版社,2011:19-42.

JavaWeb平台 篇7

电子邮件系统经过几十年的发展,已经形成了完善的技术体系。邮件服务系统在保留了电子邮件系统最初的收发邮件,邮件存储等基本功能的同时,融入了最新的计算机与网络技术,使电子邮件系统有了全新的改观。电子邮件系统在结构上分为两个部分:人机界面和邮箱传输。人机界面负责为用户提供管理邮箱的界面,通常包括写信,收件箱,草稿箱,已发邮件,已删除,附件管理。人机界面的功能是通过电子邮件客户程序完成;邮件传输负责将邮件从发送端传递到接收端,相当于邮局,具有发送,接收和存储转发功能[1]。

用户最初只能通过microsoft outlook,exchange等软件来收发邮件,但这样的邮件系统需要用户安装email客户端软件,需要配置客户端软件,而且不能满移动办公用户的需要。基于Web的邮件系统彻底解决了上述问题,用户只要打开浏览器就可以进行email的收发,其快捷、方便的优点吸引了众多的网络用户。

与此同时,随着企业以及其他事业单位规模的扩大和业务的扩展,其内部不同部门之间的交流日趋频繁,以及其越来越重视信息在企业内部的流转来保证企业信息的安全,传统的电话,手机交流方式已经远远不能适应新的发展需要。邮件服务提供商使用的邮箱系统能很好的处理私人邮件,但如果用于企业内部的邮件服务则具有一定的局限性:1邮件存储空间的制约。2普通邮件系统难以与其他管理流程进行集成[2]。

因此根据企业内部自身需要设计开发企业内部邮件管理系统变得非常迫切。本文针对企业内部邮箱系统的研究进展进行了综述,内容组织如下:第2节介绍企业内部邮箱的概念、特点和目标;第3节描述Java Web企业内部邮箱系统的相关技术;第4节就现有企业内部邮箱系统的设计思路,实现办法进行详细的分析;第5节为结束语,给出了目前企业内部邮件系统所面临的挑战,使我们明确了下一步的设计和研究方向。

2企业内部邮箱的概念、优势和目标

2.1企业内部邮箱的概念

所谓企业内部邮箱,就是以企业域名的后缀开的邮箱,然后由邮箱系统管理员分配给自己的员工使用。比如说一个企业的域名是www.abc.com,那么它的内部邮箱服务器的地址就是mail.abc.com,那么用户的邮箱ddd@abc.com就是企业内部邮箱。

2.2企业内部邮箱的特点

企业内部邮箱的特点有以下7个:

(1) 全面体现企业形象:以企业域名为邮箱后缀,所有员工邮箱均为“abe@企业域名”,树立统一的企业形象,方便企业形象推广,邮箱用户名可以采用员工姓名,便于记忆。

(2) 克服员工流动影响:员工离职,企业邮箱可以顺利收回,从而将所有业务联系保留和延续下来。若日常工作使用个人邮箱,员工离职不会上缴,客户可能仍然与其个人邮箱联系而被一起带走。

(3) 便于企业管理:可以根据企业需要自主开设企业邮箱,可自由命名、分配容量、分组、群发、设定功能限制以及权限设置等,方便企业的统一管理。

(4) 增强内部信息沟通和协同办公能力:利用企业邮箱的部分高级功能可实现来信自动分拣,对常见咨询问题自动解答等,提高工作效率,增进内部信息沟通和协同办公能力。另外,企业内部邮箱是办公的邮箱,和其他私人邮箱区别开来,以免员工没有收到工作邮件。

(5) 企业邮箱现在的最大容量达到无限存储,是个人邮箱不能比的[3,4]。

2.3企业内部邮箱的目标

为了实现邮箱系统在企业内部高效地、可靠地,安全地运行,企业内部邮箱系统应实现以下目标:1用户使用方便,不需使用其他软件发送或者接受邮件,如在ERP(Enterprise Resource Planning)中包含邮件发送和接收功能。2邮件传输安全可靠,高效快捷。3邮件存放安全可靠,不易受到病毒的攻击。4邮件存储空间利用率高,文件发送者和接收者之间共享。5减少用户的等待时间,提高邮件的读取速度。6能对邮件进行控制和清理,实现邮件系统与其他管理流程无缝集成[5,6]。

3 Java Web企业内部邮箱系统的相关技术

3.1邮箱系统的工作原理

邮箱系统是一种新型的信息系统,是通信技术和技术结合的产物。一系列的协议来保证电子邮件能够正常发送和接受。其中最主要的几个协议是SMTP(简单邮件传输协议)、POP3(邮局协议第3版)和IMAP(Internet消息访问协议)。IMAP也是收邮件的协议,它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。它们的关系如图1。

MUA表示邮件用户代理(Mail User Agent),就是用户用于编辑或者处理邮件的客户端软件,包括发送端和接收端;MTA表示邮件传输代理(Mail Transport Agent),就是在互联网上传送邮件的SMTP服务器或转发服务器;MDA表示邮件投递代理(Mail Delivery Agent),就是将邮件放入用户邮箱Mailbox的程序[7]。

电子邮件从发送方到接收方的传递过程是这样的:邮件的发送者应用MUA写了一封新邮件,然后通过SMTP协议将邮件发送给MTA。如果这封邮件的收件人是本地用户,MTA则将其交给MDA,MDA再将该邮件投递到收件人的邮箱中,收件人就可以通过MUA读取该邮件;如果收件人是远程用户,MTA就会通过SMTP协议将其发送给另外一个SMTP服务器的MTA,MTA判断收件人是远程用户还是本地用户再采取上述同样的操作,一直到该邮件存储到收件人的邮箱为止。收件人利用POP3/IMAP协议读取邮件。

我们来模拟一封邮件从发出到收到的过程。用户使用Out Look Express(邮件用户代理或者叫邮件客户端)向Sendmail(邮件传输代理)请求发送电子邮件服务,将邮件交给Sendmail。Sendmail根据邮件的目的地址,将邮件发送给接收邮件服务器,接收邮件服务器会将这封邮件缓存,等待用户来取邮件。收件人用Out Look Express向接收邮件的服务器发出取信的请求,接收邮件服务器将邮件发送给收件人(IMAP或POP服务)。至此,一封邮件从发送者处到达接受者处[8,9]。

3.2 Apache James2.3.1邮箱服务器

邮件服务器的性能直接关系到邮箱系统的性能,因为要求邮件服务器其具备较高的硬件设施,且置于主干网络上,以确保系统对带宽的要求。邮箱服务器通常选用开源的Apache James2.3.1。

Apache James2.3.1邮箱服务器是一个用Java实现的企业级邮箱服务器,可移植,安全稳定。James的mailet对Email所起的作用与servelets对Web服务器的作用很类似。

James的源代码完全用Java语言编写,因而可以满足最大化可移植能力的目标。James即提供了保护自身服务器环境的一些安全特性也提供了安全以实现安全的目标。James所具有的多线程应用程序的功能利用了很多Avalon框架提供的好处。James提供了一整套的通信服务,这些服务主要是用Matcher和Mailet APIs实现的。James支持SMTP,POP3和IMAP协议和其他一些协议。James采用松散耦合的嵌入式设计以保证消息框架与协议无关,因而James支持诸如即时消息那样的消息协议[10,11]。

3.3 Java Mail

Java Mail API是J2EE技术框架的一部分。该组件提供了一个平台无关、协议独立的框架,预置了一些最常用的邮件传送协议的实现方法,通过一组API来模拟邮件系统,提供Email的发送和接收服务。它借鉴了MAP、MAPI、CMC等系统API的设计,采用面向对象的思想将接口与现实相分离,支持存取方式、消息格式、消息传送协议等不同的邮件消息系统,可以简便的为应用程序增加Email支持,广泛应用于邮件和消息应用系统。Java Mail支持POP3、MAP4、SMTP、IMAP协议。

J a v a Ma i l A PI封装了电子邮件功能:邮件对象发送、身份认证、接收等功能。其核心类有:Session、A u t h e n t i c a t o r、A d d r e s s、M e s s a g e、Tr a n s p o r t、Store、Folder等。其中Session是邮件操作的接口,用于建立邮件的基本会话;Authenticator类提供访问邮件服务器所需的认证消息;Message类描述基本的邮件信息,是收发邮件的操作单位;Transport类是发送邮件时所用的协议,通常是SMTP;Store类模拟了消息数据库以及其内部存储消息目录的访问协议;Folder类用于描述消息数据库中的目录结构。每个Session会有多个Transport,每个Store包含一系列的Folder和Message,每个Folder包含一系列的Folder和Message。借助于这些类,就可以构建各种典型的邮件应用[12,13]。

4现有企业内部邮箱系统的设计思路和实现办法

4.1优化数据库的邮箱系统

文献[14]提出了基于数据库的企业内部邮箱系统的设计方案。该方案中,邮件不是存放在邮箱服务器中,而是存放在数据库中,邮件在发送和下载时,进行了加解密处理,邮件的发送者和接受者共享数据库中的文件。同时规定,只有最后一位拥有这个邮件的人才有权利将这封邮件从数据库中删除。该邮箱系统通过增加新邮件的探测功能,文件上传和删除邮件的新方法,实现了多人共享文件并极大地节省了存储控件的消耗;采用多种数据库设计技术,提高了邮件的读取速度和安全性能。最后通过实验说明了方案的正确性。该邮箱系统已经在学校的办公教学管理系统中得到非常广泛的应用。

文献[15]给出了基于.NET平台的B/S结构的内部邮件系统的设计思路。在ASP.NET和SQL Server平台下进行开发,系统由用户界面层、中间业务逻辑层、后台处理数据层三层组成。SQL Server是微软公司推出的关系数据库系统,具有很大的伸缩性,不仅能作为单用户数据库,也可以作为网络数据库。C#中的Sql Connection可以直接连接SQL Server数据库,它的速度比OLE DB方式快许多。同时,应用程序与数据库连接后,检索数据并把它们保存在内存中,然后就断开连接。如果需要内存中的数据更新数据库,就建立一个新的连接,有效的减少每个客户端应用程序对数据库连接的占用。

文献[16]设计实现了基于XML的企业内部邮件系统。该内部邮箱系统仍然按照B/S结构模型设计,体系结构分为下面4层:显示层,数据传输层,数据处理层,数据存储层。对于显示层,和其他邮箱类似,采用了树形结构来显示邮件系统的用户界面。对于数据传输层,采用的是Web Services和Socket的方式实现数据的传输与通信。对于数据处理层,负责邮件系统的的所有数据处理工作,是一个Windows服务程序,由数据接受中心,命令中心,XCPU缓存,数据处理中心和邮件发送中心等部分组成。数据存储层采用XML格式存储,使得数据可以通过网络无障碍地进行传输,简化了数据的维护与备份,具有良好的通用性、可移植性。该邮箱系统的框架结构如图2。

4.2实现办公自动化的邮箱系统

为实现高校办公自动化的目标,文献[17]设计开发了一个基于局域网的高校内部邮件系统。该内部邮件系统采用B/S结构,采用VS2013作为开发工具,数据库为My Sql。结合HTML、ASP.NET和C#语言来完成系统的开发。该内部邮件系统涵盖发送信息,已发送邮件,已删除邮件,草稿箱和垃圾箱等功能模块,实现了广义邮箱的全部功能。最后,给出了该邮箱系统的测试用例和测试效果。该邮箱系统可以有效提高高校各部门之间的交流效率和信息传递的准确性,而且可以有效的与其他办公软件集成,提高高校办公自动化水平。图3给出该邮箱系统的的请求和响应图。

文献[18]给出了一种针对企业的内部邮件系统,该系统选择目前比较流行的Lotus Notes作为系统的支撑平台。Notes集成了电子邮件,文档数据库,Web服务器,目录复制,移动办公等功能。该系统采用组件加框架的技术架构,该架构包含了统一的用户界面,提供标准的借口。该系统在继承了Notes邮箱模板的基础上,支持SMTP、POP3、IMAP等常用邮件协议。用户可以通过Notes客户端、Web浏览器等方式访问邮件系统,但是如果采用B/S的客户端访问模式,将会带来极大的方便。该系统不但含有邮箱系统的全部功能,而且还满足企业本地化,客户化的功能需求,使用户能够对自己的邮件完成快速准确的复合条件查询,并对查询结果直接进行删除,导入excel等操作。

4.3应对通信故障的邮箱系统

文献[19]针对中小型轧钢企业内部邮件系统模型进行了深入的研究并给出了解决方案。在一个中小企业局域网中,建立一个完整的以Exchange Server为核心的邮件系统,域控制器和邮件服务器独立开来,选用一台Exchange服务器提供电子邮件服务,域控制器做用户账号的管理以及DNS解析,如果网内有空闲服务器,可以建议用户做备份域控制器和邮件服务器双机高可用系统。这样,可以实现域控制器和Exchange应用服务器的双重备份。如果网内没有空闲服务器,可以定期的做域控制器的备份,这样,当域控制器出现故障时,可以在用户允许的时间内做用户账号的恢复。

文献[20]给出了一种提高通信效率的邮箱原型。针对邮件发送信息过程中的通信故障和以外通信失误,引入了计算机中介传媒来收回邮件,避免了邮件的丢失。我们研究了可行的方法,以提高计算机复杂通信和相应的设计了一个原型,其强调一个信息交流的电子邮件用户界面策略称为情境作为获得有效的沟通和支持,有效的管理和控制核心组成部分组织活动,特别是处理订单,价格报价,并监控供应及安装的产品。

5结束语

邮件系统的研究一直是热点,在最近几年已获得了长足的发展,邮件系统的性能得到了很大的提高。但是,如何构建高效、稳定、安全、易用、可扩展、功能丰富的电子邮件系统是目前企业内部邮件系统所面临的挑战。主要包括以下几个方面:

(1) Web应用程序不可避免的会有频繁的数据库操作,建立数据库连接和关闭数据库连接是很耗费资源和时间的操作。JDBC频繁的建立和关闭数据库连接,从而导致Web服务器性能下降。

(2) 垃圾邮件的过滤一般采用较为简单的策略,易于实现,且方便用户配置,但是不够灵活,容易产生错误过滤,而且拦截效率不高,有待改进。

(3) 如何利用邮件加解密以及邮件签名来解决企业内部邮箱系统的安全问题。

JavaWeb平台 篇8

在互联网高速发展的今天,网络购物已成为时下的消费主题。与此同时,对于销售者,销售管理的方便与安全即已成为管理者的关注焦点;大多数具体的小型商会,目前仍采用传统的管理方式,就是根据顾客订购商品,填写纸质订单票据,手动记录顾客的信息,商品信息、价格等;这样的管理方式复杂、笔误频发,且不易更改、更易丢失,对商会的利益造成损害。因此,本系统设计并完成了一款针对小型商会的管理系统,实现传统纸质票据到电子票据的转变,既方便了销售信息的专业记录,又能有效地减少错误概率,更避免了票据丢失。

而且,随着互联网技术的日趋成熟,网上销售系统的设计开发已成为研究学界的潮流发展态势。基于此,商会贩卖系统也必将呈现出可观的发展潜力及广阔发展前景。本文即针对这一课题展开研究论述。

1 开发技术简介

1.1 Java编程语言

Java是Sun微系统公司在1995年首创推出的,一种跨平台、并适用于分布式计算环境的面向对象编程语言。虽与C++语言的有可比及相通性,但Java语言却要比C++语言更易于操作使用。具体来说,Java具有如下特性:简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。使用Java编写的应用程序,既可以在一台单独的电脑上实现运行,也可以被分布在一个网络的服务器端和客户端获得运行,方便用户使用和维护。

1.2 Oracle数据库系统

Oracle是以高级结构化查询语言(SQL)为基础而构建衍生的大型关系数据库,通俗地讲就是用优势高效逻辑管理的语言调度处理大量有规律数据的集合。而且,Oracle已经成为目前流行排行居于首位的客户/服务器体系结构的数据库之一。通过提供与第三代高级语言的接口软件PRO*系列,即可在C、C++、Java等主语言中嵌入SQL语句及过程化(PL/SQL)语句,实现对数据库中数据的管理与操作。不仅如此,Oracle还有许多优秀的前台开发工具,可以快速开发生成基于客户端PC平台的应用程序,并具有良好的移植性。此外,Oracle数据库系统则可通过网络较安全读写远端数据库里的数据,而且还拥有对称复制的技术,为用户提供了高端便利及理想设计。

2 系统功能实现

2.1 销售科员工功能设计

商会贩卖系统由顾客发起需求,销售科员工根据顾客的定制内容,进入订单管理模块,使用订单输入功能,为指定顾客输入订单,并生成唯一的订单编号,以供财务科员工登记订单金额;每天下班前,可以使用商品出库功能,查看今日的商品卖出数量和金额统计,以便向后台管理汇报今日的销售情况;每月月结时,使用顾客月报和商品月报功能,打印预览当月顾客的订单情况和商品的销售情况;销售科员工还可以使用库存信息功能,随时查看商品的库存情况,库存不足时,尽快通知采购科员工进行补充添置,销售科功能框图如图1所示。

2.2 财务科员工功能设计

2.2.1 商会收入登记功能

财务科员工可以使用应收账款管理模块的功能,对销售科员工输入的订单进行金额的登记,并定期对存在欠款的顾客发放催款单,作为提醒顾客付款的目标效应实现作用;对于定期结款的顾客,财务科员工使用到款登记功能,对其付款的金额和订单进行登记,形成从欠款到付款的完整记录循环。

2.2.2 商会支出登记功能

财务科员工可使用应付账款管理模块的功能对商会的支出进行管理。根据采购科员工制作采购单时生成的采购单编号,对供货商的欠款进行登记;并且对于商会的定期付款,首先由财务科员工使用付款发票制作功能生成付款发票,然后再使用到款登记功能进行登记处理,财务科功能框图如图2所示。

2.3 仓库科员工功能设计

仓库科员工使用采购管理模块的功能等,对商会提供后勤保障工作。仓库科员工可根据实际的商品库存情况使用商品采购单制作功能,可通过供货商编号,检索出该供货商对本商会提供的所有商品,通过复选框的方式进行采购单的制作,生成唯一的采购单编号,以便财务科员工进行支出登记;对于获得采购的商品,仓库科员工负责检验商品的质量,对于合格的商品,使用检品入库功能进行登记,成功后可对供货商启动付款,并由财务科员工同时完成付款登记,功能框图如图3所示。

2.4 管理科员工功能设计

管理科员工可使用信息管理模块的功能对顾客信息和商品信息进行维护。当商会新增合作顾客时,管理科员工可以使用新增功能添加新顾客,输入顾客的地址、电话等信息,保存入库,以便对顾客设置特定服务;若顾客更换联系方式或搬迁时,可对顾客信息进行修改,以便提供送货上门等服务;对于取消合作的顾客,提供删除信息的功能;对于商品信息,商会可以新增出售的商品,填写商品信息,也可以根据实际情况更换供货商等,对商品信息实现必要修改;对于下架的商品,提供删除功能,这些工作可由管理科员工负责执行并完成。管理科功能框图如图4所示。

3 系统结构与流程

3.1 系统人物关系

如图5所示,为本系统涉及所有人物的关系图,包括商会员工、商会的长期合作顾客、商会的商品供应商3类人物。系统运行时,根据顾客的要求,商会的各个部门员工各司其职,为顾客提供需求服务,并登记买卖信息,以便查看和校对;而且,员工还可对商会仓库的商品数量开展定期查看与全程监控,当数量不足时,及时向供货商补充进货,达到智能预测库存,并登记应支付的货款等信息;与此同时,员工则可应顾客要求,对顾客的地址等信息执行可靠弹性更改,方便货物的准确实时送出。

3.2 系统运营流程

商会贩卖系统共分为5个功能模块,分别是:订单管理模块、应收账款管理模块、采购管理模块、应付账款管理模块、信息管理模块。具体地,销售科员工可以使用订单管理等有关销售的功能,负责与顾客交流互动,登记顾客的需求订单,并能够统计一月当中顾客的订单,和每月对应商品的销售情况,也可以监控商品库存;财务科员工可以使用应付账款管理和应收账款管理等有关收款、欠款的功能,妥善登记顾客欠款、付款和商会的欠款、付款;仓库科员工可以使用采购管理等功能,为商会提供“后勤保障”,遇到仓库商品不足时,及时发出采购单,避免缺货断货现象的出现,同时还将行使对采购的商品进行检查和登记入库的职责;管理科员工可以应顾客要求,对顾客和商品的信息进行更改,以便商会在必要时能够迅捷获得与顾客和供货商的现实联系,系统流程如图6所示。

4 结束语

本次设计提出的商会贩卖系统,适用于商会出货订单和进货采购的管理,涉及到公司员工、下单顾客、供货商等多方的使用,另外,还实现有欠款和待收款的登记,是一套完整的商会日常收支,管理系统。系统的设计从商会最基本的需要出发,完成了5个主要功能模块,从顾客订单的发起,到商品的出库,再到顾客欠款和付款的登记;从采购部门的采购单制作,及至商品的到货入库,再到商会对供货商的欠款和付款的登记;实现完整的商会日常出货与进货机制,形成良性循环,符合实际商会的日常运作,达成预期指定设计目的,获得了良好设计效果。

参考文献

[1]阮燕辉.浏览器/服务器应用开发[M].北京:科学出版社,2000.

[2]孙卫琴,李洪成.Tomcat与Java Web开发技术详解[M].北京:电子工业出版社,2003.

[3]ARNOLD K.Java程序设计语言[M].北京:人民邮电出版社,2006.

[4]耿祥义.JSP基础编程[M].北京:清华大学出版社,2004.

JavaWeb平台 篇9

利用Mat Lab(MATrix LABoratory)专业软件对数据处理的能力,可以充分利用各种数学理论,提高Web网站的数据挖掘、分析、处理能力。然而,目前已知的相关内容都是简单的应用方法描述,并无对相应问题的处理方案。本文在描述Web网站中应用MCR进行开发的流程同时,进一步解决了各种可能遇到的问题,为类似开发提供了完善的解决方案。

1 Java Web网站应用Matlab流程

1.1 Web应用MCR(Matlab Compiler Runtime)过程说明

1.1.1 生成Matlab的jar包

为了在Java中调用Matlab Compiler Runtime来运行Matlab类库,首先需要生成运用于Java环境的jar包。

(1)启动Matlab2008a,通过File→New→Deployment Project打开建立新项目的窗口,选择Matlab Builder JA,在Name输入框中,更改Untitled1.prj为Logistic.prj,并确定。

(2)通过File→New→M-File建立Matlab的程序文件Logistic.m[4],并输入处理内容:

(3)在Setting中设置General,在Generate Verbose Output前打勾,Object Instances Share MCR则不打勾。

(4)设置完成后,将编译好的Logistic.m文件拖动到项目默认的Logisticclass文件夹下,再点击编译按钮,生成对应jar包Logistic.jar[2]。

1.1.2 设置Web网站服务器环境变量

Web网站是以一个平台设置的,简单以tomcat部署的网站为例,使用的是jdk1.5.0_08。

(1)确认服务器上已经安装jdk1.5.0_08和tomcat,且网站已经部署[3]。

(2)将Matlab安装路径R2008atoolboxcompilerdeploywin32下的MCRInstaller.exe复制到服务器上,并安装Matlab Compiler Runtime到默认的C盘。

(3)修改环境变量,配置JAVA_HOME,CLSSPATH和PATH后,检查jdk,javabuilder等路径。需要注意的是,jdk版本需要与Matlab生成jar包的jdk版本最好一致[4]。

1.2 JAVA_HOME路径

jdk安装路径,如:

1.3 CLASSPATH路径

其中注意,有的机器是不加javabuilder路径可以,但是有的机子,却会找不到这个变量,必要时进行检查。

1.4 Path路径

1.5 网站开发环境搭建及代码主要过程

(1)在WEB-INF内,加入Matlab中的javabuilder.jar和生成的Logistic.jar

(2)建立Java文件,命名为Logistic DAO.java,首先添加引用:

(3)建立do Beta方法,如图1所示。

(4)建立do Logistic方法,抽取相关矩阵信息后,传入do Beta方法中,进行参数调用。

(5)建立中间Logistic Service文件,用于获取Logistic DAO处理的数据结果,并进行包装处理

(6)通过建立Servlet文件:public class Logistic Service Servlet extends Http Servlet,在其中调用Logistic Service.do Logistic方法,具体见附录B。

(7)在web.xml中添加

1.6 网站定时任务

如果像示例一样,因为网站功能需要加入定时任务,可以通过在Web中添加监听器[5],只是在定时任务中增加类似Servlet的对Matlab生成类的声明即可。

1.7 各种问题的解决方案

MCR一直挂起的问题解决方案:

在Matlab编译的时候,有些人点选了Object Instances Share MCR,实际上会造成启动Logisticclass后,就会始终启动MCR,而不会结束,形成挂起,这个在Main的静态方法中,大家可以试验得到。

Java环境无法启动问题解决方案如图2所示。

在调用jar包的时候,明明简单的调用可以使用,但在网页、定时器或者稍微复杂的dao处理中,调用时,出现Java is not enabled这样的错误。

这个实际是由于Matlab要求首先启动jar包中的类,如定时器中:

就是为了事先定义Logisticclass传递给DAO进行数据处理

1.8 MCR环境变量无法找到的解决方案注意事项

(1)首先检查系统环境变量path,java_home,classpath是否有遗漏。

(2)如果是使用Weblogic服务时,注意需要保证jdk一致。需要专门设置Matlab_JAVA的变量,具体应当指向Weblogic安装时安装的目录下,如D:beajdk150_04jre。

(3)如果都确定没有遗漏,依旧有路径问题“Failed to find the runtime libraries,required by Matlab Builder JA,on system path“这样的错误。则要在系统调用前,指定“java.library.path”属性,System.set Property("java.library.path","C:Program FilesMatlabMatlab Compiler Runtimev78untimewin32");此路径,由服务器安装的路径进行相关设置。

2 相关技术介绍

2.1 Matlab

Matlab是美国Math Works公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括Matlab和Simulink两大部分。它提供的Matlab Compiler Runtime[6]与Matlab Builder JA[7]联合工作可以为Java环境提供数据处理、分析、计算等功能[8]。

2.2 Logistic模型

Logistic模型是由Martin于1977年被提出,用以预测公司的破产和违约概率的模型。此模型根据银行,投资者的风险偏好设定风险警戒线,以此进行风险定位。其预测能力优于Z-Score和ZETA模型[9]。1983年,Madalla采用Logistic模型区别违约与非违约贷款申请人,并计算出违约概率p≥0.551时是风险贷款,p<0.551时是非风险贷款[10]。David West于2000年研究表明,Logistic具有很高的判别准确率。高于神经网络模型和统计分量模型[11]。目前为止,众多研究表明,Logistic回归模型不要求数据满足正态分布。因此,在满足正态分布的条件下,Logistic回归模型与判别分析模型具有相同的判别准确率,而在不满足正态分布的条件下,Logistic回归模型具有更高的精度[9]。

3 应用分析

本解决方案特别适用于需要对数据深入分析,进行各种科学计算的应用网站系统,例如,客户信用分析系统。电力营销对客户信用风险分析的场景中,需要通过对数据的进一步分析[12],通过层次信用模型对用户的信用进行计算,再根据抽样的信用数据,通过二元Logistic逻辑回归模型进行分析,利用Matlab语言,对数据进行处理后,计算出用户各项风险参数权重,最终可以分析出用户在未来违约的可能概率,从而为电力公司提供客户安全风险依据。

4 结语

本文专门针对在Web中应用Matlab Compiler Runtime(MCR)时的各种问题,提供了对应的解决方案,在一定程度解决了由于Matlab提供的Java Builder(Matlab Builder for Java)暂未完善导致的网站部署问题,为类似开发提供了完善的解决方案。今后会在解决方案型的基础上继续完善,更深入地研究应用各种数学工具进行科学计算的优化、容错策略。

摘要:为了应用专业数据软件Matlab,提高供电企业网站对用户信用分析的处理能力,在应用MatLab提供的MCR,实现Web网站对数据分析处理的功能同时,通过源码分析和进程跟踪对MCR与Java的结合与应用的过程进行仔细的对比分析。在不同的部署环境中,设置好应用MCR所需的相同环境变量后,对Web网站运行情况的结果进行对比,整理出各种由于MCR本身与Java版本造成的冲突,导致Java网站无法正常应用MCR处理数据的解决方案。该方案为相关业务领域开发提供了有效的技术支持,创造了很好的社会效益和经济效益。

关键词:Web应用,MatLab,Java,MCR

参考文献

[1]王正盛.Matlab数学工具软件简明教程[D].南京:南京航空航天大学,2002.

[2]杨晓霞,侯锐锋.Visual C#.NET,Delphi,Java与Matlab接口技术的研究[J].云南大学学报:自然科学版,2008(z2):247-249.

[3]陈宏希,邹益民.用Matlabcontrol实现Java与Matlab的混合编程[J].工业仪表与自动化装置,2012(3):27-30.

[4]张崇明,汪春梅,朱品昌,等.使用Java扩展Matlab[J].计算机应用与软件,2006(6):1563-1565.

[5]冯文龙,雷景生.基于Web服务的存储网格数据交换[J].计算机工程,2007,33(19):109-111.

[6]向遥,李宏,谢政.运用Java编程扩展Matlab虚拟现实的交互功能研究与实现[J].计算技术与自动化,2006(1):83-85.

[7]]杨斌.Linux系统下Java与Matlab混合编程及应用[J].电脑编程技巧与维护,2010(8):29-31.

[8]林美,吕新安,齐从谦.基于Matlab与Java的混合编程研究及实现[J].农业网络信息,2006(12):31-34.

[9]MARTIN D.Early warning of bank failure:a logit regression approach [J].Journal of Banking and Finance,1977 (3):249-276.

[10]MADALLA S G.Limited-dependent and qualitative variables in econometrics [M].Cambridge:Cambridge University Press,1983.

[11]WEST D.Neural network credit scoring models [J].Computer & Operations Research,2000,27:1131-1152.

【JavaWeb平台】推荐阅读:

逻辑平台07-14

融资平台07-14

平台软件07-15

咨询平台07-21

攻防平台05-11

维修平台05-13

平台网纹05-13

三维平台05-15

平台安全05-16

学习平台05-16

上一篇:医院财务系统下一篇:作文教学中的创新教育