Sử dụng IDE Eclipse Helios và Apache Tomcat Web Server 7.0, chúng ta có thể dễ dàng viết một ứng dụng web đơn giản và chạy ngay trên máy tính của mình. Bên cạnh đó, hai khái niệm quan trọng của một ứng dụng web là Servlet và JSP cũng sẽ được đề cập đến trong bài viết.
J2EE Java Nguyễn Hoàng Vinh 2017-10-03 14:21:12

Giới thiệu

Với tiêu chí Write Once, Run Any Where, ngôn ngữ cấp cao Java luôn được các lập trình viên sử dụng để tạo ra ứng dụng chạy trên nhiều nền tảng khác nhau. Web Application cũng không là ngoại lệ khi có thể được phát triển bằng ngôn ngữ Java thông qua các IDE như Eclipse hay NetBeans và dễ dàng được deploy bằng Tomcat Server.

Bài viết là 1 project Hello Web với Java JSP Servlet.

Chuẩn bị môi trường

Để xây dựng một Web Application bằng Java, chúng ta cần cài đặt môi trường trên máy tính:

  • Java Development Kit 1.6 (JDK 1.6)
  • Java IDE Eclipse Helios
  • Apache Tomcat Web Server 7.0

Ngoài ra, Web Application chúng ta sắp xây dựng sẽ áp dụng mô hình MVC (Model - View - Controller). Bạn đọc cần có kiến thức cơ bản về mô hình MVC này, các bạn có thể tìm hiểu qua bài viết Design Pattern: MVC Pattern.

Cài đặt Java Development Kit 1.6

Các bạn có thể vào đây để tải JDK 1.6 cho Windows, ở đây tôi sẽ tải bản x64.

cai-dat-jdk-1

Sau khi tải về, ta tiến hành cài đặt, các bạn nên để trình cài đặt tự chọn thư mục cài (C:/Program Files/..) để giảm thiểu các vấn đề sau này liên quan đến đường dẫn của Java.

cai-dat-jdk-2

Ta tiếp tục cài đặt JRE (Java Runtime Environment).

cai-dat-jdk-3

Vẫn để trình cài đặt tự chọn thư mục, sau khi cài đặt xong trình cài đặt sẽ hiện thông báo.

cai-dat-jdk-4

Cài đặt Java IDE Eclipse Helios

Các bạn vào đây để chọn phiên bản Eclipse Helios phù hợp (bên tay phải) và tải về.

cai-dat-eclipse-helios-1

Sau khi tải về và giải nén, các bạn chỉ việc chạy eclipse.exe và chọn đường dẫn Workspace (có thể để mặc định) là sử dụng được.

cai-dat-eclipse-helios

Cài đặt Apache Tomcat Web Server 7.0

Tương tự như trên, các bạn vào trang download Tomcat 7.0 và tải về phiên bản phù hợp, ở đây tôi chọn bản Core > Zip.

cai-dat-tomcat-1

Sau khi tải về và giải nén, ta có thể thử chạy độc lập Apache Tomcat bằng cách vào thư mục /bin và chạy file startup.bat (Windows Batch File).

cai-dat-tomcat-2

Việc khởi động Tomcat server sẽ diễn ra thành công nếu Command Line hiện ra kết quả như sau.

cai-dat-tomcat-3

Nếu truy cập theo đường link sau bạn sẽ vào trang chủ của Tomcat server http://localhost:8080, lưu ý rằng các bạn không được tắt cửa sổ Command Line nếu không Tomcat server sẽ tự động "hủy".

cai-dat-tomcat-4

Để tắt Apache Tomcat, các bạn chạy file shutdown.bat.

Tạo Dynamic Web Project trong Eclipse

Để viết một Web Application đơn giản bằng ngôn ngữ Java, chúng ta có thể sử dụng Dynamic Web Project cung cấp bởi Eclipse IDE.

Chọn File > New > Dynamic Web Project. Lưu ý: Project name sẽ là địa chỉ truy cập của Web Application sau này. Ví dụ nếu chọn tên project là ABC, địa chỉ website sau này sẽ là http://localhost:8080/ABC (viết hoa như tên project).

Ở phần Target Runtime, chúng ta sẽ chọn Server Runtime Environment muốn sử dụng cho project, nếu chưa có, chọn New Runtime.

cai-dat-web-project-1

Sau khi chọn Apache Tomcat version (ở đây là version 7.0), nhấn Next và các bạn sẽ được yêu cầu đường dẫn đến thư mục Apache Tomcat đã giải nén lúc nãy. Chúng ta chọn đường dẫn và nhấn Finish.

cai-dat-web-project-2

Trở lại với cửa sổ tạo project, tôi sẽ nhập tên project là stdioweb sau đó chọn Next. Sau khi nhấn Next 2 lần, cửa sổ Web Module sẽ hiện ra và các bạn chọn Generate web.xml deployment descriptor và nhấn Finish.

cai-dat-project

Kết quả sau khi tạo Dynamic Web Project tên stdioweb.

cai-dat-project-4

Sơ lược về Servlet và JSP

Trong lập trình web bằng ngôn ngữ Java, Servlet là lớp Java đặc biệt (Java class), cho phép lập trình viên linh động hơn trong việc tạo ra Web Application. Nhiệm vụ cơ bản nhất của Servlet là giải quyết các yêu cầu từ phía client gửi lên server (Servlet đứng ở vị trí trung gian).

Khi client nhập http://abc.com, điều này có nghĩa client đang gửi yêu cầu lên server muốn xem nội dung của trang abc.com/ (dấu "/" tuy không xuất hiện nhưng thực chất là có và được trình lượt bỏ vì phía sau không có đường dẫn nào kèm theo). Servlet khi đó sẽ nhận diện url-pattern đang được yêu cầu là "/" và sẽ tìm kiếm class Java nào được chỉ định để giải quyết yêu cầu này và chuyển đến đó.

Tương tự, khi client gõ địa chỉ kèm theo path là http://abc.com/login thì Servlet sẽ nhận diện url-pattern là /login và đưa chuyển yêu cầu tới class Java của url-pattern này.

JSP là công nghệ "cao" hơn Servlet khi nó kết hợp giữa HTML, XML, Java Code và cả Servlet để giúp lập trình viên tạo trang web động và dễ dàng phát triển, bảo trì. Cơ bản, JSP cũng tương tự như các ngôn ngữ kịch bản khác PHP hay ASP, trong file JSP sẽ chứa code HTML kèm theo các tag JSP chứa code Java.

Tạo Servlet HelloWorld

Trong Web Application này, chúng ta sẽ hiện thực theo mô hình MVC, trong đó Servlet sẽ đóng vai trò là các Controller, nhận và xử lý request, lấy data từ các Model, sau đó trả về View là một trang JSP.

Để tạo một Servlet, ta nhấn chuột phải vào project và chọn New > Servlet. Cửa sổ tạo Servlet hiện ra, chúng ta điền Java packageClass name.

cai-dat-web-project-5

Nhấn Next, chúng ta sẽ đến phần cấu hình URL Mapping. Như tôi đã nói, nhiệm vụ của Servlet là nhận diện url-pattern và chuyển nó tới class Java được chỉ định để xử lý yêu cầu. Các bạn sẽ thấy trong phần URL mappings, được mặc định url-pattern là /HelloWorldServlet, có nghĩ nếu client nhập vào trình duyệt http://stdioweb/HelloWorldServlet, yêu cầu đó sẽ được gửi đến Servlet chúng ta sắp tạo ra.

cai-dat-web-project-6

Tại đây, chúng ta nhấn Finish, các phương thức doPost, doGet cần thiết của Servlet này sẽ tự động được tạo ra.

cai-dat-web-project

Như đã trình bày, Controller (ở đây là HelloWorldServlet có url-pattern /HelloWorldServlet) sau khi nhận được yêu cầu, sẽ xử lý và trả về một View nào đó. Do trong bài viết này tôi chỉ hướng dẫn các bạn hiện thực một Web Application đơn giản nên chúng ta không cần xử lý gì thêm, trong Servlet này ta sẽ chỉ định View JSP nào sẽ được gởi về cho client.

Tôi sẽ thêm vào phương thức doGet (xử lý các HTTP Get) dòng code getRequestDispatcher([ tên file View JSP ]). Dòng code này nhằm gửi trả về client View phù hợp và kèm với đó là các thông tin cần thiết được thêm vào request, response (những thông tin này sau đó có thể được sử dụng trong file JSP nếu cần).

cai-dat-web-project-8

Tiếp tục với mô hình MVC, tôi sẽ tạo thêm thư mục /views để chứa các View JSP cần thiết. Thư mục này sẽ nằm trong thưc mục WebContent và cùng cấp với META-INFWEB-INF. Trong đó tôi sẽ tạo file JSP tên helloworld.jsp.

cai-dat-project-9

Sau khi tạo file JSP thành công, tôi sẽ chỉnh sửa nội dung tương tự như trên file HTML bình thường để in ra dòng chữ Hello World trong thẻ <h2>.

Chạy Dynamic Web trên Eclipse

Sau khi chuẩn bị Servlet, JSP và map url-pattern với Controller sẽ xử lý, chúng ta sẽ tiến hành thiết lập môi trường để chạy dynamic web trên Eclipse. Các bạn chọn tab Servers hoặc vào Window > Show View > Servers.

cai-dat-web-project-10

Trong tab Servers, nhấn chuột phải và chọn New > Server. Chúng ta sẽ chọn server Tomcat 7.0 như đã cài đặt và nhấn Next.

cai-dat-web-project-11

Đến cửa sổ Add and Remove, tại đây sẽ hiện ra các Resource để chúng ta chạy với server. Nhấn chọn vào project của mình và chọn Add, project sẽ được thêm vào Configured và ta nhấn Finish.

cai-dat-web-project

Sau khi Tomcat v7.0 Server localhost đã được tạo, chúng ta chỉ việc chuột phải vào server và chọn Start. Cửa sổ console của Eclipse sẽ hiện ra thông tin server khởi động thành công như sau.

cai-dat-web-project-13

Để xem truy cập vào Web Application, ta sử dụng trình duyệt web và gõ http://localhost:8080/stdioweb/HelloWorldServlet. Lúc nãy chúng ta đã cấu hình cho Servlet mapping nhận diện url-pattern /HelloWorldServlet thì sẽ chạy vào HelloWorldServlet.java.

Ở đó, chúng ta cũng thiết lập trong phương thức doGet sẽ trả về view là helloworld.jsp có chứa câu chào Hello World đặt trong thẻ <h2>. Nếu truy cập theo đường dẫn trên và thấy được trang web như sau là bạn đã thành công.

cai-dat-web-project-14

Chạy Web Application trên Tomcat độc lập

Bên cạnh việc sử dụng Apache Tomcat trên IDE Eclipse, chúng ta có thể chạy độc lập server Tomcat và deploy web project của mình lên đó.

Đầu tiên, ta export project ra file WAR. Chuột phải vào project và ta chọn Export > WAR file. Ở đây tôi chọn vị trí export ra tại Desktop.

deploy-tomcat-1

Sau đó, chúng ta vào thư mục của Apache Tomcat đã giải nén ra lúc đầu, vào /conf và mở file tomcat-users.xml để thêm user vào Tomcat Manager.

deploy-tomcat-2

Sau khi lưu file tomcat-users.xml, ta vào /bin và chạy file batch startup.bat (lưu ý là server Tomcat trên Eclipse phải tắt nếu không sẽ xảy ra tình trạng đụng port).

Sau khi khởi động Tomcat độc lập, ta vào http://localhost:8080/manager, bạn sẽ phải đăng nhập bằng tài khoản user khi nãy đã thiết lập.

Sau khi vào giao diện Manager của Tomcat, chúng ta kéo xuống phần Deploy > WAR file to deploy và chọn file WAR đã export ra lúc nãy.

deploy-tomcat-3

Sau khi chọn và nhấn Deploy, ta sẽ nhận được thông báo như sau.

deploy-server-4

Như vậy, khi truy cập vào http://localhost:8080/stdioweb/HelloWorldServlet, chúng ta sẽ có cùng kết quả khi sử dụng với Eclipse.