当前位置:首页 > 免费毕业设计

JAVAWML信息查询与后端信息发布系统实现——WML信息查询设计(源代码+LW)

JAVAWML信息查询与后端信息发布系统实现——WML信息查询设计(源代码+LW)

  • 网站价格: 2
  • 特殊技术: java
  • 作品类型: 免费毕设
  • 售后服务:

联系方式: 微信:biyebang QQ: 629001810

作品详情

 

 

 

目录

 

系统设计


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.系统功能介绍

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

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

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

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

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

3.4 系统流程图

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

系统流程图如图2所示:

3.5 数据库设计

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

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

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

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

经过前面的数据库分析与设计得到数据库的逻辑结构。本系统使用Microsoft SQLServer 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

 

 

景区信息推荐表: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.1 系统数据库的连接

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

package connection;

import java.io.Serializable;

import java.sql.*;

public class DbConn implementsjava.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 (SQLExceptionsqle){System.err.println(sqle.getMessage());}}}}

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

4.2.1 注册模块的设计

Ø 功能简介:系统的所有用户都能使用“注册”模块的功能。“注册”模块提供WAP用户注册功能。因为是WAP页面,考虑到无线网络的带宽相对较窄,所以页面不应该用大量图片或文字,应尽量简洁方便,注册信息也尽可能简洁。

Ø 实现方法:当用户输入注册信息后,系统将注册用户名同数据库表中的值进行比较,通过执行数据库的查询语句,如果注册用户名已经存在则不能注册,反之把注册信息插入数据库,注册成功。


注册页面如图3所示

注册页面的代码如下:

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML1.1//EN"

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

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

<wml>

  <cardid="register" title="Register Screen">

   <palign="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>

   <dotype="prev" label="Next">

  <gohref="./chklogin.jsp" method="get">

    <postfieldname="username" value="$( RegisterName)"/>

    <postfieldname="password" value="$( RegisterPwd)"/>

    <postfieldname="truename" value="$( TrueName)"/>

    <postfieldname="email" value="$( Email)"/>

    <postfieldname="phone" value="$( Phone)"/>

  </go> 

   </do>

</card>

</wml>

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

<%

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

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

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

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

  String phone=newString(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 whereName='"+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 yourregiste information</h3>

  <p></p>   

    You have already the legality userYou can do

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

  <% }

else{ %>

  <%=err%>

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

  <% } %>

4.2.2 登陆模块的设计

Ø 功能简介:本项目的WAP模块不支持匿名浏览,所以所有的WAP用户必须先要登陆才能进行其他的业务操作。

Ø 实现方法:登陆模块采用与SQL数据库连接通过比较用户输入的信息与数据库中的数据判断用户的是否为合法用户。登录身份分为:查询用户及发布用户。同一用户名不能重复登陆,当用户在处理完业务后,可以进行注销操作。

登录页面如图4所示

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

Statement statement =con.createStatement();

     sql="select * from yonghu where username='"+username+"'and userpassword='"+password+"' andjibie='"+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><spanclass="STYLE4"><%=username%><spanclass="style2">该用户已在线上,请不要重复登陆</span></span></h3>

         <span>

         <%}

      }

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

 elseif(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所示:

查询模块部分代码如下:

boolean success=false;

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

 String city=newString(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+"'";

        Stringsql1="select * from fengjing where province='"+province+"' andcity='"+city+"' and tablename='"+fenlei+"'";

ResultSet rs =statement.executeQuery(sql);

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

Ø 功能简介:WAP系统可以对WEB发布系统的信息进行查询及更新,WEB发布系统也可以对WAP系统的信息进行查询及更新。中间件系统把两个系统的信息连接从而实现共享信息。

Ø 实现方法:WAP系统只是整个系统的一部分,整个系统通过数据库连接池共用一个数据库,所以WAP系统可以对数据库中的一些表进行操作,而这些表是整个中间件系统所共享的。能过对数据库的共享从而达到与发布系统的信息共享。

源文件


 

 

 

帮我毕业网微信

版权所有© 帮我毕业网 并保留所有权利

QQ 1370405256 微信 biyebang

QQ:629001810微信:biyebang

收缩