1. Trang chủ
  2. » Công Nghệ Thông Tin

Tạo một ứng dụng web đơn giản sử dụng servlet, JSP và JDBC

60 911 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC  o7planning MENU 7% Vòi xịt sân vườn thông minh Magic Hose 43% 139,000 MUA NGAY Máy đánh trứng Fujipan FJ­6690HM (Trắng) 17% 165,000 MUA NGAY Máy đuổi côn trùng Pest Reject LP­03 98,525 MUA NGAY Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC 1­  Giới thiệu 2­  Các nguyên tắc kinh điển khi lập trình Servlet + JSP 3­  Demo ứng dụng web sẽ làm 4­  Chuẩn bị database 5­  Tạo WebApp Project 6­  Cấu hình môi trường chạy (Runtime Environment) 7­  Chạy ứng dụng lần đầu tiên 8­  Download và khai báo thư viện JDBC 9­  Download và khai báo thư viện JSTL 10­  Các class javabeans mô phỏng bảng trong DB 11­  Các class tiện ích kết nối Database 12­  Các class tiện ích & thao tác dữ liệu 13­  Tạo Filter kết nối database 14­  Filter đọc Cookie tự động login 15­  Filter mã hóa ký tự 16­  Các trang tái sử dụng 17­  Chức năng trang chủ 18­  Chức năng login ­ LoginServlet 19­  Trang danh sách sản phẩm 20­  Chức năng thêm sản phẩm 21­  Chức năng sửa thông tin sản phẩm 22­  Chức năng xóa sản phẩm http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc 1/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC     5  0  0  1­ Giới thiệu Tài liệu được viết dựa trên: Eclipse 4.5 MARS (ok for Eclipse 4.4 LUNA) Tomcat 8.x Document History: 12­12­2014: JSP + Servlet + Filter + JSTL 06­08­2015: JSP + Servlet + Filter + JSTL + JDBC Trong tài liệu này tôi sẽ hướng dẫn từng bước cách tạo một ứng dụng web đơn giản kết hợp Servlet + JSP + Filter + JSP EL + JDBC. Hãy đảm bảo rằng bạn đã nắm vững Servlet, JSP và Filter và JDBC trước khi bắt đầu. Nếu không, bạn có thể tham khảo tại: Servlet: http://o7planning.org/web/fe/default/vi/document/12760/huong­dan­lap­trinh­java­servlet­cho­nguoi­ moi­bat­dau Filter: http://o7planning.org/web/fe/default/vi/document/753859/huong­dan­su­dung­java­servlet­filter http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc 2/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC JSP: http://o7planning.org/web/fe/default/vi/document/20397/huong­dan­lap­trinh­java­jsp­cho­nguoi­moi­ bat­dau JDBC http://o7planning.org/web/fe/default/vi/document/12562/huong­dan­su­dung­jdbc­ket­noi­co­so­du­lieu 2­ Các nguyên tắc kinh điển khi lập trình Servlet + JSP Đây là các nguyên tắc mà bạn nên nhớ để có thể xây dựng một ứng dụng Web sử dụng Servlet + JSP thỏa mãn tiêu chí: code đơn giản dễ hiểu và dễ dàng bảo trì Các nguyên tắc: 1.  Đừng bao giờ cho phép người dùng truy cập trực tiếp vào trang JSP của bạn 2.  Chỉ coi JSP là cái để hiển thị giao diện 3.  Servlet đóng vai trò là người điều khiển luồng đi của ứng dụng và sử lý logic chương trình 4.  Mở kết nối JDBC và quản lý giao dịch trong Filter (Không bắt buộc)   Theo nguyên tắc 1: Không bao giờ cho phép người dùng truy cập trực tiếp vào trang JSP của bạn, điều đó có nghĩa là mọi request của người dùng thường là: Một nguồn dữ liệu tĩnh (image, css, js, ) Hoặc một servlet Như vậy bạn phải cất giấu các file JSP của bạn tại một nơi nào đó mà người dùng không thể truy cập vào Chẳng hạn đặt trong thư mục WEB­INF hoặc thư mục con của nó. Trong ví dụ này tôi sẽ để các file jsp tại thư mục WEB­INF/views http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc 3/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC Khi request của người dùng tới một Servlet, nó sẽ sử lý yêu cầu của người dùng, chẳng hạn Insert, update và truy vấn dữ liệu, cuối cùng là forward tới trang JSP để hiển thị dữ liệu. Như vậy mỗi servlet có 0 hoặc nhiều trang JSP tương ứng (Thường chỉ cần 1) Nguyên tắc 2: Chỉ coi JSP là nơi hiển thị dữ liệu, điều đó có nghĩa là bạn không nên xử lý logic ứng dụng trên JSP, chẳng hạn như update, insert, delete, , và không điều hướng trên trang JSP 3­ Demo ứng dụng web sẽ làm Bạn có thể xem trước Demo ứng dụng Web sẽ làm: 4­ Chuẩn bị database Trong tài liệu này tôi hướng dẫn bạn làm việc với một trong 3 cơ sở dữ liệu Oracle, MySQL hoặc SQL Server Bạn cần chạy các script để tạo một số bảng và dữ liệu cần thiết cho ví dụ này ORACLE: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ‐‐ Create table create table USER_ACCOUNT ( USER_NAME VARCHAR2(30) not null, GENDER    VARCHAR2(1) not null, PASSWORD  VARCHAR2(30) not null, primary key (USER_NAME) );   ‐‐ Create table create table PRODUCT ( CODE  VARCHAR2(20) not null, NAME  VARCHAR2(128) not null, PRICE FLOAT not null, primary key (CODE) ) ;   ‐‐ Insert data: ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐   insert into user_account (USER_NAME, GENDER, PASSWORD) values ('tom', 'M', 'tom001');   insert into user_account (USER_NAME, GENDER, PASSWORD) values ('jerry', 'M', 'jerry001');   insert into product (CODE, NAME, PRICE) values ('P001', 'Java Core', 100);   insert into product (CODE, NAME, PRICE) 31 values ('P002', 'C# Core', 90); http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc ? 4/60 1/14/2016 31 32 33 34 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC values ('P002', 'C# Core', 90);   ‐‐ Commit Commit; MYSQL: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ‐‐ Create table create table USER_ACCOUNT ( USER_NAME VARCHAR(30) not null, GENDER    VARCHAR(1) not null, PASSWORD  VARCHAR(30) not null, primary key (USER_NAME) );   ‐‐ Create table create table PRODUCT ( CODE  VARCHAR(20) not null, NAME  VARCHAR(128) not null, PRICE FLOAT not null, primary key (CODE) ) ;   ‐‐ Insert data: ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐   insert into user_account (USER_NAME, GENDER, PASSWORD) values ('tom', 'M', 'tom001');   insert into user_account (USER_NAME, GENDER, PASSWORD) values ('jerry', 'M', 'jerry001');   insert into product (CODE, NAME, PRICE) values ('P001', 'Java Core', 100);   insert into product (CODE, NAME, PRICE) values ('P002', 'C# Core', 90); ? SQL SERVER: 10 11 12 13 14 15 16 17 18 19 20 ‐‐ Create table create table USER_ACCOUNT ( USER_NAME VARCHAR(30) not null, GENDER    VARCHAR(1) not null, PASSWORD  VARCHAR(30) not null, primary key (USER_NAME) );   ‐‐ Create table create table PRODUCT ( CODE  VARCHAR(20) not null, NAME  VARCHAR(128) not null, PRICE FLOAT not null, primary key (CODE) ) ;   ‐‐ Insert data: ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐   21 insert into user_account (USER_NAME, GENDER, PASSWORD) http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc ? 5/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC 21 22 23 24 25 26 27 28 29 30 31 insert into user_account (USER_NAME, GENDER, PASSWORD) values ('tom', 'M', 'tom001');   insert into user_account (USER_NAME, GENDER, PASSWORD) values ('jerry', 'M', 'jerry001');   insert into product (CODE, NAME, PRICE) values ('P001', 'Java Core', 100);   insert into product (CODE, NAME, PRICE) values ('P002', 'C# Core', 90); 5­ Tạo WebApp Project Trên Eclipse chọn: File/New/Other http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc 6/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc 7/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC Project đã được tạo ra http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc 8/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC Thêm file index.html index.html 10 11 12 13 14 15 16 17 18 19                  Simple Web Application                         Simple Login Web Application using JSP/Servlet                         Home          Login          Product  List                    ? 6­ Cấu hình môi trường chạy (Runtime Environment) http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc 9/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC Ứng dụng cần chạy trên một WebServer, chẳng hạn Tomcat Server, bạn có thể tham khảo tài liệu hướng dẫn download và khai báo Server Tomcat vào Eclipse tại: http://o7planning.org/web/fe/default/vi/document/19569/khai­bao­server­tomcat­tren­eclipse Nhấn phải chuột vào project SimpleWebApp chọn Properties http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc 10/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ? package org.o7planning.simplewebapp.servlet;   import java.io.IOException;   import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;   @WebServlet(urlPatterns = { "/createProduct" }) public class CreateProductServlet extends HttpServlet {    private static final long serialVersionUID = 1L;      public CreateProductServlet() {        super();    }      @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {          RequestDispatcher dispatcher = request.getServletContext()                .getRequestDispatcher("/WEB‐INF/views/createProductView.jsp");        dispatcher.forward(request, response);      }      @Override    protected void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doGet(request, response);    }   } DoCreateProduct.java package org.o7planning.simplewebapp.servlet;   import java.io.IOException; import java.sql.Connection; import java.sql.SQLException;   import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; 10 import javax.servlet.http.HttpServlet; 11 import javax.servlet.http.HttpServletRequest; 12 import javax.servlet.http.HttpServletResponse; 13   14 import org.o7planning.simplewebapp.beans.Product; 15 import org.o7planning.simplewebapp.utils.DBUtils; 16 import org.o7planning.simplewebapp.utils.MyUtils; 17   18 @WebServlet(urlPatterns = { "/doCreateProduct" }) 19 public class DoCreateProductServlet extends HttpServlet { 20    private static final long serialVersionUID = 1L; 21   22    public DoCreateProductServlet() { 23        super(); 24    } 25   26    @Override 27    protected void doGet(HttpServletRequest request, HttpServletResponse response) http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc ? 46/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84    protected void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        Connection conn = MyUtils.getStoredConnection(request);          String code = (String) request.getParameter("code");        String name = (String) request.getParameter("name");        String priceStr = (String) request.getParameter("price");        float price = 0;        try {            price = Float.parseFloat(priceStr);        } catch (Exception e) {        }        Product product = new Product(code, name, price);          String errorString = null;          // Mã sản phẩm phải là chuỗi chữ [a‐zA‐Z_0‐9]        // Có ít nhất một ký tự        String regex = "\\w+";          if (code == null || !code.matches(regex)) {            errorString = "Product Code invalid!";        }          if (errorString == null) {            try {                DBUtils.insertProduct(conn, product);            } catch (SQLException e) {                e.printStackTrace();                errorString = e.getMessage();            }        }                 // Lưu thông tin vào request attribute trước khi forward sang views        request.setAttribute("errorString", errorString);        request.setAttribute("product", product);          // Nếu có lỗi forward sang trang edit        if (errorString != null) {            RequestDispatcher dispatcher = request.getServletContext()                    .getRequestDispatcher("/WEB‐INF/views/createProductView.jsp");            dispatcher.forward(request, response);        }        // Nếu mọi thứ tốt đẹp        // Redirect sang trang danh sách sản phẩm        else {            response.sendRedirect(request.getContextPath() + "/productList");        }      }      @Override    protected void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doGet(request, response);    }   } /WEB­INF/views/createProductView.jsp   http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc ? 47/60 1/14/2016 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC               Create Product                                  Create Product             ${errorString}                                                 Code                                                      Name                                                      Price                                                                                                              Cancel                                                                  http://localhost:8080/SimpleWebApp/createProduct http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc 48/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC 21­ Chức năng sửa thông tin sản phẩm Mô hình chức năng sửa thông tin sản phẩm: EditProductServlet.java package org.o7planning.simplewebapp.servlet;   import java.io.IOException; import java.sql.Connection; import java.sql.SQLException;   import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; 10 import javax.servlet.http.HttpServlet; http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc ? 49/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;   import org.o7planning.simplewebapp.beans.Product; import org.o7planning.simplewebapp.utils.DBUtils; import org.o7planning.simplewebapp.utils.MyUtils;   @WebServlet(urlPatterns = { "/editProduct" }) public class EditProductServlet extends HttpServlet {    private static final long serialVersionUID = 1L;      public EditProductServlet() {        super();    }      @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        Connection conn = MyUtils.getStoredConnection(request);          String code = (String) request.getParameter("code");          Product product = null;          String errorString = null;          try {            product = DBUtils.findProduct(conn, code);        } catch (SQLException e) {            e.printStackTrace();            errorString = e.getMessage();        }          // Không có lỗi        // Sản phẩm không tồn tại để edit        // Redirect sang trang danh sách sản phẩm        if (errorString != null && product == null) {            response.sendRedirect(request.getServletPath() + "/productList");            return;        }          // Lưu thông tin vào request attribute trước khi forward sang views        request.setAttribute("errorString", errorString);        request.setAttribute("product", product);          RequestDispatcher dispatcher = request.getServletContext()                .getRequestDispatcher("/WEB‐INF/views/editProductView.jsp");        dispatcher.forward(request, response);      }      @Override    protected void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doGet(request, response);    }   } DoEditProduct.java package org.o7planning.simplewebapp.servlet;   import java.io.IOException; import java.sql.Connection; http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc ? 50/60 1/14/2016 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC import java.sql.Connection; import java.sql.SQLException;   import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;   import org.o7planning.simplewebapp.beans.Product; import org.o7planning.simplewebapp.utils.DBUtils; import org.o7planning.simplewebapp.utils.MyUtils;   @WebServlet(urlPatterns = { "/doEditProduct" }) public class DoEditProductServlet extends HttpServlet {    private static final long serialVersionUID = 1L;      public DoEditProductServlet() {        super();    }      @Override    protected void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        Connection conn = MyUtils.getStoredConnection(request);          String code = (String) request.getParameter("code");        String name = (String) request.getParameter("name");        String priceStr = (String) request.getParameter("price");        float price = 0;        try {            price = Float.parseFloat(priceStr);        } catch (Exception e) {        }        Product product = new Product(code, name, price);          String errorString = null;          try {            DBUtils.updateProduct(conn, product);        } catch (SQLException e) {            e.printStackTrace();            errorString = e.getMessage();        }        // Lưu thông tin vào request attribute trước khi forward sang views        request.setAttribute("errorString", errorString);        request.setAttribute("product", product);          // Nếu có lỗi forward sang trang edit        if (errorString != null) {            RequestDispatcher dispatcher = request.getServletContext()                    .getRequestDispatcher("/WEB‐INF/views/editProductView.jsp");            dispatcher.forward(request, response);        }        // Nếu mọi thứ tốt đẹp        // Redirect sang trang danh sách sản phẩm        else {            response.sendRedirect(request.getContextPath() + "/productList");        }      }      @Override    protected void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        doGet(request, response);    }   } http://o7planning.org/web/fe/default/vi/document/72162/tao­mot­ung­dung­web­don­gian­su­dung­servlet­jsp­va­jdbc 51/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC /WEB­INF/views/editProductView.jsp 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 ?               Edit Product                            Edit Product        ${errorString}                                                                          Code                  ${product.code}                                                Name                                                                  Price                  [...]... http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc 12/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc 13/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC Ứng dụng đã được chạy: OK, tới đây mọi thứ đều tốt đẹp. Chúng ta sẽ bắt đầu lập trình một ứng dụng Web thực sự...1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc 11/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC 7­ Chạy ứng dụng lần đầu tiên Nhấn phải chuột vào Project SimpleWebApp, chọn: Run As/Run on Server http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc. .. http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc 31/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC 44 45   } 16­ Các trang tái sử dụng Một số trang JSP sẽ được sử dụng để nhúng vào các trang khác tại thời điểm Runtime, thông qua việc sử dụng: 1 2 3 4 < /jsp: include> < /jsp: include>...        < /jsp: include>       http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc ? 35/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC Chạy lại ứng dụng của bạn, và thử 2 đường dẫn: http://localhost:8081/SimpleWebApp/ http://localhost:8081/SimpleWebApp/home “ Chú ý: Nếu vì một lý do gì đó, đường dẫn http://localhost:8080/SimpleWebApp/ vẫn chuyển tới... http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc 14/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC Kết quả download được: Copy các thư viện này vào WEB INF/lib: 9­ Download và khai báo thư viện JSTL Bạn cần download 2 thư viện JSTL để có thể sử dụng chúng trong JSP: javax.servlet .jsp. jstl­*.jar javax.servlet .jsp. jslt­api­*.jar... http://mvnrepository.com/artifact/org.glassfish .web/ javax.servlet .jsp. jstl http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc 15/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC http://mvnrepository.com/artifact/javax.servlet .jsp. jstl/javax.servlet .jsp. jstl­api Copy 2 file jar bạn vừa download được vào thư mục  /WEB INF/lib: http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc. ..   } 13­ Tạo Filter kết nối database Trong JDBCFilter tôi có kiểm tra xem các request nào thực sự gọi tới một Servlet, để dễ hiểu bạn có thể xem hình dưới đây, nó mô tả quan hệ giữa các khái niệm của Servlet http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc 26/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC JDBCFilter với khai báo url­pattern = /*, điều đó có nghĩa là mọi request của người dùng đều phải đi qua filter...                         http://java.sun.com/xml/ns/javaee /web app_3_0.xsd"       id="WebApp_ID" version="3.0"> 7   SimpleWebApp http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc ? 33/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29   SimpleWebApp... http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc 16/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC 10­ Các class javabeans mô phỏng bảng trong DB Tạo một số class Javabean, mỗi class mô phỏng một bảng trong database: UserAccount.java 1 2 3 4 5 6 package org.o7planning.simplewebapp.beans;   public class UserAccount {       public static final String GENDER_MALE ="M";...        // return SQLServerConnUtils_SQLJDBC.getSQLServerConnection_SQLJDBC();    }         public static void closeQuietly(Connection conn) {        try {            conn.close();        } catch (Exception e) {        } 25    } http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc ? 22/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC 25 26 27 ... http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc 13/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC Ứng dụng đã được chạy: OK, tới đây mọi thứ đều tốt đẹp. Chúng ta sẽ bắt đầu lập trình một ứng dụng Web thực sự... http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc 9/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC Ứng dụng cần chạy trên một WebServer, chẳng hạn Tomcat Server, bạn có thể tham khảo tài liệu hướng dẫn... Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC http://o7planning.org /web/ fe/default/vi/document/72162/tao­mot­ung­dung web don­gian­su­dung­servlet jsp va jdbc 11/60 1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC

Ngày đăng: 14/01/2016, 11:30

Xem thêm: Tạo một ứng dụng web đơn giản sử dụng servlet, JSP và JDBC

TỪ KHÓA LIÊN QUAN

w