Từ đó có thể vận dụng những kiến thức đã được học vào quá trình làm việc, nâng cao trình độ.Sau 4 tuần thực tập tại Công ty TNHH Phần mềm FPT – một trong những doanh nghiệp hàng đầu về l
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT - HÀN
KHOA KHOA HỌC MÁY TÍNH
BÁO CÁO
THỰC TẬP DOANH NGHIỆP
TÊN ĐỀ TÀI TÌM HIỂU JSP VÀ JAVA SERVLET VÀ XÂY DỰNG
ỨNG DỤNG QUẢN LÝ SINH VIÊN
Sinh viên thực hiện : HOÀNG NGỌC PHƯƠNG
Giảng viên hướng dẫn: TS.TRẦN VĂN ĐẠI
Đơn vị thực tập : CÔNG TY TNHH PHẦN MỀM FPT Người hướng dẫn : NGUYỄN VĂN LIÊM
Đà Nẵng, tháng 12 năm 2020
Trang 2PHIẾU NHẬN XÉT CỦA ĐƠN VỊ THỰC TẬP
Trang 3LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn sự giúp đỡ nhiệt tình của thầy giáoHuỳnh Ngọc Thọ, người đã định hướng, hướng dẫn cũng như hỗ trợ chochúng em trong quá trình chuẩn bị và tiến hành để chúng em có thể hoànthành tốt đồ án này
Chúng em cũng xin gửi lời cảm ơn tới các thầy cô giáo, giảng viên trongKhoa Khoa Học Máy Tính – ĐH Công Nghệ Thông Tin và Truyền ThôngViệt Hàn đã cung cấp cho chúng em những kiến thức cần thiết để thực hiện
đồ án này
Chúng em cũng xin gửi lời cảm ơn đến gia đình, bạn bè luôn động viêngiúp đỡ chúng em trong suốt thời gian học tập và nghiên cứu, đóng gópnhững kinh nghiệm quý báu trong thời gian thực hiện đồ án này
Kính chúc thầy cô mạnh khỏe, công tác tốt, tiếp tục giảng dạy và đào tạothế hệ trẻ thành công
Xin chân thành cảm ơn !
Trang 4MỤC LỤC
Trang
MỞ ĐẦU 2
LỜI CẢM ƠN 3
NHẬN XÉT 4
DANH MỤC CÁC BẢNG 6
DANH MỤC CÁC HÌNH 7
Chương 1 GIỚI THIỆU CÔNG TY TNHH PHẦN MỀM FPT 7
1.1 Địa chỉ 7
1.2 Tổng quan và lịch sử hình thành 7
1.3 Lĩnh vực hoạt động 9
1.4 Cơ cấu tổ chức 9
1.5 Các sản phẩm/ giải pháp 9
1.6 Đánh giá về FPT software 10
Chương 2 NGHIÊN CỨU TỔNG QUAN VỀ JSP VÀ JAVA SERVLET 11
2.1 JSP 11
2.1.1 JSP là gì 11
2.1.2 Kiến trúc JSP trong ứng dụng Web 11
2.1.3 Chu trình sống của JSP 12
2.2 Giới thiệu về Servlet 13
2.2.1 Ưu điểm của Servlet 15
2.2.2 Vòng đời của Servlet 16
2.2.3 Nhiệm vụ của Servlet 18
2.2.4 Kiến trúc của Servlet 18
Chương 3 ỨNGS DỤNG QUẢN LÝ SINH VIÊN 19
3.1 Giới thiệu về đề tài 19
3.2 Các thành phần của ứng dụng 19
3.2.1 Front End 19
3.2.2 Backend 19
3.3 Cơ sở dữ liệu 20
3.4 Các chức năng có trong ứng dụng 21
3.4.1 Login 21
3.4.2 Thêm sinh viên 21
3.4.3 Xóa sinh viên 21
3.4.4 Sửa thông tin sinh viên 21
Chương 4 KẾT LUẬN 22
4.1 Kết quả đạt được 22
4.2 Hạn chế 22
4.3 Kết luận 22
Trang 5DANH MỤC HÌNH
Trang
Hình 1: Sơ đồ tổ chức mới của FPT Software từ 1/1/2016 9
Hình 2: Đánh giá về FPT Software theo ITviec.com 10
Hình 3: Kiến trúc JSP trong ứng dụng web 11
Hình 4: Vai trò của Servlet 14
Hình 5: Vòng đời của Servlet 17
Hình 6: Minh họa về vòng đời của Servlet 18
Hình 7: Kiến trúc một web application sử dụng servlet 19
Hình 8: Bảng account 21
Hình 9: Bảng sinh_vien 21
Trang 6MỞ ĐẦU
Công nghệ thông tin ngày càng phát triển và con đẻ của nó là các web site cũng không ngừng lớn mạnh cả về số lượng cũng như chất lượng Từ trang web quen thuộc www.google.com người dùng có thể tìm thấy rất nhiều các web site
về mọi lĩnh vực: văn hoá, thời sự, khoa học công nghệ, làm đẹp, nấu ăn, thể thao,
ca nhạc, phim ảnh…Độc giả sẽ click chuột vào đâu? Tất nhiên là vào những địa chỉ chứa những thông tin người dùng tìm kiếm, hay những web site ấn tượng.Ngày nay, việc tự tạo ra trang web cho riêng mình không còn là điều khó khăn Chẳng hạn như, khi truy cập vào trang web weebly.com, người dùng có thể
dễ dàng tạo ra web site cá nhân, tự thiết kế giao diện, nội dung của mình theo phong cách riêng
Tuy nhiên, những web site như vậy, phần lớn chỉ mang tính giải trí, để tạora một trang web có sức sống bền lâu thì bản thân nó phải mang lại lợi ích cho nhiều người Giao diện bắt mắt là yếu tố quan trọng để người xem click chuột đến web site của bạn Nhưng yếu tố quyết định giữ chân độc giả lại là nội dung
mà web site cung cấp Đi theo lối mòn là sự lựa chọn có nhiều thách thức Tuy nhiên, được tham gia thực tập tại công ty TNHH phần mềm FPT, em đã được đàotạo những kiến thức từ cơ bản đến phức tạp về lập trình nói chung và lập trình website nói riêng đã giúp em nâng cao trình độ hiểu biết của mình Từ đó có thể vận dụng những kiến thức đã được học vào quá trình làm việc, nâng cao trình độ.Sau 4 tuần thực tập tại Công ty TNHH Phần mềm FPT – một trong những doanh nghiệp hàng đầu về lĩnh vực công nghệ thông tin Việt Nam, em đã được tạo điều kiện trực tiếp quan sát, tham gia vào một số công việc của công ty, từ đó rút ra được nhiều kinh nghiệm cho bản thân và đóng góp một phần công sức vào
sự phát triển của công ty
Báo cáo bao gồm 3 chương:
Chương 1: Giới thiệu Công ty TNHH Phần mềm FPT
Chương 2: Nghiên cứu tổng quan về JSP và Java Servlet
Chương 3: Ứng dụng quản lý sinh viên
Sinh viên thực hiện Hoàng Ngọc Phương
Trang 7Chương 1 GIỚI THIỆU CÔNG TY TNHH PHẦN MỀM FPT
1.1 Địa chỉ
Tên cơ quan: Công ty TNHH Phần mềm FPT
Địa chỉ: Hòa Hải, Ngũ Hành Sơn, Đà Nẵng
dự án Typo4 xuất khẩu sang Pháp do một Việt kiều ở Pháp về chủ trì Tiếp theo
là hàng loạt giải pháp phần mềm cho các mảng ngân hàng, kế toán, phòng vé máy bay song song với phân phối thiết bị và dự án phần cứng Đến tháng 12 năm 1994, khi đã đủ lớn, ISC được tách thành các bộ phận chuyên sâu về dự
án, phân phối, phần mềm… Bộ phận phần mềm lúc đó có tên là FSS (FPT Software Solutions – tên tiếng Việt là Xí nghiệp Giải pháp Phần mềm FPT)
Từ 1994 đến 1998, FSS tiếp tục phát triển và cung cấp các giải pháp phần mềm cho các lĩnh vực Ngân hàng, Kế toán, Thuế, Hải quan, Công an.Một trongnhững thành tích nổi bật của FSS là xây dựng TTVN – mạng WAN đầu tiên tại Việt nam, tạo tiền đề phát triển cho Công ty Viễn thông FPT sau này (FPT Telecom) Trong những năm này, FPT liên tiếp được PC World Việt nam bình chọn là Công ty Tin học số một
Cuối năm 1998 đầu 1999, sau khi chiến lược xuất khẩu phần mềm được định hình, một nhóm chuyên gia được tách ra từ FSS để thành lập FSU1 (FPT Strategic Unit #1) như bộ phận chịu trách nhiệm mũi nhọn trong sứ mệnh Toàn Cầu Hoá FSU1 chính là tiền thân của FSOFT ngày nay Trong năm 1999, FSOFT đã thực hiện thành công dự án đầu tiên với khách hàng Winsoft,
Canada, bước đầu xác định cơ cấu tổ chức, lên các chương trình chuẩn bị nhân lực cho xuất khẩu Năm 2000, FSOFT chuyển trụ sở sang toà nhà HITC Ảnh hưởng bởi vụ dotcom, thị trường xuất khẩu phần mềm gặp nhiều khó khăn Tuyvậy, FSOFT đã vượt qua được thử thách và đạt được kết quả quan trọng – ký hợp đồng OSDC (Offshore Software Development Center) đầu tiên với Harvey
Trang 8Nash Đến nay, Harvey Nash vẫn là một trong những khách hàng lớn nhất của FSOFT.
Năm 2001 được đánh dấu bằng các hợp đồng OSDC với Mỹ và đặc biệt làOSDC với NTT-IT – khách hàng Nhật bản đầu tiên của FSOFT Năm 2001 cũng là năm FSOFT bắt đầu dự án CMM-4, với mục tiêu đạt chứng chỉ CMM mức 4 trong vòng một năm
FSOFT đạt CMM mức 4 vào tháng 3/2002, trở thành công ty đầu tiên ở khu vực Đông Nam Á đạt chứng chỉ này Năm 2002 cũng là năm FSOFT củng
cố lại sơ đồ tổ chức, bằng việc thành lập các Trung tâm sản xuất và các Phòng chức năng Cuối 2002, lần đầu tiên doanh số FSOFT vượt ngưỡng 1 triệu USD.Năm 2003 đem về cho FSOFT nhiều khách hàng mới, đặc biệt là các khách hàng lớn của Nhật như Hitachi, Sanyo, Nissen, IBM Japan FSOFT thành lập Văn phòng tại thành phố Hồ Chí Minh Để chuẩn bị cho thị trường Nhật, một chương trình lớn được triển khai bao gồm thành lập Trung tâm Đông Du đào tạo tiếng Nhật CNTT, tuyển sinh viên các Khoa tiếng Nhật và hỗ trợ học bổng cho họ học Aptech, tuyển sinh viên tốt nghiệp các trường CNTT và đào tạo tập trung tiếng Nhật 6 tháng Năm 2003 cũng là năm dự án CMM-5 khởi động Đầu năm 2004, FSOFT trở thành Công ty cổ phần phần mềm FPT Trụ sở tại
Tp Hồ Chí Minh được chuyển về toà nhà e-town FSOFT đạt CMM mức 5 (mức cao nhất) vào tháng 3 Để phục vụ tốt hơn các khách hàng Nhật, Văn phòng đại diện của FSOFT được mở tại Tokyo Năm 2004 cũng là năm gặt hái nhiều thành công của Công ty Phần mềm FPT, với doanh số xuất khẩu năm
2004 tăng trưởng hơn 200% so với năm 2003
Năm 2005 là năm đánh dấu bước phát triển của công ty về mọi mặt, giúp FSOFT khẳng định vị trí công ty phần mềm hàng đầu Việt Nam Tháng 8/2005 thành lập Chi nhánh Đà Nẵng, tháng 11 thành lập Công ty FSOFT JAPAN tại Tokyo, tháng 12 khai trương Trung tâm Tuyển dụng và Đào tạo tại toà nhà Simco, Hà nội Hết năm 2005, FSOFT tăng trưởng 114% doanh số, trở thành công ty phần mềm đầu tiên của Việt Nam có 1000 nhân viên
Tháng 10, năm 2007, FSOFT chuyển Trung tâm đảm bảo nguồn lực (RAC) về tòa nhà FPT Software tại Ngõ Tuổi trẻ- Hoàng Quốc Việt, đánh dấu
sự trưởng thành trong công tác Tuyển dụng và đào tạo ban cho nguồn nhân lực của toàn Fsoft Hà Nội Các Trung tâm sản xuất phần mềm được chuyển đến làm việc tập trung tại Tòa nhà FPT Building tại Phạm Hùng Cuối năm 2007, doanh số của Fsoft đạt 29,6 triệu USD, tăng 79% so với doanh thu năm 2006;
số nhân viên chính thức là 2,287 người
FSOFT có hệ thống khách hàng rộng lớn trên toàn thế giới ở Mỹ, Châu
Âu, Nhật Bản, và các nước Châu Á Thái Bình Dương (Malaysia, Singapore, Thailand, Australia) Trong chiến lược gia nhập hàng ngũ những nhà cung cấp dịch vụ phần mềm hàng đầu thế giới, Công ty tập trung phát triển nguồn nhân lực chất lượng cao – giá trị cốt lõi đóng góp vào tăng trưởng của công ty Với 80% nhân viên FSOFT thuần thục về tiếng Anh và hơn 200 người sử dụng tiếng Nhật, FPT Sofware không ngừng tìm kiếm và tạo cơ hội cho những tài năng trẻ Mục tiêu trong năm 2008, Fsoft sẽ đạt doanh thu 48,5 triệu USD, lợi nhuận ước tính sẽ đạt 14,7 triệu USD với số nhân viên sẽ là 3400 người
Trang 94 sản phẩm, giải pháp công nghệ mới do FPT nghiên cứu, phát triển:
Nền tảng trí tuệ nhân tạo FPT.AI
Công nghệ xe tự lái
Dịch vụ xử lý số
Dịch vụ chuyển đổi số
Trang 101.6 Đánh giá về FPT software
Hình 2: Đánh giá về FPT Software theo ITviec.com
Trang 11Chương 2 NGHIÊN CỨU TỔNG QUAN VỀ JSP VÀ
JAVA SERVLET 2.1 JSP
- JSP là cách đơn giản hóa hơn cho Servlet Nếu như đối với Servlet phải viết
mã Java và biên dịch bằng tay trước khi sử dụng với trình chủ Web server thì JSP không cần điều này JSP viết mã Java tương tự Servlet nhưng cho phép trộn lẫn Java với các thẻ HTML để tạo ra Servlet xử lý các yêu cầu mà trình khác gửi đến trang
- JSP đơn giản và dễ sử dụng hơn Servlet mặc dù sau khi biên dịch và thực thi chúng chỉ là một
2.1.2 Kiến trúc JSP trong ứng dụng Web
Hình 3: Kiến trúc JSP trong ứng dụng web
Trang 122.1.3 Chu trình sống của JSP
Trang JSP có chu trình sống xác định tính từ khi hệ thống đọc biên dịch trang JSP, gọi thực thi và loại bỏ trang ra khỏi bộ nhớ Chu trình sống của trang JSP gồm có 5 giai đoạn sau:
1 Biên dịch trang
Khi trình duyệt yêu cầu trang JSP, Web server sẽ kiểm tra xem trangJSP đã được biên dịch hay chưa Nếu chưa biên dịch hoặc đã biên dịch nhưng trang JSP mới vừa thay đổi mã nguồn thì Web Server sẽ thực hiện biên dịch trang JSP Quá trình biên dịch JSP thực tế là chuyển trang JSP thành servlet File biên dịch class của trang chỉ diễn ra một lần Nếu trang đã biên dịch và sau đó không bị thay đổi trong mã nguồn thì quá trình biên dịch sẽ không xảy
ra nữa, do đó mà tốc độ thực thi sẽ nhanh hơn Sau khi biên dịch, mã trang sẽ được nạp vào bộ nhớ để thực thi
Quá trình biên dich trang JSP sẽ được diễn ra như sau:
Bước 1: Kiểm tra xem trang đã được dịch thành mã nguồn tương đương servlet hay chưa
Bước 2: Nếu chưa được biên dịch thì trang JSP sẽ được biên dịch thành file nguồn java theo cấu trúc của servlet Gọi trình biên dịch javac biên dịch file nguồn java thành file thực thi của servlet class
Bước 3: Nạp servlet đã biên dịch ở bước 2, thực thi trả kết quả về cho trình khách
Bước 4: Nếu file JSP đã được biên dịch trước đó: thực hiện kiểm tra xem nội dung file jsp có thay đổi không, Nếu có thì quay lại bước 2 biên dịch lại trang,nếu không thì quay lại bước 3
2 Nạp trang
Kể từ giai đoạn này, quá trình nạp trang tương tự như servlet (trang JSPsau khi biên dịch có thể coi như một servlet) Chỉ có một điểm khác là servlet chỉ được nạp một lần trong khi mã trang JSP mặc dù đã biên dịch nhưng phải nạp lại nhiều lần mỗi khi web server nhận được yêu cầu trang từ trình duyệt
3 Khởi tạo
Khi nạp mã trang thành công, Web server sẽ gọi đến phương thức khỏi tạo trang Và mặc dù JSP được biên dịch ra servlet nhưng phương thức khởi tạo cho trang JSP lại mang tên là jspInit() chứ không phải là init() như servlet
4 Thực thi
Sau quá trình khởi tạo, Web server sẽ gọi đến phương thức _jspService (khác với servlet gọi đến doPost(), doGet() hoặc service()) Phương thức _jspService sẽ chuyển đến hai lớp đối tượng HttpServletRequest và
HttpServletResponse để đọc và ghi kết xuất trả về trình khách
5 Dọn dẹp
Sau quá trình khởi tạo, Web server sẽ gọi đến phương thức _jspService (khác với servlet gọi đến doPost(), doGet() hoặc service()) Phương thức
Trang 13Khi trang JSP đã thực thi xong, trình chủ Web Server sẽ gọi phương thứcjspDestroy() để giải phóng mã trang khỏi bộ nhớ Tương tự như trong Servlet,
có thể cài đặt phương thức jspDestroy() thực hiện giải phóng vùng nhớ hoặc đóng kết nối trả về tài nguyên cho hệ thống.Java Servlet
2.2 Giới thiệu về Servlet
Hiện nay, trong lập trình có một xu hướng rất quan trọng đang được tập trung phát triển ứng dụng, đó là xây dựng các chương trình dịch vụ Java ở phía máy chủ (Server)
Servlet là thành phần chính được sử dụng để phát triển các chương trình dịch vụ Java ở phía máy chủ Các Servlet là các chương trình Java thực hiện ở các ứng dụng Server (tên gọi “Servlet” cũng gần giống như “Applet” ở phía máy Client) để trả lời cho các yêu cầu của Client Các Servlet không bị ràng buộc chặt với một giao thức Client-Server cụ thể nào cả, nhưng giao thức thường được sử dụng là HTTP, do vậy, khi nói tới Servlet nghĩa là nói tới HTTP Servlet Servlet là sự phát triển mở rộng của CGI để đảm bảo Server thực hiện được các chức năng của mình Ta có thể sử dụng Servlet của Java để tuỳ chỉnh lại một dịch vụ bất kỳ, như Web Server, Mail Server, v.v
Web Server hiển thị các tư liệu được viết trong HTML và hồi đáp cho yêu cầu của người sử dụng qua HTTP Các tư liệu HTML chứa các văn bản được đánh dấu (định dạng) để các trình duyệt như IE, Netscape đọc được.Một trình duyệt chấp nhận đầu vào ở dạng HTML, khi người sử dụng nhấn một nút để yêu cầu một số thông tin nào đó, một Servlet đơn giản được gọi để
xử lý các yêu cầu đó Các công việc chính của Servlet được mô tả khái quát trong hình 1, bao gồm:
Đọc các dữ liệu tường minh được Client gửi đến từ các yêu cầu (dữ liệu theo các khuôn dạng – form data)
Đọc các dữ liệu không tường minh được Client gửi đến từ các yêu cầu (dữ liệu trong phần đầu của yêu cầu – request headers)
Xử lý và lưu trữ các dữ liệu được cung cấp dưới dạng HTML
Gửi trả lời dữ liệu tường minh cho Client (dạng HTML), cung cấp các nội dung động, ví dụ trả lời yêu cầu Client về các câu truy vấn vào các CSDL
Quản lý các thông tin trạng thái và trả lời dữ liệu không tường minh cho Client (các mã trạng thái và các phần đầu của trả lời)
Trang 14Hình 4: Vai trò của Servlet
Viết một Servlet là tương đối dễ Ta chỉ cần có Tomcat, nó là tổ hợp củaJava Server PagesTM 1.1 và Servlets 2.2 Tomcat có thể nạp miễn phí từ http://java.sun.com/products/jsp/tomcat/, phần cài đặt sẽ được mô tả ở phần sau
Các Servlet cũng được sử dụng thay cho kịch bản giao diện cổng chung CGI Script Khi tạo ra một trang Web, ta cũng sẽ tạo ra một ứng dụng Web
Trước khi sử dụng Servlet để tạo ra các ứng dụng Web, chúng ta đi tìm hiểu xem có những khả năng lựa chọn nào khác để phát triển những ứng dụng Web
CGI: Theo cách thông thường, để bổ sung các chức năng vào cho một
Web Server người ta hay sử dụng Common Gateway Interface (CGI), một giao diện độc lập với ngôn ngữ cho phép một Server khởi động một tiến trình ngoại để nhận thông tin được yêu cầu thông qua các biến môi trường Mỗi yêu cầu được trả lời bởi một tiến trình riêng thông qua một đại diện riêng của một chương trình CGI hoặc bởi một kịch bản CGI (thường được viết bằng ngôn ngữ thông dịch như Perl)
Fast CGI: Open Marked đã phát triển một chuẩn khác thay cho CGI
được gọi là Fast CGI Fast CGI hành động giống như CGI Nó khác ở chỗ, Fast CGI tạo ra một tiến trình bền vững cho từng chương trình
Một số chương trình ứng dụng khác như ASP và Java Script cũng hỗ trợ
để tạo ra các ứng dụng Web ASP được Microsoft phát triển để tạo ra các nội dung cho các trang Web động Trong ASP, trang HTML có thể nhúngnhững phần nhỏ được viết bằng VBScript hoặc JScript Netscape đưa ra
kỹ thuật được gọi là JavaScript, cho phép đưa các phần mã lệnh nhỏ nhúng vào trang HMTL, nhằm tạo ra những nội dung Web động một cách linh họat hơn Ngoài ra, Netscape còn cung cấp NSAPI, Microsoft đưa ra ISAPI cho các Web Server của họ
Servlet có một số ưu điểm so với CGI:
Một Servlet không làm việc trong một tiến trình riêng Điều này loại bỏ được việc phải tạo ra quá nhiều tiến trình mới cho mỗi yêu cầu
Một Servlet sẽ thường trực trong bộ nhớ giữa các yêu cầu, trong khi cácchương trình CGI cần phải tải xuống và được khởi động cho từng yêu cầu CGI
Chỉ cần một Servlet trả lời đồng thời cho tất cả các yêu cầu Điều này cho phép tiết kiệm được bộ nhớ và đảm bảo nó dễ dàng quản lý được
dữ liệu một cách thống nhất
Một Servlet có thể thực hiện bởi một Servlet Engine trong phạm vi kiểm soát Sandbox để đảm bảo an toàn trong việc sử dụng các Servlet.Các lớp Servlet của Java có thể được nạp tự động để mở rộng các chức năng của Server Các Servlet của Java thực hiện bên trong JVM Chúng được đảm bảo an toàn và chuyển đổi tương thích giữa các hệ điều hành và giữa các Server với nhau Điều này khác với các Applet, Servlet chỉ thao tác được trong miền của một Server
Servlet API được phát triển dựa trên những điểm mạnh của Java platform nhằm giải quyết vấn đề của CGI và Server API Nó là một API đơn giản, hỗ trợ