Chương 1. Lý do chọn đề tài Công nghệ thông tin là tập hợp các phương pháp khoa học và các công cụ kỹ thuật hiện đại, chủ yếu là kỹ thuật máy tính và viễn thông nhằm tổ chức khai thác và sử dụng có hiệu quả các nguồn tài nguyên thông tin phong phú, tiềm năng trong mọi lĩnh vực hoạt động của con người và xã hội. Ngày nay, công nghệ thông tin phát triển nhanh chóng và ứng dụng vào tất cả các lĩnh vực, có thể nói công nghệ thông tin trở thành thước đo để đánh giá sự phát triển của xã hội hiện đại – nơi mà con người đang từ bỏ cách làm việc thủ công, tiến đến tin học hóa trong tất cả các lĩnh vực, để công việc thực hiện có hiệu quả hơn, tiết kiệm thời gian và nhân lực hơn. Do đó ứng dụng của công nghệ thông tin vào việc quản lý dường như không còn xa lạ với các doanh nghiệp.
Lợi ích mà các phần mềm quản lý đem lại khiến ta không thể không thừa nhận tính hiệu quả của nó mà phần mềm quản lý hàng hoá là một trong số đó. Khi quản lý đòi hỏi sự chính xác tuyệt đối trong tính toán, cập nhật thông tin một cách nhanh chóng, giúp người quản lý tiết kiệm được thời gian, công sức cũng như hiệu quả cao trong công việc. Là sinh viên được trang bị những kiến thức của ngành hệ thống thông tin với những kiến thức đã tiếp thu và vận dụng lý thuyết đó vào công việc thực tế nên em đã chọn đề tài “Thiết kế website quản lí cửa hang kính mắt Việt Tín” để thực hiện đồ án tốt nghiệp của mình với mục đích nghiên cứu và xây dựng một hệ thống thông tin có thể quản lý được số lượng, thông tin và tình trạng xuất, nhập, tồn kho của hàng hóa, giúp người quản lý tiết kiệm được thời gian, công sức cũng như hiệu quả cao trong công việc. Mục tiêu của đề tài - Giúp người sử dụng, khách hàng có thể tra cứu các thông tin, lựa chọn các sản phẩm kính mắt, và việc thực hiện giao dịch được nhanh chóng và tiện lợi hơn.
- Nhằm mang lại hiệu quả cao trong kinh doanh cho doanh nghiệp. 4 SV:Lê Hoàng Vũ MSV:69DCTT20178 1. Giới hạn và phạm vi của đề tài Trong phạm vi đề tài này em sẽ nghiên cứu các vấn đề: - Xây dựng website dựa trên các ngôn ngữ lập trình Java, Ajax và xây dựng dữ liệu qua hệ quản trị cơ sở dữ liệu MySQL. - Phạm vi: vừa, quy mô trong nước.
Kết quả dự kiến đạt được Website khi hoàn thành dự kiến đạt được các kết quả sau: Website được chia thành 4 phần chính: Khách hàng, Nhân viên, Quản trị viên. Đối với Khách hàng: - Có thể xem được sản phẩm thông qua danh mục. Thêm vào khách hàng có thể sử dụng tính năng tìm kiếm để tìm được những sản phẩm mình thích một cách nhanh chóng theo các tiêu chú như: danh mục, tên sản phẩm. Hơn nữa có thể xem được những sản phẩm bán chạy - Khách hàng có thể tùy chỉnh giỏ hàng của mình và đặt hàng Đối với Nhân viên: - Quản lý thông tin cá nhân: Bao gồm xem thông tin cá nhân và cập nhật thông tin cá nhân - Đăng sản phẩm để bán hàng.
- Xử lý đơn hàng Đối với Quản trị viên: - Quản lý danh mục: Quản trị viên có thể quản lý toàn bộ danh mục sản phẩm. - Quản lý sản phẩm: Quản lý toàn bộ sản phẩm. - Quản lý giỏ hàng: Quản lý được đơn hàng, nhập xuất. - Quản lý tài khoản: Quản lý tất cả tài khoản của hệ thống.
- 5 SV:Lê Hoàng Vũ MSV:69DCTT20178 Chương 2. Kiến thức nền tảng 2. Giới thiệu Spring là một framework phổ biến của các ứng dụng Java được sử dụng bởi hàng triệu lập trình viên. Nó giúp tạo các ứng dụng có hiệu năng cao, dễ sử dụng, sử dụng lại, … Nhờ vậy mà các lập trình viên có thể dễ dàng thực hiện việc tối ưu hóa được hầu hết mọi công việc cũng như tiết kiệm được tối đa thời gian làm việc.
Trong số đó, phổ biến nhất là Java Enterprise và nó được sử dụng bởi hàng triệu lập trình viên khác nhau. Framework này được phát triển đầu tiên bởi Rod Johnson và được ban hành giấy phép Apache 2. Spring là một mã nguồn mở, được phát triển, chia sẻ và có cộng đồng người dùng rất lơn. Spring Framework được xây dựng dựa trên 2 nguyên tắc design chính là: Dependency Injection và Aspect Oriented Programming.
Ngôn ngữ lập trình Java Java là một trong những ngôn ngữ lập trình hướng đối tượng. Nó được sử dụng trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động. Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991. Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak.
Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun MicroSystem. Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write Once, Run Anywhere – WORA). Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó. a) Ngôn ngữ thông dịch 6 SV:Lê Hoàng Vũ MSV:69DCTT20178 Ngôn ngữ lập trình thường được chia ra làm 2 loại (tùy theo các hiện thực hóa ngôn ngữ đó) là ngôn ngữ thông dịch và ngôn ngữ biên dịch.
● Thông dịch (Interpreter): Nó dịch từng lệnh rồi chạy từng lệnh, lần sau muốn chạy lại thì phải dịch lại. ● Biên dịch (Compiler): Code sau khi được biên dịch sẽ tạo ra 1 file thường là .exe, và file .exe này có thể đem sử dụng lại không cần biên dịch nữa. Ngôn ngữ lập trình Java thuộc loại ngôn ngữ thông dịch. Chính xác hơn, Java là loại ngôn ngữ vừa biên dịch vừa thông dịch.
Cụ thể như sau Khi viết mã, hệ thống tạo ra một tệp. Khi biên dịch mã nguồn của chương trình sẽ được biên dịch ra mã byte code. Máy ảo Java (Java Virtual Machine) sẽ thông dịch mã byte code này thành machine code (hay native code) khi nhận được yêu cầu chạy chương trình.1: Java core Ưu điểm: Phương pháp này giúp các đoạn mã viết bằng Java có thể chạy được trên nhiều nền tảng khác nhau. Với điều kiện là JVM có hỗ trợ chạy trên nền tảng này.
Nhược điểm: Cũng như các ngôn ngữ thông dịch khác, quá trình chạy các đoạn mã Java là chậm hơn các ngôn ngữ biên dịch khác (tuy nhiên vẫn ở trong một mức chấp nhận được). 7 SV:Lê Hoàng Vũ MSV:69DCTT20178 b) Đa luồng Java hỗ trợ lập trình đa tiến trình (multithread) để thực thi các công việc đồng thời. Đồng thời cũng cung cấp giải pháp đồng bộ giữa các tiến trình (giải pháp sử dụng priority…). c) Tính an toàn và bảo mật ● Tính an toàn Ngôn ngữ lập trình Java yêu cầu chặt chẽ về kiểu dữ liệu.
Dữ liệu phải được khai báo tường minh. Không sử dụng con trỏ và các phép toán với con trỏ. Java kiểm soát chặt chẽ việc truy nhập đến mảng, chuỗi. Không cho phép sử dụng các kỹ thuật tràn.
Do đó các truy nhập sẽ không vượt quá kích thước của mảng hoặc chuỗi. Quá trình cấp phát và giải phóng bộ nhớ được thực hiện tự động. Cơ chế xử lý lỗi giúp việc xử lý và phục hồi lỗi dễ dàng hơn. ● Tính bảo mật Java cung cấp một môi trường quản lý chương trình với nhiều mức khác nhau.
Mức 1: Chỉ có thể truy xuất dữ liệu cũng như phương phức thông qua giao diện mà lớp cung cấp. 8 SV:Lê Hoàng Vũ MSV:69DCTT20178 Mức 2: Trình biên dịch kiểm soát các đoạn mã sao cho tuân thủ các quy tắc của ngôn ngữ lập trình Java trước khi thông dịch. Mức 3: Trình thông dịch sẽ kiểm tra mã byte code xem các đoạn mã này có đảm bảo được các quy định, quy tắc trước khi thực thi. Mức 4: Java kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống.
JRE hoạt động với JVM JRE (Java Runtime Environment): cung cấp JVM (Java Virtual Machine) và thư viện được sử dụng để chạy chương trình Java. JVM hay Java Vitrual Machine là một hệ thống phần mềm chịu trách nhiệm thực thi chương trình Java. JRE lấy code Java kết hợp với các thư viện Java cần thiết và truyền tới JVM để thực thi chương trình đó.2: JRE Các module và kiến trúc của Spring Framework Spring được chia làm nhiều module khác nhau, tùy theo mục đích phát triển ứng dụng mà ta dùng 1 trong các module đó. Dưới đây là kiến trúc tổng thể của Spring Framework.
9 SV:Lê Hoàng Vũ MSV:69DCTT20178 Hình 1.3: Kiến trúc của Spring Test: Đây là tầng cung cấp cho người dùng khả năng hỗ trợ kiểm thử với JUnit và TestNG. Spring Core Container: Nó có bao gồm một số module khác như: ● Spring core, bean: Có khả năng cung cấp các tính năng như: IOC và Dependency Injection. ● Spring Context: Hỗ trợ các dạng đa ngôn ngữ và các tính năng Java EE cho người dùng như: EJB, JMX. ● Expression Language: Có khả năng mở rộng từ Expresion Language bên trong JSP.
Từ đó, cung cấp các hỗ trợ cho quá trình setting hoặc getting 10 SV:Lê Hoàng Vũ MSV:69DCTT20178 các giá trị. Hầu hết các method đều sẽ thực hiện cải tiến cho phép truy cập vào collections, index, các toán tử logic… AOP, Aspects and Instrumentation: Các module này sẽ giữ nhiệm vụ hỗ trợ cho các cài đặt lập trình thiên hướng khía cạnh và khả năng hỗ trợ tích hợp với AspectJ. Data Access / Integration: Đây là nhóm bao gồm JDBC, ORM, OXM, JMS và module Transaction. Chúng có khả năng cung cấp giao tiếp cùng với database.
Web: Nó hay còn gọi là Spring MVC, đây là một trong những nhóm bao gồm: Web, Web-Servlet… Nó sẽ hỗ trợ cho việc tạo ra các ứng dụng web. Spring MVC Spring MVC là một trong những mô hình ứng dụng mà ở đó các thành phần được phân tách thành nhiều lớp riêng biệt và mỗi cái có các nhiệm vụ đặc trưng. Do nhu cầu xây dựng các ứng dụng trên nền tảng Web được nhanh chóng và tiện lợi nên Spring MVC đã ra đời giúp việc triển khai các dự án nhanh hơn. Spring MVC được xây dựng theo cấu trúc MVC (Model-View-Controller) ở đó có các API cho phép việc xây dựng các ứng dụng trên web được dễ dàng và có quy tắc hơn.
11 SV:Lê Hoàng Vũ MSV:69DCTT20178 Hình 1.4: Cấu trúc Spring MVC Model là lớp chứa thông tin của các đối tượng (Dữ liệu), tương tác với Database.