[Lập trình JSP – Servlet] Bài 4: Tạo trang danh mục sản phẩm

Lập trình JSP – Servlet cho phép các nhà phát triển phần mềm xây dựng nội dung động cho website sử dụng nền tảng Java. Tiếp ngay sau đây sẽ là phần hướng dẫn tạo trang danh mục sản phẩm trong loạt video hướng dẫn xây dựng website bán hàng bằng JSP – Servlet mong các bạn chú ý đón xem.

Ở bài trước, chúng ta thiết kế sản phẩm và danh mục sẽ có mối liên hệ với nhau. Một danh mục sẽ có nhiều sản phẩm và một sản phẩm chỉ có một danh mục mà thôi. Vậy nên trước tiên, chúng ta cần thiết kế lớp danh mục trước sau đó mới hiển thị sản phẩm dựa vào danh mục tương ứng.

Theo như thiết kế ở trên, chúng ta sẽ tạo danh mục theo hướng đệ quy hay còn gọi là multi-level, chúng ta có 3 thuộc tính gồm mã danh mục, tên danh mục và danh mục cha (thằng con sẽ chứa mã danh mục của thằng cha). Chúng ta sẽ quy đinh trước, nếu là danh mục cha thì thuộc tính danh_muc_cha sẽ để mặc định là null, còn ngược lại thì sẽ chứa ma_menu_cha tương ứng.

Bước 1: Tạo đối tượng danh mục với 2 thuộc tính là mã danh mục và tên danh mục

Bạn tạo lớp Category.java và khai báo 2 thuộc tính là categoryID và categoryName như sau:

Bước 2: Bạn cần viết phương thức lấy danh sách danh mục có thể như sau

Tiếp theo, mình sẽ viết phương thức getListCategory() để lấy danh sách danh mục từ cơ sở dữ liệu, ở đây mình sử dụng JDBC để lấy dữ liệu.

Để ý ở đoạn mã trên bạn sẽ thấy đầu tiên là mình tạo ra một kết nối (Connection) đến cơ sở dữ liệu, sau đó mình sẽ thực hiện câu lệnh truy vấn sql lấy danh sách tất cả danh mục từ bảng category bằng cách gọi lệnh executeQuery()

Bây giờ trong đối tượng ResultSet bạn có thể lấy dữ liệu từ các cột để đổ vào đối tượng Category

Bước 3: Tiếp theo, chúng ta sẽ hiển thị dữ liệu trong cơ sở dữ liệu ra trang JSP

Bạn có thể xem video hướng dẫn tạo trang danh mục sản phẩm JSP – Servlet:

Hoặc bạn có thể tải mã nguồn cho bài viết lập trình JSP – Servlet tạo trang danh mục sản phẩm ở đường dẫn bên dưới:

Link download 1:

[Lập trình JSP – Servlet] Bài 4: Tạo trang danh mục sản phẩm

Link download 2:

[Lập trình JSP – Servlet] Bài 4: Tạo trang danh mục sản phẩm

Xem thêm một số bài viết liên quan lập trình JSP – Servlet:

Video hướng dẫn xây dựng website bán hàng sử dụng JSP – Servlet:
Bài 1: Hướng dẫn cài đặt, cấu hình cơ bản
Bài 2: Hướng dẫn thiết kế giao diện cho website
Bài 3: Hướng dẫn sử dụng JDBC kết nối cơ sở dữ liệu MySQL
Bài 5: Hiển thị sản phẩm theo danh mục
Bài 6: Hiển thị thông tin chi tiết sản phẩm

Lời kết: Như vậy chúng ta vừa tìm hiểu về hướng dẫn cấu hình JSP – Servlet cơ bản trong loạt bài xây dựng website bán hàng bằng JSP – Servlet. Ngoài ra, các bạn có thể xem thêm các bài viết khác trong chuyên mục lập trình JSP – Servlet để có thể tự xây dựng hoàn chỉnh một website cho riêng mình.

(Tác giả: Tùng Dương)

82 thoughts on “[Lập trình JSP – Servlet] Bài 4: Tạo trang danh mục sản phẩm

  1. ở bài 4 mình bị lỗi HTTP status 500 ở bước hiển thị dữ liệu từ csdl lên trang header.jsp. nó báo sai dòng sau :
    for (Category c : categoryDAO.getListCategory()) {
    bạn chỉ giúp mình được không?

    1. bạn muốn hiển thị tiếng Việt thì ở trang JSP với Servlet bạn cần phải set utf-8 cho nó, bạn có thể xem bài 20 của mjh có hd

  2. Exception in thread “main” com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘FORM category’ at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.Util.getInstance(Util.java:386)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2794)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2322)
    at com.mysql.jdbc.CallableStatement.executeQuery(CallableStatement.java:955)
    at dao.categoryDAO.getListCategory(categoryDAO.java:26)
    at dao.categoryDAO.main(categoryDAO.java:39)
    C:\Users\susikimchi\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
    BUILD FAILED (total time: 6 seconds)

    —Anh xem dùm em nó bị lỗi j vậy anh , nguyên dòng ” ArrayList list = new ArrayList();” nó tô đỏ …

    1. Đầu tiên bạn đảm bảo là đã có thêm thư viện kết nối mysql vào, thứ 2 bạn kiêm tra câu truy vấn xem có đúng chưa

    1. Bạn viết đoạn mã này dưới JSP hay sao, nếu viết dưới JSP thì nằm trong cặp dấu < %ArrayList list = new ArrayList();%> ngoài ra cũng có thể do biến list bạn đã được khai bảo rồi hoặc bạn chưa import java.util.ArrayList

  3. Ở bài 4 mình bị lỗi http 500, báo ở dòng :
    for (Category c : categoryDAO.getListCategory()) {

    mình đã import Category và CategoryDAO rồi.
    Lỗi thế này:

    HTTP Status 500 – An exception occurred processing JSP page /home.jsp at line 92

    type Exception report

    message An exception occurred processing JSP page /home.jsp at line 92

    description The server encountered an internal error that prevented it from fulfilling this request.

    exception
    org.apache.jasper.JasperException: An exception occurred processing JSP page /home.jsp at line 92

    89:
    90:
    91:
    94:
    95:

    Như vậy là bị sao v ad ?

    1. Ở trang JSP thay vì gọi trực tiếp hàm từ DAO bạn hãy lấy dữ liệu từ controller trả về như vậy sẽ là mô hình 3 lớp nhé

  4. at dao.CategoryDAO.getListCategory(CategoryDAO.java:16)
    at org.apache.jsp.header_jsp._jspService(header_jsp.java:219)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:715)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:581)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:517)
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:887)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:140)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

    1. Bạn kiểm lại phương thức getListCategory() trong class CategoryDAO
      xem list có get được phần tử nào không?

  5. HTTP Status 500 – org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Connection

    type Exception report
    message org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Connection
    description The server encountered an internal error that prevented it from fulfilling this request.
    exception
    org.apache.jasper.JasperException: org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Connection
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:561)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:462)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    root cause
    org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Connection
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:561)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:462)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:897)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:145)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

  6. AD ơi. sao mà đoạn code này vào trong jsp lúc chạy nó ko hiện ra các category trong DB của e. e làm theo từng bước giống ad mà

    Rose

  7. Giả sử trên thanh công cụ mình có nhiều nút xổ xuống thay vì 1 nút như trong ví dụ thì mình làm sao để nó hiển thị tuỳ theo nút mình cần v anh?

  8. Mình xin góp ý một chút cho các bạn nhé.Nếu các bạn code bằng netbean sẽ chạy oke.Nhưng khi các bạn code bằng eclipse thường hay gặp lỗi không hiển thị được danh mục lên JSP và báo lỗi jdbc.Driver.Lỗi này là do class path của project không giống với class path của web application.Các bạn chỉ cần copy mysqlConnector vào thư mục WEB-INT/lib rồi build lại project thì sẽ chạy oke.Mình chỉ góp ý mong admin đừng cười vì kiến thức mình còn hạn chế lắm.

      1. Chào bạn, không có gì. Nếu có thắc mắc gì bạn có thể hỏi tụi mình sẽ hỗ trợ nếu như có thể.
        Chúc bạn một ngày vui!

    1. bạn giải thích kĩ hơn lỗi này cho mình đc không mình đã làm được r nhưng muốn hiểu rõ về nó

  9. ad ơi cho mình hỏi khi mình chạy kiểu application thì dc rồi nhưng khi mình chạy trên server thì nó lại bị lỗi như này:
    type Exception report

    message org.apache.jasper.JasperException: java.lang.NullPointerException

    description The server encountered an internal error that prevented it from fulfilling this request.

    exception
    org.apache.jasper.JasperException: org.apache.jasper.JasperException: java.lang.NullPointerException
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:560)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:461)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    root cause
    org.apache.jasper.JasperException: java.lang.NullPointerException
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:560)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:885)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:118)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    root cause
    java.lang.NullPointerException
    dao.CategoryDAO.getListCategory(CategoryDAO.java:16)
    org.apache.jsp.header_jsp._jspService(header_jsp.java:251)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:885)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:118)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    1. Chào bạn, ý bạn là thêm mã ID tự động tăng hay sao?

      Nếu vậy trong mục Design Table >> chọn trường khóa chính tăng tự động, sau đó kích chọn Auto Increnment

  10. Lỗi vòng for trong jsp mặc dù đã import CategoryDAO và Category, chạy vòng for trong file class thì được mà trong jsp chết!

  11. Exception in thread “main” java.lang.UnsupportedOperationException: Not supported yet.
    at ConnectionDB.ConnectionDB.getConnection(ConnectionDB.java:31)
    at DAO.CategoryDAO.getListCategory(CategoryDAO.java:22)
    at DAO.CategoryDAO.main(CategoryDAO.java:38)
    C:\Users\LamBui\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
    BUILD FAILED (total time: 0 seconds)

    em bị lỗi này sao khi chạy hàm main ạ.

    1. có thể tool lúc cài đặt bị lỗi. Bạn cài lại netbean xem sao.
      nhớ đừng bỏ vào folder tiếng việt nha.
      không được thì nt lại mình.

  12. mình bị lỗi ở:

    <a href="product.jsp?category=”>

    trong header … mà mình đọc cmt thì nói là cần import Category và Category, vậy import sao v bạn chỉ mình với. mình mới làm quen với ngôn ngữ này. cảm ơn bạn…

    1. Nếu như bạn muốn import có thẻ sử dụng
      < %@ page import="java.util.List" %>
      Hoặc
      < %@ page import="package.Category" %>

  13. Xin chào Ad, em bị vướng ở phần 3 hiển thị danh mục ra web. Em đã đánh đi đánh lại nhiều lần để chắc là mình ko sai cú pháp, nhưng vẫn bị lỗi 500 và phần báo lỗi như sau ạ:

    org.apache.jasper.JasperException: Unable to compile class for JSP:

    An error occurred at line: [14] in the generated java file: [C:\JAVA_HOME\apache-tomcat-8.0.32\work\Catalina\localhost\shop\org\apache\jsp\header_jsp.java]
    Only a type can be imported. dao.CategoryDAO resolves to a package

    An error occurred at line: 19 in the jsp file: /header.jsp
    CategoryDAO cannot be resolved to a type
    16:
    17:
    18:
    21:
    22:

    Mong Ad xem giúp em cách giải quyết với ạ!

  14. org.apache.jasper.JasperException: Unable to compile class for JSP:

    An error occurred at line: [14] in the generated java file: [C:\JAVA_HOME\apache-tomcat-8.0.32\work\Catalina\localhost\shop\org\apache\jsp\header_jsp.java]
    Only a type can be imported. dao.CategoryDAO resolves to a package

    An error occurred at line: 19 in the jsp file: /header.jsp
    CategoryDAO cannot be resolved to a type
    16:
    17:
    18:
    21:
    22:

  15. Em chào add ạ, của em nó bị lỗi như v thì fix thế nào ạ

    État HTTP 500 – Internal Server Error
    Type Rapport d”exception

    message An exception occurred processing [/header.jsp] at line [85]

    description Le serveur a rencontré une erreur interne qui l”a empêché de satisfaire la requête.

    exception

    org.apache.jasper.JasperException: An exception occurred processing [/header.jsp] at line [85]

    82:
    83:

    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:593)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:467)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:894)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:184)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    cause mère

    javax.servlet.ServletException: java.lang.NoClassDefFoundError: connect/BDConnect
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:667)
    org.apache.jsp.header_jsp._jspService(header_jsp.java:285)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:894)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:184)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    cause mère

  16. nó báo lỗi như v đây ạ!
    org.apache.jasper.JasperException: An exception occurred processing [/header.jsp] at line [85]

    82:
    83:

  17. em làm trên eclipse, phần CategoryDAO thì ko chạy và nó báo Could not find or load main class DAO.usersDAO . AD có thể giải thích cho e vs ạ và cả phần userDAO cũng lỗi vậy

  18. Exception in thread “main” java.lang.UnsupportedOperationException: Not supported yet.
    at connect.DBConnect.getConnection(DBConnect.java:34)
    at dao.CategoryDAO.getListCategory(CategoryDAO.java:22)
    at dao.CategoryDAO.main(CategoryDAO.java:37)
    C:\Users\KHOA\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
    BUILD FAILED (total time: 0 seconds)
    loi gi ad

  19. Exception in thread “main” java.lang.NullPointerException
    at dao.CategoryDAO.getListCategory(CategoryDAO.java:24)
    at dao.CategoryDAO.dao(CategoryDAO.java:39)
    at dao.CategoryDAO.main(CategoryDAO.java:44)
    C:\Users\PA\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1

    Mình gặp lỗi này khi sd SQL Server mong đc giúp

    1. Chào bạn, báo lỗi java.lang.NullPointerException dòng 24, bạn kiểm tra xem đã new đối tượng CategoryDAO chưa?

  20. Nguyễn Danh Nguyên

    - Edit

    Reply

    ad cho e hỏi khắc phục cái này làm sao ạ..??
    sau khi run cái file CategoryDao là nó bị như này..

    C:\Users\Dell 5548\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: C:\Users\Dell 5548\AppData\Local\NetBeans\Cache\8.2\executor-snippets\${} is not a valid directory
    at org.apache.tools.ant.taskdefs.Java.setupWorkingDir(Java.java:917)
    at org.apache.tools.ant.taskdefs.Java.setupExecutable(Java.java:887)
    at org.apache.tools.ant.taskdefs.Java.fork(Java.java:850)
    at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:220)
    at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:136)
    at org.apache.tools.ant.taskdefs.Java.execute(Java.java:109)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
    at sun.reflect.GeneratedMethodAccessor159.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:435)
    at org.apache.tools.ant.Target.performTasks(Target.java:456)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1376)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
    at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:286)
    at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:555)
    at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:153)
    Java Result: -1

  21. AD ơi e chạy file CategoryDAO nó báo lỗi như v là sao
    run:
    Error: Could not find or load main class dao.CategoryDAO
    C:\Users\NHUNG_COI\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
    BUILD FAILED (total time: 0 seconds)

  22. Mình bị bắt lỗi ở dòng new Caterogy.
    Mình ghi như sau: CaterogyDAO dao = new CategoryDAO();

    Mình xem phần gợi ý nó bảo mình cần tạo class CaterogyDAO.

    Lỗi khi run:
    Exception in thread “main” java.lang.RuntimeException: Uncompilable source code – cannot find symbol
    symbol: class CaterogyDAO
    location: class dao.CategoryDAO
    at dao.CategoryDAO.main(CategoryDAO.java:37)
    C:\Users\pHU\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
    BUILD FAILED (total time: 7 seconds)

    Mong được AD giúp đỡ

    1. Sau đó, mình thêm dòng: import dao.CaterogyDAO;
      Và ghi lại hàm main cùng nội dung trong nó và không bị bắt lỗi nữa.
      Nhưng khi mình run . thì kết quả hiển thị rất lâu và khi run sau chương trình báo lỗi như sau:
      com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

      The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
      at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
      at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117)
      at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:673)
      at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1084)
      at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2465)
      at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2498)
      at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
      at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:822)
      at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
      at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
      at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
      at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
      at java.sql.DriverManager.getConnection(DriverManager.java:664)
      at java.sql.DriverManager.getConnection(DriverManager.java:247)
      at connect.DBConnect.getConnection(DBConnect.java:19)
      at dao.CategoryDAO.getListCategoty(CategoryDAO.java:22)
      at dao.CategoryDAO.main(CategoryDAO.java:38)
      Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
      at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3052)
      at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:597)
      … 18 more
      Exception in thread “main” java.lang.NullPointerException
      at dao.CategoryDAO.getListCategoty(CategoryDAO.java:24)
      at dao.CategoryDAO.main(CategoryDAO.java:38)
      C:\Users\pHU\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
      BUILD FAILED (total time: 5 minutes 1 second)

      mình dùng netbeans và xampp. Lúc tạo project mình chọn add file tomcat của xampp.
      Mong được giúp đỡ. Cám ơn.

      1. Mình đã qua được bước này.
        Mình lấy code trên bài viết thay thế cho code mình làm theo trên video. và Run File test trên lớp dao và lấy được dữ liệu
        Tiếp tục, mình thao tác trên trang index.jsp.
        Và bị lỗi error 500.
        Mình import 2 dòng sau: và
        Và vẫn bị báo lỗi ở dòng: for(Category c : CategoryDAO.getListCategory())

        Code mình ghi theo mẫu:

        Mong được bạn giúp đỡ. Cám ơn!!!

        1. Mình đã khắc phục được lỗi.
          Do mình khai báo dòng: Category categoryDAO = new Category bị sai.
          Cám ơn.

Bình luận

Loading...