_WML信息查询与后端信息发布系统实现——WML信息查询设计(毕设+实现+源码+数据库)

113 篇文章 0 订阅
111 篇文章 0 订阅

WML信息查询与后端信息发布系统实现

——WML信息查询设计

摘    要

21世纪,人类社会已进入崭新的信息化时代信息技术正以前所未有的速度发展,人们对信息的交互需求也与日俱增。无线通讯技术以及手机终端的发展,从一定程度上满足了人们的需求,人们随时随地上网已经基本实现。首先,无线通讯技术的发展使基于WAP方式的信息浏览查询存在技术前提,这也是我们系统存在的前提;其次,随着无线通讯技术以及手机终端的发展,在当前的无线网络环境下,通过本信息发布系统,人们可以自由发布信息和查询信息,从而实现随时随地的信息交互。结合系统开发所需要的及现行的数据管理技术,系统采用了tomcat+My eclipse +SQL server 2005数据库进行开发,开发语言为java + WML + WML script。系统完成就酒店、景区等信息的发布,管理,维护等功能,并实现了Internet WEB与WAP两种方式对信息的浏览查询。系统以提供操作简单方便、快捷,易懂易用为开发目标,用户界面设计简洁,操作使用方便,及具有高效的数据处理能力。而SQL SERVER 2005数据库以其强大的数据管理功能保证用户数据的稳定和安全。

关键词信息查询;WML;WAP;WML script

The Implement of WML Information Query and Background Information Release System

---The Implement of WML Information Query

Abstract

In the 21st century, it is an information age, in which the information technology develops more rapidly than ever before. Besides, the interaction between people and their need for information are increasing correspondingly. The development of the wireless communication technology and the mobile terminal has satisfied such kind of  needs at a certain extent, and people's access to network in anywhere and at anytime has came true. Firstly, the wireless communication technology provides the precondition to information browsing and querying which bases on WAP mode, and it is also the precondition to our system. Secondly, as the development of wireless communication technology and the mobile terminal, people can release and query information freely. And through this middle system in the wireless environment, people can obtain information in anywhere and at anytime through wireless net and mobile terminal. Combinated the needs of middle system development with current data management technology, the system is developed by using tomcat+Myeclipse + SQL server 2005 in java & WML &WML Script language. The system has the function of information release, management and maintenance, and two modes of information access have been implemented, which are WEB and WAP. The purposes of this system are easy handling, easy studying and understandability. So, the user interface is terse and it is very convenient to handle. And more, the system has strong data processing ability. And the SQL SERVER 2005 ensures the stabilization and security through its powerful data management ability.

Key words: Information query; WML; WAP; WML script

目  录

LW总页数:22页

1 引言

1.1项目研究背景

1.2项目研究意义

2 相关技术简介

2.1 WML简介

2.2 WML Script

2.3数据库连接池概述

3 需求分析与系统总体设计

3.1 系统需求分析

3.2 系统设计原则

3.3 系统功能介绍

3.4 系统流程图

3.5 数据库设计

4 具体的设计流程和实现

4.1 系统数据库的连接

4.2 系统功能模块设计与实现

4.2.1 注册模块的设计………………………………………………………………..

4.2.2 登陆模块的设计………………………………………………………………..

4.2.3 查询模块的设计………………………………………………………………..

4.2.4与发布系统的连接模块的设计………………………………………………...

    

参考文献

    

    

1 引言

1.1项目研究背景

在信息化时代的今天,如何方便快捷地进行信息的交互已经成为人们的热门话题。随着无线通讯技术以及手机终端的发展,随时随地进行信息的交互已经成为现实,WAP技术的出现犹如无线通讯的世界的一道曙光,使无线网络发生了革命性的变革。

WML语言是通过WAP浏览页面的解释语言。现在人们用无线通讯设备可以随时随地访问WAP网站,还可以通过WAP与Internet互联。但是在生活中,虽然大部份信息可以十分方便地通过WEB浏览查询方式得到,但是确不能满足移动的需要,而通过WAP方式也只能查询到有限的信息。大量信息需求者不能方便、及时地得到信息,而信息掌握者却没有一个良好的平台进行消息的发布,本系统试图实现这样的一个后端发布系统:信息所有者能及时方便的发布各类信息,信息查询者也能及时地通过WAP手机、PC机进行信息的查询,并做一定程度的互动。这正是本系统存在的前提;通过后端信息发布系统,人们可以通过WML页面及WEB等方式发布和获取信息,从而实现WAP与WEB之间的信息资源共享。

从狭义上讲,后端信息发布系统是能把人们通过WEB与WAP方式输入的信息进行分类整理储存在数据库中,并产生相应的可供浏览的页面的系统。而广义上,它应该是对大流量和多种类的信息进行综合处理的平台,包括了相关的一系列的服务模块,从而实现WAP与WEB之间的信息共享。

1.2项目研究意义

在WEB已经十分成熟和普及的今天,WAP异军突起。一夜之间,WAP网站如雨后春笋般出现在我们的面前。新生的WAP宠儿拥有如此强大的生命力,但是相对WEB的这位成熟的大哥,它又显得如此的弱小。如何能把WEB的强大与WAP的方便紧密地结和起来就成了这个项目的研究意义。WAP虽然仅仅是一个互联网和手机的联系起来的协议,但是它的巨大意义就在于:它象是一种催化剂,催化了互联网和手机的结合,得到的不仅仅是一种新物质(WAPS手机),而是一个大得超乎你的想象的新市场:

1)WML信息查询与后端发布系统将带给每一个用户诸多好处:更加的便宜,更加的简单、易学的上网操作,可以随时随地的收到和发布自己需要的资讯,成为自己的一个流动资料库,方便出外旅游。

2)WML信息查询与后端发布系统还带给了ICP 无限的商机:一个全新的无线互联网市场,只要准确的选取互联网资讯和移动用户需求信息之间最恰当的结合点,那么该市场将为网络服务商带来巨额的利润;可以避开激烈竞争且门槛较低。

2 相关技术简介

2.1 WML简介

WML代表Wireless Markup Language,就象HTML对普通的Web浏览器一样。有人说它是基于XML,但是更准确地说WML是XML的一个应用。虽然在语法上和HTML相似,但更多的是XML。

WML被读取并且通过WAP设备中的浏览器解释,然后显示在屏幕上。WAP是英文“Wireless Application Protocol”的缩写,是“无线应用协议”之意,它由一系列协议组成,用来标准化无线通信设备。对于WAP设备所使用的浏览器,或者用户代理,通常叫做微型浏览器,微型浏览器的功能是受到WAP设备的限制的,WAP页面的主要语言就是WML以及WML Script。与PC机领域比较,WAP手机或者WAP设备上的微浏览器相当于IE,而WML则相当于Html。

WML是一种比较严格的语言,字符使用必须遵守相应的规则,这些基本规则主要包括以下几个方面:

1) 大小写敏感。在WML中,无论是标签元素还是属性内容都是大小写敏感的,这一点继承了XML的严格特性,任何大小写错误都可能导致访问错误。

一般来说,WML的所有标签,属性,规定和枚举及它们的可接受值必须小写,Card的名字和变量可大写和小写,但它是区分大小写的。包括参数的名字和参数的数值都是大小写敏感的,例如variable1、Variable1和vaRiable1都是不同的参数。

2) 空格。对于连续的空字符,程序运行时只需要一个空格。属性名、符号(=)和值之间不能有空格。

3) 标签。标签内属性的值必须使用双引号(")或单引号(’)括起来。对于不成对出现的标签,必须在大于号(>)前加上顺斜杠(/),比如换行标签必须写成<br/>才正确。

4) 不显示的内容。在WML中,不显示的字符主要包括换行符、回车符、空格和水平制表符,它们的8位十六进制内码分别为10、13、32及9。

程序执行时,WML将忽视所有的多于一个以上的不显示字符,即WML会把一个或多个连续的换行、回车、水平制表符及空格转换成一个空个。

5) 保留字符。这是WML的一些特殊字符,如小于号(<)、大于号(>)、单引号“’”、双引号“"”、和号(&)。

6) 显示汉字。如果希望WML程序执行时能够显示汉字,则只需要程序开头使用encoding指定汉字字符集即可。例如:<?xml version="1.0" encoding="gb2312">。需要注意的是,指定汉字字符集的形式和方法可能因为开发工具或WAP手机的不同而不同。

合法的WML卡片组均属合法的WML文件,因此它必须包含WML的声明及文件类型的声明。典型的WML程序的文件头包括我们前面多次提到的以下两行程序:
<?xml version="1.0"?>
<!DOCTYPE-wml-PUBLIC-"-//wapforun//DTD-WML-1.1//EN""http://www.wapforum.org/DTD/wml_1.1.xml">

编写WML程序时,我们必须写入这两行程序,并放在程序的开始处。其中"-//wapforun//DTD WML 1.1//EN"是标准通用标记语言SGML的公共标示;"http://www.wapforum.org/DTD/wml_1.1.xml"是WML程序文档类型的标示。文档类型标示也可以是"text/vnd.wap.wml"或“application/vnd.wap.wmlc”,其中前者制定WML的原文类型,后者制定WML程序编译后代码类型以下是本系统的一个简单的WML页面代码示例:

<?xml version="1.0" encoding="utf-8"?> //指定XML编码及页面字符集

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">//声明页面符合W3C标准

<% response.setContentType("text/vnd.wap.wml"); %>//为了建立一个有效的WML信息实体(MIME type),必须在文件的开场白之前指定文件的类型:

<wml>  

<card id="login" title="Register Screen">//每一个card为一个手机页面

   <p align="center">

      <br/>

      User Name: <input name="LogonName" type="text" emptyok="false"  value=""/>   //用户名输入框,类型为文本,不能为空,属性名为LogonName

      <br/>

      Password: <input name="LogonWord" type="password" emptyok="false" value=""/>//密码输入框,类型为密码,不能为空,属性名为LogonWord

   </p>

   <do type="prev" label="Next">//确认按钮,点击跳到下一页面

  <go href="./chklogin.jsp" method="get">

    <postfield name="username" value="$(LogonName)"/>

    <postfield name="password" value="$(LogonWord)"/>

  </go>  

   </do>

</card>

</wml>

基于WAP协议以及WML语言,用户能通过WAP设备访问WAP站点,从而获取到位于移动互联网上的信息。二者的结合将移动网络和Internet紧密地联系起来,提供一种与网络种类、承运商和终端设备都无关的移动增值业务。

WAP的服务内容主要包括World Wide Web信息浏览、E-mail收发、IRC网上实时聊天和Newsgroups新闻组讨论等。WAP只要求移动电话和WAP代理服务器的支持,而不要求现有的移动通信网络协议作任何的改动,所以WAP能同时适用于CDMA、DETC、GSM、IMT-2000等多种不同的移动通信系统。WAP协议堆栈的设计也力求使所需带宽最小化,并对各种网络技术和服务提供广泛支持,包括短消息服务SMS、USSD、CDPD等。而且,WAP建立了一个比较松散的层次结构,每层的开发独立于其他层,这样就比较容易能够引入新的传输协议和服务类型。

2.2 WML Script

WML Script是属于无限应用协议WAP应用层的一部分,使用它可以向WML卡片组和卡片中添加客户端的处理逻辑,目前最新的版本是1.1版。WML Script1.1是在欧洲计算机制造商协议会制定的ECMA Script脚本语言的基础上,经过修改和优化而指定的。它能够更好的支持诸如移动电话类的窄带宽通信设备,在WML编程中使用WML Script可以有效的增强客户端应用的灵活性,而且,我们也可以把WML Script作为一个工具使用,开发出功能强大的WAP网络应用和无线网页。

WML Script具备的WML所不能具备的优点和功能,主要包括如下几个方面:

1) 检查用户输入的合法性;

2) 扩展用户浏览器的功能,比如允许程序员开发手机的电话呼叫、发送短信息、存储电话号码、管理电话簿或SIM卡等;

3) 生成用户端的确认、提示、警告信息或操作对话框,并使之快速显示在浏览器上;

4) 在用户浏览器的更改后,能够对浏览器端的软件和参数进行扩展与配置;

5) 最大程度克服客户端的乍带宽通信连接限制,并提供丰富的程序功能;

6) 补充WML并使之实现针对微型移动终端设备的多种服务,如支持高级用户界面、增加客户端智能型、提供用户浏览器外围功能的访问能力,以及在服务器与客户端浏览传输数据是减少带宽占用等。

2.3数据库连接池概述

本系统作为后端信息发布系统,需要进行信息的发布、修改、查询等操作。由于对数据库的访问量比较大,因此需要配置数据库连接池。连接池的目的是用来建立一些和数据库的连接,使用户访问数据库时可以直接使用这些现成的连接。如果不建立连接池,每个用户每一次访问数据库时都要建立一次连接,这样容易产生连接过多的错误,用户也会觉得速度很慢。

数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。

数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。

3 需求分析与系统总体设计

3.1 系统需求分析

需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。本项目WML信息查询及后端发布系统,它的主要功能就是把WEB与WAP的信息共享发布及查询。用户可以通过WAP或WEB中的任何一种方式实现信息的交互。而后端发布系统的管理模块则只需要在WEB上做就可以了。而WAP模块要根据无线网络的一些特点,整个模块应该尽量达到界面简洁,信息冗余量小的特点。根据系统分析,后端发布系统的要求如下。

1) WEB与WAP模块均有以下功能:个人注册,登陆,发布信息,查询信息等基本功能。

2) 用户还可以对信息进行更新,删除等一些基本操作。

3) WEB模块还能对客户信息的进行管理,能够对客户用户管理,用户的密码修改功能。

4) WEB模块对发布信息的管理,该功能可以对发布信息进行增加、删除和修改,并且可以对热点信息进行推荐操作,而WAP模块也可以浏览到这些热点推荐信息。

5) WEB模块对公告信息的管理,能够将最新的站内信息发布到公告栏中。

3.2 系统设计原则

系统的设计原则如下:

1) 方便性原则:

用户简洁界面友好,操作使用方便简单,具有高效的数据处理能力。

2) 兼容性原则:

对于所选软硬件系统及平台,能很好地适应开发和使用的需要。

3) 规范性原则:

软件设计过程严格按照“信息系统开发方法”的原则,分析阶段、设计阶段和实现阶段。

4) 先进性原则:

采用目前先进的计算机软硬件技术,使系统具有较高的技术水平和较长的生命周期,便于系统的维护。

3.3 系统功能介绍

1) 普通用户可以注册,登陆,查询和发布信息。此功能为在WEB和WAP模块均可以实现。

2) 系统管理员可以通过WEB 模块对整个系统进行管理,可以对信息进行更新,删除,添加及推荐等操作。

3) 系统管理员还可以通过WEB模块对整个系统的用户进行各种管理,比如添加,删除用户等。

4) 普通用户可以对自己的信息进行更新和删除,但是WAP模块只能对一些重要信息进行操作。

下面是后端发布系统的系统设计层次图,如下图1所示:

图1 系统设计层次图

3.4 系统流程图

WAP用户进入WAP主页面后,输入用户名和密码以后点击提交后,系统将根据用户输入的用户名和密码判断该用户是否为合法用户;如果用户输入的用户名和密码正确,系统将根据用户所选择的功能进行业务处理;所有合法用户在处理完业务后,都需要进行注销工作,以免被他人窃取信息。注销后,将返回到注销前的页面或网站首页。

系统流程图如图2所示:

图2 系统流程图

3.5 数据库设计

数据库设计是系统设计中非常重要的一个环节,因为数据库设计就像在建设高楼大厦的根基一样,如果设计不好,在后来的系统维护,变更和功能扩充时,甚至于在系统开发过程中,将会引起比较大的问题,有时大量的工作将会重新进行。因此,设计出合理的数据库成为本系统设计一个十分关键的步骤。

用户的需求具体体现在各种信息的提供,保存,更新和查询,这就要求数据库结构能充分满足各类信息的输入和输出。收集基本数据,数据结构以及数据处理的流程而制作一份详细的数据库需求分析表,为合理的数据库结构设计打下坚实的基础。

根据视频点播系统的一般要求,通过对整个系统运行过程和数据流程分析,得出本系统的实体表:用户信息表:yonghu、酒店信息表:xinxifabu、景区信息表:fengjing、酒店推荐信息表:htj、景区推荐信息表:ftj、公告管理表:xianshi。

根据视频点播系统的一般要求,通过对整个系统运行过程和数据流程分析,设计出实际的数据库实体,以及他们之间的关系,为后边的数据库逻辑结构设计打基础。这些实体包括各种具体信息,通过相互之间的作用形成数据的流动。

经过前面的数据库分析与设计得到数据库的逻辑结构。本系统使用Microsoft SQL Server 2000作为数据库开发工具;创建名为hiis的数据库根据各种功能的实现以及考虑到将来系统功能上的扩展,设计如下数据项和数据结构:

表1 用户信息表:yonghu

简称

字段名

类型

长度

允许空

备注

用户ID

id

int

4

not null

PK

用户名

username

varchar

50

not null

密码

userpassword

char

20

not null

级别

jibie

varchar

10

not null

邮箱

email

char

10

真实姓名

xinming

varchar

50

电话

phone

char

20

表2 酒店信息表:xinxifabu

简称

字段名

类型

长度

允许空

备注

酒店ID

id

int

4

not null

PK

酒店名

hotelname

varchar

50

not null

电话

phone

varchar

50

not null

一般房间

yiban

varchar

50

not null

豪华房间

gaoji

varchar

50

高级房间

haohua

varchar

50

星级

grade

varchar

50

省份

province

varchar

50

not null

城市

city

varchar

50

not null

地址

address

varchar

50

not null

简介

remark

varchar

200

用户名

username

varchar

50

not null

点击率

show

int

4

not null

表名

tablename

int

4

not null

表3 景区信息表:fengjing

简称

字段名

类型

长度

允许空

备注

景区ID

fgid

int

4

not null

PK

景区名

fgname

varchar

50

not null

电话

fgphone

varchar

50

not null

价格

fgjiage

varchar

50

not null

简介

fgremark

varchar

200

not null

省份

province

char

10

not null

城市

city

char

10

not null

地址

fgaddress

varchar

50

用户名

username

varchar

50

not null

点击率

show

int

4

not null

表名

tablename

int

4

not null

表4 酒店信息推荐表:htj

简称

字段名

类型

长度

允许空

备注

推荐区ID

tjid

int

4

not null

PK

酒店名

hotelname

varchar

50

not null

电话

phone

varchar

50

not null

一般房间

yiban

varchar

50

not null

高级房间

gaoji

varchar

50

豪华房间

haohua

varchar

50

星级

grade

varchar

50

not null

省份

province

varchar

50

not null

城市

city

varchar

50

not null

地址

address

varchar

50

简介

remark

varchar

200

用户名

username

varchar

50

not null

表5 景区信息推荐表:ftj

简称

字段名

类型

长度

允许空

备注

推荐区ID

fid

int

4

not null

PK

景区名

fgname

varchar

50

not null

电话

fgphone

varchar

50

not null

价格

fgjiage

varchar

50

not null

简介

fgremark

char

200

省份

province

char

10

not null

城市

city

char

10

not null

地址

fgaddress

varchar

50

用户名

username

varchar

50

not null

表6 公告信息管理表:xianshi

简称

字段名

类型

长度

允许空

备注

公告ID

id

int

4

not null

PK

公告名

gonggao

varchar

100

not null

4 具体的设计流程和实现

4.1 系统数据库的连接

本系统采用配置连接池的方式建立同数据库的连接,其中数据库连接池的部分代码如下:

package connection;

import java.io.Serializable;

import java.sql.*;

public class DbConn implements java.io.Serializable  //串行化单个连接类

{

private Connection conn = null;//数据库连接对象conn

private boolean inuse = false;

//构造函数

public DbConn(){}

public DbConn(Connection conn){

if (conn!=null) this.conn = conn;

}

//获取数据库连接对象

public Connection getConnection(){

return conn;

}

//设置数据库连接对象

public void setConnection(Connection conn){

this.conn = conn;

}

//设置连接的使用状态

public void setInuse(boolean inuse){

this.inuse = inuse;

}

//获取连接的使用状态

public boolean getInuse(){return inuse;}

//关闭连接

public void close(){

try{conn.close();}

catch (SQLException sqle){System.err.println(sqle.getMessage());}}}}

4.2 系统功能模块设计与实现

4.2.1 注册模块的设计

  • 功能简介:系统的所有用户都能使用“注册”模块的功能。“注册”模块提供WAP用户注册功能。因为是WAP页面,考虑到无线网络的带宽相对较窄,所以页面不应该用大量图片或文字,应尽量简洁方便,注册信息也尽可能简洁。
  • 实现方法:当用户输入注册信息后,系统将注册用户名同数据库表中的值进行比较,通过执行数据库的查询语句,如果注册用户名已经存在则不能注册,反之把注册信息插入数据库,注册成功。

注册页面如图3所示:

图3 注册页面

注册页面的代码如下:

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"

"http://www.wapforum.org/DTD/wml_1.1.xml">

<% response.setContentType("text/vnd.wap.wml"); %>

<wml>

  <card id="register" title="Register Screen">

   <p align="center">

      <br/>

      User Name: <input name="RegisterName" type="text" emptyok="false"  value=""/>   

      <br/>

      Password: <input name="RegisterPwd" type="password" emptyok="false" value=""/>

            <br/>

      True Name: <input name=" TrueName" type="text" emptyok="false" value=""/>

            <br/>

      Email: <input name=" Email " type="text" emptyok="true" value=""/>

            <br/>

      Phone: <input name=" Phone " type="text" emptyok="true" value=""/>

   </p>

   <do type="prev" label="Next">

  <go href="./chklogin.jsp" method="get">

    <postfield name="username" value="$( RegisterName)"/>

    <postfield name="password" value="$( RegisterPwd)"/>

    <postfield name="truename" value="$( TrueName)"/>

    <postfield name="email" value="$( Email)"/>

    <postfield name="phone" value="$( Phone)"/>

  </go>  

   </do>

</card>

</wml>

注册验证的部分代码如下:

<%

  String username=new String(request.getParameter("RegisterName ").getBytes("ISO8859_1"),"GBK");

  String password=new String(request.getParameter("RegisterPwd ").getBytes("ISO8859_1"),"GBK");

  String email=new String(request.getParameter("Email ").getBytes("ISO8859_1"),"GBK");

String xinming=new String(request.getParameter("TrueName ").getBytes("ISO8859_1"),"GBK");

  String phone=new String(request.getParameter("Phone ").getBytes("ISO8859_1"),"GBK");

  int rank=0; //设置新用户为普通级别的用户

  boolean valid=true; //判断是否注册合法

  String err=""; //注册不合法的提示信息

  //加载数据库驱动并用连接池连结数据库

  String sql="";

  Connection con = null;

  try{

      if (pool.getDriver()==null){

    pool.setDriver("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //加载驱动

    pool.setURL("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=HIIS"); //设置数据源

    pool.setUsername("sa");

    pool.setPassword("sa");

    pool.setSize(5); //设置最大连接数

    pool.initializePool(); //初始化连接池

  }

  con = pool.getConnection(); //获取连接

  Statement statement = con.createStatement();

      sql="select ID from yonghu where Name='"+username+"'";

      ResultSet rs=statement.executeQuery(sql); //执行查询操作

      if (rs.next()){

         //如果相同用户名存在

  err+="<h3>该用户名已经存在,请更换用户名!</h3>";

  valid=false;

        }else{

         sql="insert into yonghu (username,userpassword,rank,email,xinming,phone) values ('"+username+"','"+password+"','"+jibie+"','"+email+"','"+xinming+"','"+phone+"')";

         statement.executeUpdate(sql);

       }

  //释放数据库连结

     pool.releaseConnection(con);

  }catch (Exception e){

   out.println(e.getMessage());

   }

  //根据注册结果判断

  if(valid) { %>

  <h3>Congratulate You<%=username%></h3>

  <h3>You are success,please check your registe information</h3>

  <p></p>    

    You have already the legality userYou can do

  <a href="index.jsp">login </a>

  <% }

else{ %>

  <%=err%>

  <a href="javascript:history.back();">back</a>

  <% } %>

4.2.2 登陆模块的设计

  • 功能简介:本项目的WAP模块不支持匿名浏览,所以所有的WAP用户必须先要登陆才能进行其他的业务操作。
  • 实现方法:登陆模块采用与SQL数据库连接通过比较用户输入的信息与数据库中的数据判断用户的是否为合法用户。登录身份分为:查询用户及发布用户。同一用户名不能重复登陆,当用户在处理完业务后,可以进行注销操作。

登录页面如图4所示:

图4 登录页面

登陆验证的部分代码如下:

Statement statement = con.createStatement();

      sql="select * from yonghu where username='"+username+"' and userpassword='"+password+"' and jibie='"+jibie+"'";//查询是否有此用户

      ResultSet rs =statement.executeQuery(sql);

      if (rs.next()){

               success=true;

       }else{

          success=false;

       }

      pool.releaseConnection(con);

  }catch (Exception e){

out.println(success);

   out.println(e.getMessage());

   }

  Vector UserList=(Vector)session.getAttribute("userlist");

  if(UserList==null){

                     UserList=new Vector();

                    }

   if (success){

       session.setAttribute("username",username);

       UserList.addElement(username);

       for(int i=0;i<UserList.size()-1;i++)

       {

          if(username.equals(UserList.elementAt(i).toString()))

          {

              UserList.removeElement(username);

              valid=false; %>

</span>          <h3><span class="STYLE4"><%=username%><span class="style2">该用户已在线上,请不要重复登陆</span></span></h3>

          <span class="STYLE4">

          <%}

       }

       if(valid)

       {

           session.setAttribute("userlist",UserList);

   session.setAttribute("username",username);

       session.setAttribute("jibie",jibie);

  if(jibie.compareTo("2")==0)

           response.sendRedirect("xiugai.jsp?username="+String.valueOf(username));

 else if(jibie.compareTo("1")==0)

           response.sendRedirect("index.jsp?username="+String.valueOf(username));

 else

    response.sendRedirect("guanli.jsp?username="+String.valueOf(username));

}

   }else{%>

4.2.3 查询模块的设计

  • 功能简介:WAP系统的登录用户都能使用“查询”模块的功能。“查询”模块提供酒店景区等信息的查询。
  • 实现方法:当用户输入搜索关键字后,系统将关键字同数据库表中的值进行比较,通过执行数据库的查询语句,返回符合关键字的所有数据。

查询及查询结果页面如图5所示:

图5 查询及查询结果页面

查询模块部分代码如下:

boolean success=false;

  String(request.getParameter("jwt_province").getBytes("ISO8859_1"),"GBK");

  String city=new String(request.getParameter("jwt_city").getBytes("ISO8859_1"),"GBK");

  String fenlei=new String(request.getParameter("fenlei").getBytes("ISO8859_1"),"GBK");

  String sql="";

  Connection con = null;

  try{

      if (pool.getDriver()==null){

    pool.setDriver("com.microsoft.jdbc.sqlserver.SQLServerDriver");

    pool.setURL("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=HIIS");

    pool.setUsername("sa");

    pool.setPassword("sa");

    pool.setSize(5);

    pool.initializePool();

  }

      con = pool.getConnection();

      Statement statement = con.createStatement();

      sql="select * from xinxifabu where province='"+province+"' and city='"+city+"' and tablename='"+fenlei+"'";

String sql1="select * from fengjing where province='"+province+"' and city='"+city+"' and tablename='"+fenlei+"'";

ResultSet rs =statement.executeQuery(sql);

4.2.4与发布系统的连接模块的设计

  • 功能简介:WAP系统可以对WEB发布系统的信息进行查询及更新,WEB发布系统也可以对WAP系统的信息进行查询及更新。中间件系统把两个系统的信息连接从而实现共享信息。
  • 实现方法:WAP系统只是整个系统的一部分,整个系统通过数据库连接池共用一个数据库,所以WAP系统可以对数据库中的一些表进行操作,而这些表是整个中间件系统所共享的。能过对数据库的共享从而达到与发布系统的信息共享。

结    论

经过三个多月的设计和开发,WML信息查询与后端发布系统基本开发完毕。其功能基本符合用户需求,能够完成对酒店景区等信息的发布,管理,维护等功能,实现了有线网络与无线WAP两种方式对信息的浏览查询。并提供部分系统后台管理功能,使用户方便进行数据的添加、修改和删除。但是由于自身经验及组员之间协调等原因,所以该系统还有许多不尽如人意的地方,具体如下:

1) 由于是做WAP页面,没有真实手机测试,只能在模拟器上测试,所以在真机上有可能出现一些变形及乱码等现象,通过指定页面字符集可以解决这些问题,如果因为一些老的WAP手机不支持此字符集,就没有办法了。

2) 由于当初对系统的理解上出现了一些问题,前期把大部份精力用于做HIMS,但是后来这一部分并没有集成到本项目之中。

3) 由于自身开发应用系统经验上不的不足,对开发的模式不是很清楚,采用了java Model 1。把很多java 代码放到了页面中,导致后期的维护及修改功能十分麻烦。

4) 由于对项目的需求不是很明确,当初本想引用的如Ajax等技术不得不放弃。

5) 由于是两个共同开发的,当初数据库没有定好,导致后期修改数据库,十分麻烦,最后大家协商把数据库表结构改成一直并通过。

参考文献

[1] 耿祥义,张跃平.java 2 实用教程[M].北京:清华大学出版社,2004

[2] 祥泉.WAP&WML手机网站开发手册[M].北京:中国青年出版社,2001

[3] 陈瑞镇,万宁.WAP网站实例解析[M].北京:中国青年出版社,2001

[4] 郑吉峰.WAP&WML技术开发手册[M].北京:中国青年出版社,2001

[5] HuwEvans,邱仲潘.WAP和WML开发指南[M].北京:电子工业出版社,2001

[6] Gil Held.IT先锋系列丛书无线数据传输网络[M].北京:人民邮电出版社,2001

[7] 赖柏谕.WAP网站开发指南[M].北京科学出版社,2001。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值