hãng hàng không.
Airlines.jsp
Input: Tên thành ph đi và tên thành ph đ n
Output: Mã hãng hàng không (g i sang trang FlightTimings.jsp)
Ng i s d ng Màn hình nh p n i xu t phát và đích đ n Màn hình nh p mã chuy n bay L p FlightInfo (C s d li u Oracle) Màn hình hi n th gi bay Airlines Flighttime
Oracle 9i AS Wireless Edition GVHD: ThS. Hoàng C ng
SVTH: Tr n Thanh Nhân – Nguy n Qu c Chính Trang 139
<?xml version = "1.0" encoding = "UTF-8" standalone="yes" ?>
<jsp:useBean id="flightInfo" class="info.FlightInformation" scope="session" /> <%@ page import="java.util.*" %>
<SimpleResult> <SimpleContainer>
<%
//L y các tham s tên thành ph đi và tên thành ph đ n t Flight.jsp g i sang
String boarding = request.getParameter("boarding"); String destination = request.getParameter("destination");
//L y các hãng hàng không có bay chuy n trên t c s d li u
ArrayList airlines = flightInfo.getAirLines(boarding, destination); int noOfAirlines = airlines.size();
StringBuffer availableAirlines= new StringBuffer(); for (int i=0; i<noOfAirlines; i++){
availableAirlines.append("<SimpleStrong>").append((String)airlines.get(i)).append( "</SimpleStrong><SimpleBreak/>");
}
if (noOfAirlines != 0){ %>
<SimpleForm target="FlightTimings.jsp" method="POST">
//Hi n các hãng hàng không ra màn hình n u có
<SimpleTextItem>
Cac Chuyen Bay Tu <%=boarding%> Den <%=destination%> Tu Hom Nay Cho Toi Cuoi Tuan:
</SimpleTextItem> <SimpleBreak/> <SimpleTextItem>
<%=availableAirlines%> </SimpleTextItem>
<SimpleFormItem name="flight" title="Ma Chuyen Bay" /> </SimpleForm>
<% }else{
%>
// Thông báo n u không có chuy n bay
<SimpleTextItem>
Khong Co Chuyen Bay Nao Giua Hai Thanh Pho Ban Da Chon Cho Toi Tuan Sau </SimpleTextItem> <% } %> </SimpleContainer> </SimpleResult>
Oracle 9i AS Wireless Edition GVHD: ThS. Hoàng C ng
SVTH: Tr n Thanh Nhân – Nguy n Qu c Chính Trang 140
5.2.4.3 Trang hi n th gi bay c a các chuy n bay c a hãng hàng không đã nh p. nh p.
FlightTiming
Input: Mã hãng hàng không Output: Th i gian bay
<?xml version = "1.0" encoding = "UTF-8" standalone="yes" ?>
<jsp:useBean id="flightInfo" class="info.FlightInformation" scope="session" /> <%@ page import="java.util.*" %>
<SimpleResult> <SimpleContainer>
<SimpleForm target="Flights.jsp" method="POST"> <%
//L y mã hãng hàng không t Airlines.jsp g i sang
String flight = request.getParameter("flight");
ArrayList flightTimings = flightInfo.getNextFlight(flight); int flights = flightTimings.size();
StringBuffer availableTimings= new StringBuffer(); for (int i=0; i<flights; i++){
//Ghép chu i gi bay đ hi n ra màn hình availableTimings.append("<SimpleStrong>").append((String)flightTimings.get(i)) .append( "</SimpleStrong><SimpleBreak/>"); } if (flights != 0){ %>
//Hi n các gi bay c a các chuy n n u có
<SimpleTextItem>Gio Bay Cua Cac Chuyen Bay</SimpleTextItem> <SimpleBreak/>
<SimpleTextItem><%=availableTimings%></SimpleTextItem> <%
}else{ %>
//Thông báo n u không có chuy n nào
<SimpleTextItem>
Khong Co Chuyen Bay Nao Cua Hang Hang Khong Ban Chon Cho Toi Cuoi Tuan </SimpleTextItem> <% } %> </SimpleForm> </SimpleContainer> </SimpleResult>
Oracle 9i AS Wireless Edition GVHD: ThS. Hoàng C ng
SVTH: Tr n Thanh Nhân – Nguy n Qu c Chính Trang 141
5.2.4.4 File class dùng trong javabean, đ c d ch t file .java FlightInformation.java FlightInformation.java package info; // Sql Imports import java.sql.Connection; import java.sql.SQLException; import java.sql.ResultSet; import java.sql.PreparedStatement; import java.sql.DriverManager; // Util Imports import java.util.ArrayList; import java.util.Calendar; public class FlightInformation{ private Connection conn = null;
//K t n i c s d li u Oracle
private void getConnection() throws Exception{ if (conn == null){
String dbString = new
String("jdbc:oracle:thin:@chinh.oaswe.local:1521:GDB"); Class.forName("oracle.jdbc.driver.OracleDriver"); oracle.jdbc.driver.OracleDriver()); conn = DriverManager.getConnection(dbString,"scott","tiger"); } } // óng k t n i
private void closeConnection() throws SQLException{ if (conn != null){ conn.close(); conn = null; } } //L y tên, mã các hãng hàng không t c s d li u
public ArrayList getAirLines(String boarding, String destination) throws Exception{
ArrayList airlines = new ArrayList(2); this.getConnection();
PreparedStatement pstmt = conn.prepareStatement("SELECT INITCAP(Name), FlightCode " +" FROM Airlines
Oracle 9i AS Wireless Edition GVHD: ThS. Hoàng C ng
SVTH: Tr n Thanh Nhân – Nguy n Qu c Chính Trang 142
ANDLOWER(TRIM(Destination))" +" = LOWER(TRIM(?))"); pstmt.setString(1, boarding);
pstmt.setString(2, destination);
ResultSet rset = pstmt.executeQuery(); String name = null;
String code = null; while (rset.next()){ name = rset.getString(1); code = rset.getString(2); airlines.add(name + " (" + code + ")"); } rset.close(); pstmt.close(); return airlines; }
//L y ngày gi bay c a hãng hàng không t c s d li u
public ArrayList getNextFlight(String flightCode) throws Exception{ ArrayList flightTimings = new ArrayList(2);
this.getConnection(); PreparedStatement pstmt =
conn.prepareStatement("SELECT INITCAP(Day), Time FROM FlightTime " +"WHERE LOWER(TRIM(FlightCode)) = LOWER(TRIM(?))");
pstmt.setString(1, flightCode);
ResultSet rset = pstmt.executeQuery();
Calendar calendar = Calendar.getInstance();
int today = calendar.get(calendar.DAY_OF_WEEK); int time = calendar.get(calendar.HOUR_OF_DAY); int flightDay;
Oracle 9i AS Wireless Edition GVHD: ThS. Hoàng C ng
SVTH: Tr n Thanh Nhân – Nguy n Qu c Chính Trang 143
String weekDay = null; while (rset.next()){
flightDay = rset.getInt(1); flightTime = rset.getString(2);
if((today < flightDay) || ((today == flightDay) && (time < Integer.parseInt(flightTime.substring(0,flightTime.indexOf(":")))))){ switch(flightDay){
case 1: weekDay = "Sunday"; break;
case 2: weekDay = "Monday"; break;
case 3: weekDay = "Tuesday"; break;
case 4: weekDay = "Wednesday"; break;
case 5: weekDay = "Thursday"; break;
case 6: weekDay = "Friday"; break;
case 7: weekDay = "Saturday"; break; } flightTimings.add(weekDay + " (" + flightTime + ")"); } } rset.close(); pstmt.close(); this.closeConnection(); return flightTimings; } } 5.2.5 T o Master Service
Oracle 9i AS Wireless Edition GVHD: ThS. Hoàng C ng
SVTH: Tr n Thanh Nhân – Nguy n Qu c Chính Trang 144 T ng t nh trong vi d tên nh ng trong v ng d ng này ta có th ch n thêm check box Async Agent b c th 6 đ cho phép ng i s d ng có th giao ti p v i ng d ng b ng các giao th c khác ngoài HTTP nh thông th ng.
5.2.6 T o Service
cho service có th s d ng đ c thông qua async agent service thì ta ph i khai báo thêm s tham s cho Async Agent b c th 4.
5.2.7 Test ng d ng
5.2.7.1 Test trên webtool c a wireless server
Ta vào service designer (http://hostname:port/webtool/login.uix). ng v i m i master service thì c t gi a có bi u t ng hình mobile phone, ta nh n vào bi u t ng đó. đây ta ch n bi u t ng t ng ng v i master service là Flight Information.
Hình 5.2.7.1.a: Màn hình nh p đ a đi m đi và đ a đi m đ n
Ta nh p vào thành ph xu t phát và thành ph đích r i nh n submit.
Oracle 9i AS Wireless Edition GVHD: ThS. Hoàng C ng
SVTH: Tr n Thanh Nhân – Nguy n Qu c Chính Trang 145 Ta nh p vào mã hãng hàng không r i nh n submit.
Hình 5.2.7.1.c: Màn hình hi n ngày gi bay
Oracle 9i AS Wireless Edition GVHD: ThS. Hoàng C ng
SVTH: Tr n Thanh Nhân – Nguy n Qu c Chính Trang 146
5.2.7.2 Trên Simulator
Trên Simulator (Nokia Mobile Internet Toolkit 3.1 + Nokia 6590 Mobile Handset ) Truy c p vào URL : http://hostname:port/ptg/rm t thanh address c a toolkit . Khi đó Nokia 6590 Mobile Handset s connect vào wireless server và hi n th lên màn hình.
Hình 5.2.7.2.a: Màn hình ch n folder
Ch n th m c examples (vì ta đ t service filghtinfo trong th m c này).
Oracle 9i AS Wireless Edition GVHD: ThS. Hoàng C ng
SVTH: Tr n Thanh Nhân – Nguy n Qu c Chính Trang 147 Ch n vào m c FlightInfo đ th nghi m ng d ng.
Hình 5.2.7.2.c: Màn hình nh p đ a đi m đi và đ a đi m đ n
Màn hình s hi n ra m t form vào ta nh p vào thành ph xu t phát và thành ph đích. nh p vào ô starting point thì tr c tiên ta dùng công c di chuy n đ n field starting point và nh p vào nút có bi u t ng là g i đi n tho i . Sau đó ta nh p vào thành ph xu t phát b ng các kí t trên công c . Sau khi nh p xong thì ta l i nh n nút “g i đi n tho i” . Ta làm t ng t v i tr ng destination. Sau đó ta ch n nút submit và nh n ch n.
Oracle 9i AS Wireless Edition GVHD: ThS. Hoàng C ng
SVTH: Tr n Thanh Nhân – Nguy n Qu c Chính Trang 148 Các thông tin v các hãng hàng không có chuy n bay gi a hai thành ph xu t hi n và ta nh p vào mã c a hãng hàng không. Sau khi nh p xong (cách nh p t ng t nh ph n trên) thì ta ch n nút submit và k t qu ta nh n đ c là th i gian bay mà ta c n tìm. Nh n submit đ quay tr l i vi c tìm ki m chuy n bay khác.
Oracle 9i AS Wireless Edition GVHD: ThS. Hoàng C ng
SVTH: Tr n Thanh Nhân – Nguy n Qu c Chính Trang 149
6
ánh giá và h ng phát tri n
ánh giá
Oracle 9i AS Wireless Edition GVHD: ThS. Hoàng C ng
SVTH: Tr n Thanh Nhân – Nguy n Qu c Chính Trang 150
6.1 ánh giá
tài nghiên c u : Oracle 9iAS Wireless Edition .
L nh v c thông tin di đ ng đã phát tri n r t m nh trong nh ng n m g n đây. Nhu c u đáp ng thông tin cho ng i s d ng di đ ng c ng ngày m t l n. Vì v y nhu c u xây d ng, phát tri n, qu n lý các ng d ng di đ ng ngày càng t ng. S n ph m Oracle 9iAS Wireless đã đáp ng m t cách đ y đ các yêu c u này.
ây là m t đ tài t ng đ i m i, và ph m vi ng d ng khá l n. Sau n m tháng th c hi n đ tài, chúng em đã nghiên c u đ c:
Ü Lý thuy t v c s h t ng c a thông tin di đ ng.
Ü Quá trình xây d ng, phát tri n,tri n khai ng d ng trong thông tin di đ ng
Ü Cách th c qu n lý h th ng thông tin di đ ng, bao g m : qu n lý các d ch v di đ ng và qu n lý ng i dùng các d ch v di đ ng đó.
Ü Xây d ng m t s ng d ng minh h a cho các d ch v tra c u thông tin trên thi t b di đ ng.
6.2 H ng phát tri n
Chúng em s c g ng phát tri n, m r ng các ng d ng trên cho th c t h n. V i các hi u bi t v công ngh này, mong r ng trong t ng lai chúng em s có đi u ki n đ tham gia tri n khai nó vào th c t t i Vi t Nam.