基于jee的公交查询系统的设计与实现—免费毕业设计论文内容摘要:

4 Not null placesname 商夏名称 varchar 50 null ( 7)站点与商厦关系表 stplace(如表 ) 第 9 页 共 30 页 表 站点与商厦关系表 列名 中文名称 数据类型 长度 允许空 StId 站点号 int 4 Not null placeId 商厦号 int 4 Not null ( 8)留言信息表 message(如表 ) 表 留言信息表 列名 中文名称 数据类型 长度 允许空 username 用户名 varchar 50 Not null messagedate 留言日期 datetime 8 Not null topic 留言主题 varchar 50 Not null 邮箱 varchar 50 null messagetext 留言内容 varchar 250 Not null id 留言序号 int 4 Not null 4 公交查询系统的设计与实现 创建管理员登录的 Servlet ( 1)打开 Eclipse 开工具,新建一个 ConfirmServlet 类 (如图 ) 图 创建管理员登录 ConfirmServlet类 ( 2)在已创建好 ConfirmServlet 类中,生成一个具有私有属性的 login()方法,该方法就是对管理员请求过 来的信息进行验证。 该方法首先利用HttpServletRequest , HttpServletResponse 进行对象初始化。 利用 第 10 页 共 30 页 HttpServletRequest 的 getParameter()来获取管理员页面传来的两个参数,一个是 adminname,另一个是 adminpassword。 然后调用自定义连接数据库类进行数据库对象实例化,最后在进行验证的时候,获取管理页面验证码,如果验证码无误就对管理员账号和管理员密码验证,最终将正确的管理员账号和管理员密码放入 session 会话变量中。 管理员登录界面 (如图 ) 图 管理员登录界面 相应代码 : private void login(HttpServletRequest request,HttpServletResponse response){ Connection conn=null。 Statement stmt=null。 ResultSet rs=null。 HttpSession session=(true)。 //如果用户 session为空重新分配一个新的 session给用户 DBConnection2 db=()。 String adminname=(adminname) ==null ? : (adminname)。 adminname =exChange(adminname)。 //字符串乱码处理 String password = (password) == null ? : (password)。 password=exChange(password)。 //字符串乱码处理 String sql=。 String rand=(String) (rand)。 String input=(vaild)。 int n=0。 try{ conn = ()。 stmt = ()。 第 11 页 共 30 页 sql = select * from administrator where adminiID = 39。 +adminname+39。 and adminipassword = 39。 +password+39。 rs=(sql)。 if(() amp。 amp。 rs!= null){ n++。 } if (n 0 amp。 amp。 (rand)){ (adminname, adminname)。 (adminpassword, password)。 (rand)。 ()。 }else{ ()。 } }catch(Exception e){ ()。 }finally{ try{ if(stmt!=null){ ()。 } (conn)。 }catch(Exception e{ ()。 } } } 创建用户登录的 Servlet ( 1)打开 Eclipse 开工具,新建一个 UserLoginServlet 类 (如图 ) 第 12 页 共 30 页 图 创建用户登录 UserLoginServlet类 ( 2)与管理员中的 ConfirmServlet 类一样,也生成一个具有私有属性的 login() 方法,该方法也同样的继承了 HttpServletRequest 和HttpServletResponse 类,通过这个类来获取用户界面请求 过来的参数,当通过用户信息验证后,同样也将用户账号和用户的密码放入 session 会话变量中,一旦用户最终关闭浏览器, session 会话变量也随即销毁。 用户登录界面 (如图 ) 图 用户登录界面 公交系统查询模块 商厦查询 商厦查询是为用户提供按具体的名称 (如 :欧尚 )查询 ,并显示到这个地点所有公交车车次的相关信息 (如 :车号 ,站点名称 ,票价 ,车子的档次和这个商厦的名称等信息 )。 而查询功能的实现是由系统的业务逻辑层中的 QueryData类来实现的。 当用户传来的车次提交信息,首先商厦 查询页面先编译成服务 第 13 页 共 30 页 器上的 Servlet,然后根据需要调用业务逻辑层中相应类。 商厦信息查询结果 (如图 ) 图 商厦查询 相应代码: public ArrayList queryPlace(String placeName,String page) { ArrayList arrayList = new ArrayList()。 DBConnection2 db=()。 Connection conn=null。 Statement stmt=null。 ResultSet rs=null。 String sql=。 try { if (placeName != null) { if (!()) { placeName = exChange(placeName)。 //字符串转码 int m = ((page) 1) * pageSize。 int i = 0。 sql=select ,ticketnote,buslevel,note from stinfo,businfo,busst where = and = and in (select stid from stplace where placesid in (select placesid from publicplace where placesname = 39。 +placeName+39。 ))。 conn = ()。 stmt=(ENSITIVE,)。 rs = (sql)。 if (()) { (m + 1)。 //将游标放到指定位置再加 1(也 是开始的第一条记录的序号) 第 14 页 共 30 页 while(i pageSize amp。 amp。 rs != null amp。 amp。 !()){ HashMap hashMap = new HashMap()。 (busnum,+(busnum))。 //将从数据库中查出的值放入 (stname,(stname))。 (ticketnote,(ticketnote))。 (buslevel,(buslevel))。 (note,(note))。 (hashMap)。 //将所有的 hashmap放入arrayList ()。 i++。 } } } } } catch (Exception e) { ()。 } finally { try { if (stmt != null) { ()。 } (conn)。 } catch (Exception e) { ()。 } } return arrayList。 } 调用此方法时,在页面中先引用包 ,再创建 第 15 页 共 30 页 QueryData 类的对象,通过对象调用 queryPlace()这个方法。 车次信息查询 车次信息查询是为用户提供一个按公交车的车号 (如 :1路 )查询,并显示该公交车的相关 信息(如:公交车的起点站、终点站、票价和车子的档次等信息)。 而查询功能的实现是由系统的业务逻辑层中的 QueryData 类来实现的。 车次信息查询结果 (如图 ) 图 车次信息查询 相应的代码: public ArrayList statisticsByBusInfo(String busNum,int page) { ArrayList arrayList = new ArrayList()。 DBConnection2 db = ()。 Connection conn = null。 Statement stmt = null。 ResultSet rs = null。 String sql =。 try { int m = (page1)*pageSize。 //计算游标的位置 int i = 0。 busNum = exChange(busNum)。 //字符串转码 if (() || busNum == null) { sql = select * from busInfo。 } else { busNum = exChange(busNum)。 //字符串转码 sql = select * from busInfo where busnum = 39。 + (busNum)+39。 第 16 页 共 30 页 } conn = ()。 stmt= (,ResultSet.CONCUR_READ_ONLY)。 rs = (sql)。 if (()) { (m + 1)。 //将游标放到指定位置再加 1(也是开始的第一条记录的序号) while (i pageSize amp。 amp。 !() amp。 amp。 rs != null) { HashMap hashMap = new HashMap()。 (BusNum,+(busnum))。 将从数据库中查出的值放入 hashmap中 (BeginSt,(beginst))。 (EndSt,(endst))。 (TicketNote,(ticketnote))。 (BusLevel,(buslevel))。 (Note,(note))。 (hashMap)。 //将所有的 hashmap放入 arrayList ()。 i++。 } } } catch (Exception e) { ()。 } finally { try { if (stmt != null) { ()。 } (conn)。 } catch (Exception e) { ()。 } 第 17 页 共 30 页 } return arrayList。 } 调用此方法时,在页面中先引用包 ,再创建QueryData 类的对象,通过对象调用 statisticsByBusInfo()这个方法。 站点信息查询 站点信息查询是为用户提供按公交车某一个站点查询到该站点需要乘坐公交车的车号。 该查询功能的实现也是由系统的业务逻辑层中的 QueryData类来实现的。 站点信息查询结果 (如图 ) 图 站点信息查询 相应代码: public ArrayList queryStInfo(String stname) { ArrayList arrayList = new ArrayList()。 DBConnection2 db = ()。 Connection conn = null。 Statement stmt = null。 ResultSet rs = null。 String sql =。 try { stname = exChange(stname)。 //字符串转码 conn = ()。 stmt=(,R)。 sql=,busIn, from busInfo,stInfo,busst where stname like 39。 %+stname+%39。 and = and =。 rs = (sql)。 while (() amp。 amp。 rs != null) { HashMap hashMap = new HashMap()。 (BusNum,+(busnum))。 //将从数 第 18 页 共 30 页 据库中查出的值放入 hashmap中 (BeginSt,(BeginSt))。 (EndSt,(EndSt))。 (Ticket。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。