Bài giảng Lập trình mạng - Chương 10: Lập trình web chạy ở server bằng Java
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình mạng - Chương 10: Lập trình web chạy ở server bằng Java", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_lap_trinh_mang_chuong_10_lap_trinh_web_chay_o_serv.pdf
Nội dung text: Bài giảng Lập trình mạng - Chương 10: Lập trình web chạy ở server bằng Java
- Môn học : Lập trình mạng Chương 10 LẬP TRÌNH WEB CHẠY Ở SERVER BẰNG JAVA 10.1 Servlet Java 10.2 JSP 10.3 JSP & JavaBean Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 10 : Lập trình Web chạy ở server dùng công nghệ Java Trường ĐH Bách Khoa Tp.HCM Slide 378
- 10.1 Tổng quát về Servlet Java Servlet là ₫ối tượng Java (giống như Applet), nhưng không có giao diện người dùng, nó chạy trên máy server, giao tiếp với client của nó thông qua việc gởi nhận request/response. Viết 1 servlet cũng giống như 1 class Java bình thường khác, nhưng Servlet phải là class con của class HttpServlet và thường phải override 1 hay cả 2 method doGet() và doPost(). Template của 1 servlet : public class MyServlet extends HttpServlet { // tác vụ xử lý HTTP Get request public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } // tác vụ xử lý HTTP Post request public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 379
- Nhập/xuất thông tin của Servlet Java tham số request của 2 tác vụ doGet() & doPost() cho phép Servlet truy xuất thông tin ₫ược gởi về từ URL yêu cầu hay từ Form nhập liệu. Cách thức truy xuất tham số như sau : String tentbao = request.getParameter("txtTenthuebao"); tham số response của 2 tác vụ doGet() & doPost() cho phép Servlet xuất thông tin gởi vềứng dụng client. Cách thức xuất kết quả như sau : 'tìm ₫ối tượng xuất PrintWriter out = response.getWriter(); 'xuất kết quả out.println("chuỗi kết quả"); Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 380
- Thí dụ xây dựng 1 website bằng Servlet Yêu cầu : tạ o 1 website dùng công nghệ Servlet Java cho phép người dùng tra danh bạ ₫iện thoại bằng Web Browser. Phân tích : cần 2 module chức năng : module chứa form nhập thông tin về các account cần tra. module này có thể là 1 trang HTML thuần tứy. và module truy tìm trên database các account thỏa mãn tiêu chuẩn tìm kiếm, module này là 1 Servlet theo yêu cầu. Qui trịnh thực hiện cụ thể : ở ₫ây ta dùng môi trường lập trình JBuilder 2005. Qui trình ₫iển hình cụ thể ₫ược liệt kê trong các slide kế tiếp. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 381
- Tạo website tra ₫iện thoại bằng Servlet trên JBuilder 1. Chạy JBuilder 2005, chọn menu File.New Project rồi trả lời các cửa sổ Wizard ₫ể tạo 1 project mới quản lý Website. Lưu ý trong cửa sổ Step 1, chọn thư mục và nhập tên Project quản lý Website là ServletDBDT. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 382
- Tạo website tra ₫iện thoại bằng Servlet trên JBuilder 2. chọn menu File.New ₫ể hiển thị cửa sổ Object Gallery như hình bên. chọn nhóm Web, chọn icon Web Module ₫ể tạo Website. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 383
- Tạo website tra ₫iện thoại bằng Servlet trên JBuilder 2.1 khi cửa sổ "Select Server " hiển thị nh ư hình bên, bạn ấn dấu chọn vào checkbox "Single server ", chọn server "Tomcat 5.0" rồi ấn button OK. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 384
- Tạo website tra ₫iện thoại bằng Servlet trên JBuilder 3. chọn menu File.New ₫ể hiển thị cửa sổ Object Gallery như hình bên. Chọn nhóm Web, chọn icon Standard Servlet ₫ể tạo Servlet tra account danh bạ ₫iện thoại, rồi ấn button OK. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 385
- Tạo website tra ₫iện thoại bằng Servlet trên JBuilder 3.1 trong cửa sổ Step 1 của qui trình Wizard tạo Servlet, bạn nhập tên servlet là ServletDBDT, rồi ấn button Next ₫ể tiếp tục Step 2. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 386
- Tạo website tra ₫iện thoại bằng Servlet trên JBuilder 3.2 trong cửa sổ Step 2 của qui trình Wizard tạo Servlet, bạn ấn dấu chọn vào 2 checkbox doGet() và doPost() ₫ể tạo 2 tác vụ xử lý tương ứng, rồi ấn button Finish ₫ể hoàn tất việc tạo Servlet. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 387
- Viết code cho 2 tác vụ doGet() & doPost() của Servlet //code ₫ầy ₫ủ của servlet package servlettradbdt; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; import java.sql.*; public class ServletTraDBDT extends HttpServlet { public ServletTraDBDT() { try { jbInit(); } catch (Exception ex) { ex.printStackTrace(); } } //₫ịnh nghĩa các thuộc tính cần dùng cho Servlet private static final String CONTENT_TYPE = "text/html; charset=UTF-8"; private Connection con; Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 388
- Viết code cho 2 tác vụ doGet() & doPost() của Servlet //tác vụ khởi ₫ộng các thuộc tính public void init() throws ServletException { } //tác vụ xử lý yêu cầu HTTP Post public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //gọi tác vụ doGet() tực hiện doGet(request,response); } //tác vụ dọn dẹp các thuộc tính trước khi servlet bị xóa public void destroy() { } //tác vụ khởi ₫ộng ₫ược gọi từ init() private void jbInit() throws Exception { } Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 389
- Viết code cho 2 tác vụ doGet() & doPost() của Servlet //tác vụ xử lý yêu cầu HTTP Get public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); //tạo các tag HTML ở ₫ầu trang web kết quả out.println(" "); out.println(" SearchAccount "); out.println(" "); out.println(" Kết quả tra ₫iện thoại theo yêu cầu của bạn : "); //tìm nội dung các tham số ₫ược truyền qua Servlet String tentbao = request.getParameter("txtTenthuebao"); String sodthoai = request.getParameter("txtSodienthoai"); String diachi = request.getParameter("txtDiachi"); // xây dựng lệnh SQL tìm kiếm boolean fsqlstart = true; String newSQL = "SELECT * FROM danhbadienthoai"; Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 390
- Viết code cho 2 tác vụ doGet() & doPost() của Servlet if (tentbao != null) { if (tentbao.length() != 0) { newSQL = newSQL + " where tenthuebao like '%" + tentbao + "%'"; fsqlstart = false; } } if (sodthoai != null) { if (sodthoai.length() != 0) { if (fsqlstart) { newSQL = newSQL + " where sodienthoai like '%" + sodthoai + "%'"; } else { newSQL = newSQL + " and sodienthoai like '%" + sodthoai + "%'"; } fsqlstart = false; } } Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 391
- Viết code cho 2 tác vụ doGet() & doPost() của Servlet if (diachi != null) { if (diachi.length() != 0) { if (fsqlstart) { newSQL = newSQL + " where diachi like '%" + diachi + "%'"; } else { newSQL = newSQL + " and diachi like '%" + diachi + "%'"; } fsqlstart = false; } } //xây dựng chuỗi ConnectionString truy xuất database dùng DSN String conStr = "jdbc:odbc:MyDatabase"; //₫ịnh nghĩa các biến cần dùng Statement stmt = null; ResultSet rs = null; Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 392
- Viết code cho 2 tác vụ doGet() & doPost() của Servlet try { //kết nối database, thực thi lệnh SQL, kết quả chứa trong rs Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection(conStr, "", ""); stmt = con.createStatement(); rs = stmt.executeQuery(newSQL); int i = 1; if (rs != null && rs.next()) { //nếu có ít nhất 1 account, tạo bảng dữ liệu, hàng tiêu ₫ề và hàng dữ liệu ₫ầu tiên out.println(" "); out.println(" Số thự tự Tên thuê bao Số ₫iện thoại Địa chỉ \n"); out.println(" " + i++ +" " + rs.getString(2) + " " + rs.getString(3) + " " + rs.getString("diachi") + " \n"); Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 393
- Viết code cho 2 tác vụ doGet() & doPost() của Servlet while (rs.next()) { //lập xu ất từng hàng kết quả còn lại out.println(" " + i++ +" " + rs.getString(2) + " " + rs.getString(3) + " " + rs.getString("diachi") + " \n"); } out.println(" "); } else out.println(" Khong tim duoc account nao thoa yeu cau cua ban "); } catch (Exception e) { System.out.println("Error : " + e); } Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 394
- Viết code cho 2 tác vụ doGet() & doPost() của Servlet //₫óng các ₫ối tượng ₫ã dùng lại finally { if (rs != null) { try { rs.close(); } catch (Exception _ex) { System.out.println("Exception: " + _ex); } } if (stmt != null) { try { stmt.close(); } catch (Exception _ex) { System.out.println("Exception: " + _ex); } } } //xuất tag liên kết về trang chủ chứa form nhập liệu out.println(" "); out.println(" "); } Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 395
- Tạo trang chủ chứa form nhập liệu cần tra 4. chọn menu File.New File ₫ể hiển thị cửa sổ "Create New File" như hình dướ i ₫ây. Chọn thư mục chứa file (lưu ý ₫ể server Tomcat quản lý ₫úng Website, bạn phải chọn thư mục có chứa thư mục con là WEB-INF), nhập tên file HTML là "InputForm", duyệt tìm và chọn Type file là html. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 396
- Viết code cho trang chủ chứa form Trang Web demo việc tra danh bạ ₫iện thoại Nhập thông tin về tên thuê bao : Nhập thông tin về số ₫iện thoại : Nhập thông tin về ₫ịa chỉ : Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 397
- Kết quả chạy Servlet ServletDBDT (chọn menu Run.Run Project) Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 1: Lập trình Web chạy ở server dùng Servlet java Trường ĐH Bách Khoa Tp.HCM Slide 398
- Kết quả chạy file InputForm (chọn "Quay ve trang chu") Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 1: Lập trình Web chạy ở server dùng Servlet java Trường ĐH Bách Khoa Tp.HCM Slide 399
- 10.2 Tổng quát về JSP JSP là công nghệ script chạy ở máy server củ a SUN tương tự với ASP của Microsoft hay PHP. Hiện JSP có thể chạy trên nhiều Web server khác nhau từ Tomcat, Apache, Jrun, JavaWebServer, Một trang JSP là trang HTML có tăng cường 1 số ₫oạn script viết bằng Java. Để server nhận biết ₫ược file nào là JSP, ta luôn dùng extension ₫ã qui ₫ịnh theo cấu hình (mặc ₫ịnh là *.jsp). Đoạn script JSP ₫ược ₫óng trong tag . JSP thường dùng các ₫ối tượng Java chính quy ₫ể xử lý các giải thuật phức tạp. Các ₫ối tượng java này sẽ ₫ược ₫óng gói trong module JavaBean. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 400
- Cách viết trang JSP Trước hết cần lưu ý rằng trang JSP sẽ ₫ược dịch ra thành 1 Servlet Java trước khi ₫ược thực thi. Trang JSP là trang HTML có tăng cường 1 số ₫oạn mã Java, mỗi ₫oạn mã java thuộc 1 trong 3 loại sau : 1. Biểu thức có dạng , khi chạy biểu thức ₫ược tính và kết qu ả sẽ ₫ược thay thế vào vị trí của mã nguồn. 2. Đoạn script có dạng , sẽ ₫ượ c thêm vào tác vụ _jspService của Servlet kết quả, tác vụ này sẽ ₫ược gọi bởi tác vụ service (là tác vụ ₫óng vai trò như tác vụ doGet hay doPut)._ 3. Khai báo có d ạng , sẽ ₫ược thêm vào thân của Servlet nhưng nằm ngoài bất kỳ tác vụ nào. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 401
- Nhập/xuất thông tin của Servlet Java tham số request của 2 tác vụ doGet() & doPost() cho phép Servlet truy xuất thông tin ₫ược gởi về từ URL yêu cầu hay từ Form nhập liệu. Cách thức truy xuất tham số như sau : String tentbao = request.getParameter("txtTenthuebao"); tham số response của 2 tác vụ doGet() & doPost() cho phép Servlet xuất thông tin gởi vềứng dụng client. Cách thức xuất kết quả như sau : 'tìm ₫ối tượng xuất PrintWriter out = response.getWriter(); 'xuất kết quả out.println("chuỗi kết quả"); Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 402
- Thí dụ xây dựng 1 webiste bằng JSP Yêu cầu : tạo 1 website dùng công nghệ JSP cho phép người dùng tra danh bạ ₫iện thoại bằng Web Browser. Phân tích : cần 2 module chức năng : module chứa form nhập thông tin về các account cần tra, module này có thể là 1 trang HTML thuần tứy. và module truy tìm trên database các account thỏa mãn tiêu chuẩn tìm kiếm, module này là 1 trang JSP theo yêu cầu. Qui trịnh thực hiện cụ thể : ở ₫ây ta dùng môi trường lập trình JBuilder 2005. Qui trình ₫iển hình cụ thể ₫ược liệt kê trong các slide kế tiếp. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 1: Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 403
- Tạo website tra ₫iện thoại bằng JSP trên JBuilder 1. Chạy JBuilder 2005, chọn menu File.New Project rồi trả lời các cửa sổ Wizard ₫ể tạo 1 project mới quản lý Website. Lưu ý trong cửa sổ Step 1, chọn thư mục và nhập tên Project quản lý Website là JSPDBDT. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 1: Lập trình Web chạy ở server dùng Servlet java Trường ĐH Bách Khoa Tp.HCM Slide 404
- Tạo website tra ₫iện thoại bằng JSP trên JBuilder 2. chọn menu File.New ₫ể hiển thị cửa sổ Object Gallery như hình bên. chọn nhóm Web, chọn icon Web Module ₫ể tạo Website. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 1: Lập trình Web chạy ở server dùng Servlet java Trường ĐH Bách Khoa Tp.HCM Slide 405
- Tạo website tra ₫iện thoại bằng JSP trên JBuilder 2.1 khi cửa sổ "Select Server " hiển thị nh ư hình bên, bạn ấn dấu chọn vào checkbox "Single server ", chọn server "Tomcat 5.0" rồi ấn button OK. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 406
- Tạo website tra ₫iện thoại bằng JSP trên JBuilder 3. chọn menu File.New ₫ể hiển thị cửa sổ Object Gallery như hình bên. Chọn nhóm Web, chọn icon JSP ₫ể tạo 1 trang JSP tra account danh bạ ₫iện thoại, rồi ấn button OK. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 407
- Tạo website tra ₫iện thoại bằng JSP trên JBuilder 3.1 trong cửa sổ Step 1 của qui trình JSP Wizard, bạn nhập tên cho trang JSP là JSPTraDBDT, rồi ấn button Next ₫ể tiếp tục Step 2 (hay button Finish ₫ể chấp nhận các thông số mặc ₫ịnh cho các b ước còn lại). Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 408
- Viết code cho trang JSP như sau <%! public String SearchAccount (String tentbao, String sodthoai, String diachi) { StringBuffer table = new StringBuffer(); Connection con; // xây dựng lệnh SQL tìm kiếm theo yêu cầu người dùng boolean fsqlstart = true; String newSQL = "SELECT * FROM danhbadienthoai"; if (tentbao != null) if (tentbao.length() != 0) { newSQL = newSQL + " where tenthuebao like '%" + tentbao + "%'"; fsqlstart = false; } Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 409
- Code của trang JSP (tt) if (sodthoai != null) if (sodthoai.length() != 0) { if (fsqlstart) newSQL = newSQL + " where sodienthoai like '%" + sodthoai + "%'"; else newSQL = newSQL + " and sodienthoai like '%" + sodthoai + "%'"; fsqlstart = false; } if (diachi != null)if (diachi.length() != 0) { if (fsqlstart) newSQL = newSQL + " where diachi like '%" + diachi + "%'"; else newSQL = newSQL + " and diachi like '%" + diachi + "%'"; fsqlstart = false; } //xây dựng chuỗi ConnectionString truy xuất database dùng DSN String conStr = "jdbc:odbc:MyDatabase"; Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 410
- Code của trang JSP (tt) try { // tạo connection ₫ến database, // thực hiện lệnh SQL, kết quả trả về trong recordset rs Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection(conStr,"",""); Statement stmt = con.createStatement(); ResultSet rs =stmt.executeQuery(newSQL); int i = 1; if (rs != null && rs.next()) { //nếu có ít nhất 1 account, tạo bảng, tạo tiêu ₫ề và hàng miêu tả account ₫ầu tiên table.append(" "); table.append(" So thu tu Ten thue bao So dien thoai Dia chi \n"); table.append(" " + i++ +" " + rs.getString(2) + " " + rs.getString(3) + " " + rs.getString("diachi") + " \n"); Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 411
- Code của trang JSP (tt) //lặp xuất từng hàng thông tin account còn lại while (rs.next()) { table.append(" " + i++ +" " + rs.getString(2) + " " + rs.getString(3) + " " + rs.getString("diachi") + " \n"); } table.append(" "); } else table.append(" Không có account nào thỏa yêu cầu tìm kiếm! \n"); //₫óng các ₫ối tượng ₫ã dùng lại rs.close(); stmt.close(); con.close(); } catch(Exception e){System.out.println("Error : "+e);} return table.toString(); } %> Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 412
- Code của trang JSP (tt) JSPTraDBDT Kết quả tra danh bạ theo yêu cầu của bạn : Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 413
- Tạo trang chủ chứa form nhập liệu cần tra 4. chọn menu File.New File ₫ể hiển thị cửa sổ "Create New File" như hình dướ i ₫ây. Chọn thư mục chứa file (lưu ý ₫ể server Tomcat quản lý ₫úng Website, bạn phải chọn thư mục có chứa thư mục con là WEB-INF), nhập tên file HTML là "JSPInputForm", duyệ t tìm và chọn Type file là html. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 414
- Viết code cho trang chủ chứa form Trang Web demo việc tra danh bạ ₫iện thoại Nhập thông tin về tên thuê bao : Nhập thông tin về số ₫iện thoại : Nhập thông tin về ₫ịa chỉ : Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 415
- Kết quả chạy trang JSP (chọn menu Run.Run Project) Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 1: Lập trình Web chạy ở server dùng Servlet java Trường ĐH Bách Khoa Tp.HCM Slide 416
- Kết quả chạy file JSPInputForm (chọn "Quay ve trang chu") Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 1: Lập trình Web chạy ở server dùng Servlet java Trường ĐH Bách Khoa Tp.HCM Slide 417
- Thí dụ xây dựng 1 webiste bằng JSP Yêu cầu : tạo 1 website dùng công nghệ JSP cho phép người dùng tra danh bạ ₫iện thoại bằng Web Browser. Phân tích : cần 2 module chức năng : module chứa form nhập thông tin về các account cần tra, module này có thể là 1 trang HTML thuần tứy. và module truy tìm trên database các account thỏa mãn tiêu chuẩn tìm kiếm, module này là 1 trang JSP theo yêu cầu. Qui trịnh thực hiện cụ thể : ở ₫ây ta dùng môi trường lập trình JBuilder 2005. Qui trình ₫iển hình cụ thể ₫ược liệt kê trong các slide kế tiếp. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 1: Lập trình Web chạy ở server dùng PHP Trường ĐH Bách Khoa Tp.HCM Slide 418
- Tạo website tra ₫iện thoại bằng JSP trên JBuilder 1. Chạy JBuilder 2005, chọn menu File.New Project rồi trả lời các cửa sổ Wizard ₫ể tạo 1 project mới quản lý Website. Lưu ý trong cửa sổ Step 1, chọn thư mục và nhập tên Project quản lý Website là JSPDBDT. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 1: Lập trình Web chạy ở server dùng Servlet java Trường ĐH Bách Khoa Tp.HCM Slide 419
- Tạo website tra ₫iện thoại bằng JSP trên JBuilder 2. chọn menu File.New ₫ể hiển thị cửa sổ Object Gallery như hình bên. chọn nhóm Web, chọn icon Web Module ₫ể tạo Website. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 1: Lập trình Web chạy ở server dùng Servlet java Trường ĐH Bách Khoa Tp.HCM Slide 420
- Tạo website tra ₫iện thoại bằng JSP trên JBuilder 2.1 khi cửa sổ "Select Server " hiển thị nh ư hình bên, bạn ấn dấu chọn vào checkbox "Single server ", chọn server "Tomcat 5.0" rồi ấn button OK. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 421
- Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 422
- Tạo website tra ₫iện thoại bằng JSP trên JBuilder 3. chọn menu File.New ₫ể hiển thị cửa sổ Object Gallery như hình bên. Chọn nhóm Web, chọn icon JSP ₫ể tạo 1 trang JSP tra account danh bạ ₫iện thoại, rồi ấn button OK. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 423
- Tạo website tra ₫iện thoại bằng JSP trên JBuilder 3.1 trong cửa sổ Step 1 của qui trình JSP Wizard, bạn nhập tên cho trang JSP là JSPTraDBDT, rồi ấn button Next ₫ể tiếp tục Step 2 (hay button Finish ₫ể chấp nhận các thông số mặc ₫ịnh cho các b ước còn lại). Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 424
- Viết code cho trang JSP như sau JSPBeanDBDT Kết quả tra danh bạ theo yêu cầu của bạn : Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 425
- Viết code JavaBean phục vụ trang JSP Dời chuột về cửa sổ Project, tìm mục JSPBeanDBDTBean .java, ấn kép chuột vào nó ₫ể hiển thị cửa sổ soạ n code của JavaBean, rồi soạn code cho nó theo nội dung các slide tiếp theo. Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 426
- Viết code JavaBean phục vụ trang JSP (tt) package jspbeandbdt; import java.sql.*; //class ₫ặc tả JavaBean public class JSPBeanDBDTBean { public String SearchAccount (String tentbao, String sodthoai, String diachi) { StringBuffer table = new StringBuffer(); Connection con; boolean fsqlstart = true; // xây dựng lệnh SQL tìm kiếm theo yêu cầu người dùng String newSQL = "SELECT * FROM danhbadienthoai"; if (tentbao != null) if (tentbao.length() != 0) { newSQL = newSQL + " where tenthuebao like '%" + tentbao + "%'"; fsqlstart = false; } Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 427
- Code JavaBean phục vụ trang JSP (tt) if (sodthoai != null) if (sodthoai.length() != 0) { if (fsqlstart) newSQL = newSQL + " where sodienthoai like '%" + sodthoai + "%'"; else newSQL = newSQL + " and sodienthoai like '%" + sodthoai + "%'"; fsqlstart = false; } if (diachi != null)if (diachi.length() != 0) { if (fsqlstart) newSQL = newSQL + " where diachi like '%" + diachi + "%'"; else newSQL = newSQL + " and diachi like '%" + diachi + "%'"; fsqlstart = false; } //xây dựng chuỗi ConnectionString truy xuất database dùng DSN String conStr = "jdbc:odbc:MyDatabase"; Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 428
- Code JavaBean phục vụ trang JSP (tt) try { // tạo connection ₫ến database, // thực hiện lệnh SQL, kết quả trả về trong recordset rs Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection(conStr,"",""); Statement stmt = con.createStatement(); ResultSet rs =stmt.executeQuery(newSQL); int i = 1; if (rs != null && rs.next()) { //nếu có ít nhất 1 account, tạo bảng, tạo tiêu ₫ề và hàng miêu tả account ₫ầu tiên table.append(" "); table.append(" So thu tu Ten thue bao So dien thoai Dia chi \n"); table.append(" " + i++ +" " + rs.getString(2) + " " + rs.getString(3) + " " + rs.getString("diachi") + " \n"); Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 429
- Code JavaBean phục vụ trang JSP (tt) //lặp xuất từng hàng thông tin account còn lại while (rs.next()) { table.append(" " + i++ +" " + rs.getString(2) + " " + rs.getString(3) + " " + rs.getString("diachi") + " \n"); } table.append(" "); } else table.append(" Không có account nào thỏa yêu cầu tìm kiếm! \n"); //₫óng các ₫ối tượng ₫ã dùng lại rs.close(); stmt.close(); con.close(); } catch(Exception e){System.out.println("Error : "+e);} return table.toString(); }//end of SearchAccount }//end of JavaBean Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 430
- Tạo trang chủ chứa form nhập liệu cần tra 4. chọn menu File.New File ₫ể hiển thị cửa sổ "Create New File" như hình dưới ₫ây. Chọn thư mục chứa file (lưu ý ₫ể server Tomcat quản lý ₫úng Website, bạn phải chọn thư mục có chứa thư mục con là WEB-INF), nhập tên file HTML là "JSPInputForm", duyệt tìm và chọn Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Type fileKhoa là Cônghtml. nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 431
- Viết code cho trang chủ chứa form Trang Web demo việc tra danh bạ ₫iện thoại Nhập thông tin về tên thuê bao : Nhập thông tin về số ₫iện thoại : Nhập thông tin về ₫ịa chỉ : Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Slide 432
- Kết quả chạy trang JSP (chọn menu Run.Run Project) Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 1: Lập trình Web chạy ở server dùng Servlet java Trường ĐH Bách Khoa Tp.HCM Slide 433
- Kết quả chạy file JSPInputForm (chọn "Quay ve trang chu") Bộ môn : Công nghệ phần mềm Môn : Lập trình Mạng Khoa Công nghệ Thông tin Chương 1: Lập trình Web chạy ở server dùng Servlet java Trường ĐH Bách Khoa Tp.HCM Slide 434