4.7. CẤU HÌNH CAUCHO RESIN
Bước đầu tiên để cài đặt và cấu hình Resin là download server này tại địa chỉ http://caucho.com/products/resin/. Sau đó chúng ta unzip nó đến thư mục cài đặt mong muốn. Bước tiếp theo là thực hiện cấu hình server gồm các bước sau:
Bước 1: Thiết lập biến môi trường JAVA_HOME. Đặt biến này vào danh sách các thư mục cài đặt SDK cơ bản.
Bước 2: Chỉ định port. Sửa tập tin install_dir/conf/resin.conf và thay đổi giá trị thuộc tính port của phần tử http từ 8080 thành 80. Thiết lập môi trường làm việc.
Chương 5
CƠ BẢN VỀ SERVLET
5.1. CẤU TRÚC CỦA MỘT SERVLET
Về cơ bản, nhiệm vụ của servlet là xử lý hai loại request là GET và POST.
GET request là loại request mà browser thường gửi tới Web page. Browser tạo ra request này khi người dùng nhập vào một URL trên thanh địa chỉ hay click vào một link trên một trang web bất kỳ hoặc nhập (submit) một HTML form mà có thể được chỉ định METHOD=”GET” hoặc không được chỉ định cụ thể.
POST request sinh ra khi người dùng nhập (submit) một HTML form mà được chỉ định cụ thể METHOD=”POST”.
Bảng 5.1 - ServerTemplate.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletTemplate extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { PrintWriter out = response.getWriter();
// Use "out" to send content to browser.
} }
Servlets thường extend HttpServlet và ghi đè (override) phương thức doGethoặc doPost, tùy thuộc vào việc dữ liệu đang được gửi bởi GEThoặc POST. Nếu muốn để Servlet cư xử với GETvà POSTnhư nhau thì chỉ cần để phương thức doGetgọi phương thức doPostvà ngược lại.
Phương thức doGet và doPost đều có hai đối số là HttpServletRequestvà HttpServletResponse. HttpServletRequest cho phép chúng ta lấy (get) tất cả dữ liệu gửi đến (incoming data) trong khi HttpServletResponsecho phép chỉ định thông tin gửi đi (mã trạng thái HTTP (200, 404) và response headers (content-type, set- cookie))
Nếu bạn muốn có một servlet để có những hành động tương tự cho cả hai GETvà POSTyêu cầu, chỉ cần có doGetgọi doPost, hoặc ngược lại. Cả hai doGetvà doPostcó hai đối số: một HttpServletRequestvà một HttpServletResponse. Các HttpServletRequest cho phép bạn lấy được tất cả các dữ liệu đến; lớp này có các phương thức cho phép lấy (query) các thông tin như hình thứ dữ liệu, HTTP header của request, và tên client-server. Các HttpServletResponse cho phép bạn chỉ định thông tin gửi đi như mã trạng thái HTTP (200, 404, v.v.) và response- header (Content-Type, Set-Cookie, v.v.).
Phương thức doGet và doPost đưa ra hai exception là (ServletExceptionvà IOException), và cần phải đưa hai phương thức này vào phần khai báo phương thức. Cuối cùng, cần import các class trong java.io (cho PrintWriter), javax.servlet(cho HttpServlet) và javax.servlet.http (cho HttpServletRequest, HttpServletResponse).
5.2. SERVLET XUẤT RA PLAIN TEXT ĐƠN GIẢN
Bảng 5.2 mô tả một servlet đơn giản: HelloWorld.java. Servlet này xuất ra dòng chữ “Hello World” trên Web page.
Bảng 5.2 - HelloWorld.Java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("Hello World");
} }
Dưới đây là các bước để thực thi chương trình:
Bước 1: Sau khi tạo file HelloWorld.java như hình trên, chúng ta tiến hành biên dịch servlet này (click nút Build trên IDE). Bước này biên dịch servlet thành lớp HelloWorld.class.
Bước 2: Chuyển tập tin HelloWorld.class vào thư mục mà server sử dụng để lưu các servlet trong ứng dụng web mặc định. Địa chỉ thư mục
này là khác nhau giữa các server, nhưng thường thì được đặt theo địa chỉ sau: install_dir/.../WEB-INF/classes. Với server Tomcat, địa chỉ cụ thể là install_dir/webapps/ROOT/WEB-INF/classes; với Jrun là install_dir/servers/default/default-ear/default-war/WEB- INF/classes; với Resin là install_dir/doc/WEB-INF/classes.
Bước 3: Gọi (invoke) servlet. Bước này liên quan đến việc sử dụng URL mặc định của http://host/servlet/ServletName hay là URL tùy chỉnh được định nghĩa trong file web.xml. Trong giai đoạn đầu, sẽ thuận tiện hơn khi sử dụng URL mặc định, khi đó sẽ không phải chỉnh sửa tập tin web.xml mỗi khi test một servlet mới. Tuy nhiên, khi triển khai ứng dụng trên thực tế, thì cần phải vô hiệu hóa URL mặc định và chỉ định rõ URL trong web.xml.