http://o7planning.org/web/fe/default/vi/document/12760/huongdanlaptrinhjavaservletchonguoimoibatdau 5/51Khi yêu cầu request của người dùng tới Servlet, servlet sẽ gọi phương th
Trang 1Máy đuổi côn trùng Pest Reject LP03
98,525MUA NGAY
Thẻ nhớ tốc độ cao Micro SDHC 32GB
195,000MUA NGAY
MENU
Trang 2dữ liệu hoặc một nguồn khác, và tạo ra các trang web động
Trang 3http://o7planning.org/web/fe/default/vi/document/12760/huongdanlaptrinhjavaservletchonguoimoibatdau 3/51
3 Vòng đời của Servlet
Hình dưới đây minh họa về vòng đời của một Servlet. Từ khi nó được tạo ra, sử lý các đòi hỏi từ người dùng,cho tới lúc nó bị hủy
Trang 5http://o7planning.org/web/fe/default/vi/document/12760/huongdanlaptrinhjavaservletchonguoimoibatdau 5/51
Khi yêu cầu (request) của người dùng tới Servlet, servlet sẽ gọi phương thức service() để phục vụ yêu cầu của người dùng, service() sẽ gọi một trong hai phương thức doGet() hoặc doPost(). Trong servlet của bạn, bạn
cần ghi đè và sử lý tại các phương thức này
Như vậy khi người dùng gửi yêu cầu một Servlet, servlet sẽ được tạo ra tại thời điểm có yêu cầu lần đầu tiên tới,
đồng thời sẽ gọi phương thức init() của servlet để khởi tạo cho nó, init() được gọi duy nhất 1 lần. Phương thức destroy() dùng để hủy servlet, nó sẽ được gọi một lần duy nhất khi gỡ bỏ triển khai (undeloy) ứng dụng web
hoặc tắt (shutdown) web server
4 Cài đặt Tomcat Web Server
Để bắt đầu với Servlet, bạn cần download Tomcat Web Server và khai báo nó với Eclipse. Bạn có thể xemhướng dẫn tại:
http://o7planning.org/web/fe/default/vi/document/19569/khaibaoservertomcattreneclipse
5 Tạo Web Project bắt đầu với Servlet
File/New/Other
Trang 6Project Name: ServletTutorial
Trang 7http://o7planning.org/web/fe/default/vi/document/12760/huongdanlaptrinhjavaservletchonguoimoibatdau 7/51
Trang 8Đây là hình ảnh Project được tạo ra:
Trang 9<title>Insert title here</title>
Trang 10Trên eclipse, nhấn phải vào Project ServletTutorial, chọn Properties:
Trang 11http://o7planning.org/web/fe/default/vi/document/12760/huongdanlaptrinhjavaservletchonguoimoibatdau 11/51Chọn đến vị trí cài đặt Tomcat 8 của bạn.
Trang 12Nhấn phải chuột vào project ServletTutorial, chọn "Run As/Run on Server".
Trang 13http://o7planning.org/web/fe/default/vi/document/12760/huongdanlaptrinhjavaservletchonguoimoibatdau 13/51
Trang 17HttpServletResponse response) throws ServletException, IOException {
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response);
}
?
Trang 18Cần khai báo thư viện Servlet, các thư viện này chỉ là các thư viện Runtime của Servlet, nó có sẵn trên các WebServer, ở đây chúng ta dùng Tomcat, vì vậy hãy khai báo chúng
Trang 19http://o7planning.org/web/fe/default/vi/document/12760/huongdanlaptrinhjavaservletchonguoimoibatdau 19/51
Trang 21<url‐pattern>/hello</url‐pattern>
<?xml version="1.0" encoding="UTF‐8"?>
<web‐app xmlns:xsi="http://www.w3.org/2001/XMLSchema‐instance"
<servlet‐name>helloServlet</servlet‐name>
<servlet‐class>org.o7planning.tutorial.servlet.HelloServlet</servlet‐class>
</servlet>
<servlet‐mapping>
<servlet‐name>helloServlet</servlet‐name>
<url‐pattern>/hello</url‐pattern>
</servlet‐mapping>
<welcome‐file‐list>
<welcome‐file>index.html</welcome‐file>
<welcome‐file>index.htm</welcome‐file>
<welcome‐file>index.jsp</welcome‐file>
<welcome‐file>default.html</welcome‐file>
<welcome‐file>default.htm</welcome‐file>
<welcome‐file>default.jsp</welcome‐file>
Trang 22Bạn có thể xem nguyên tắc hoạt động của nó theo hình minh họa dưới đây:
Trang 23http://o7planning.org/web/fe/default/vi/document/12760/huongdanlaptrinhjavaservletchonguoimoibatdau 23/51
Khi một Servlet được gọi tới, tùy tình huống mà một trong hai phương thức doGet( ) hoặc doPost( ) sẽ đượcgọi
Trang 24out.println("<p>emailSupport1 = " + this.emailSupport1 + "</p>");
out.println("<p>emailSupport2 = " + emailSupport2 + "</p>");
Trang 25<param‐value>abc@example.com</param‐value>
</init‐param>
<init‐param>
<param‐name>emailSupport2</param‐name>
<param‐value>tom@example.com</param‐value>
<servlet‐name>initParamServlet</servlet‐name>
<url‐pattern>/initParam</url‐pattern>
<?xml version="1.0" encoding="UTF‐8"?>
<web‐app xmlns:xsi="http://www.w3.org/2001/XMLSchema‐instance"
<servlet‐name>helloServlet</servlet‐name>
<servlet‐class>org.o7planning.tutorial.servlet.HelloServlet</servlet‐class>
</servlet>
<servlet‐mapping>
<servlet‐name>helloServlet</servlet‐name>
<url‐pattern>/hello</url‐pattern>
</servlet‐mapping>
<servlet>
<servlet‐name>initParamServlet</servlet‐name>
<servlet‐class>org.o7planning.tutorial.servlet.InitParamServlet</servlet‐class
<init‐param>
<param‐name>emailSupport1</param‐name>
<param‐value>abc@example.com</param‐value>
</init‐param>
<init‐param>
<param‐name>emailSupport2</param‐name>
<param‐value>tom@example.com</param‐value>
<servlet‐name>initParamServlet</servlet‐name>
<url‐pattern>/initParam</url‐pattern>
Trang 26<welcome‐file>index.htm</welcome‐file>
<welcome‐file>index.jsp</welcome‐file>
<welcome‐file>default.html</welcome‐file>
<welcome‐file>default.htm</welcome‐file>
<welcome‐file>default.jsp</welcome‐file>
@WebInitParam(name = "emailSupport1", value = "abc@example.com"),
@WebInitParam(name = "emailSupport2", value = "tom@example.com")
}
?
Trang 27out.println("<p>emailSupport2 = " + emailSupport2 + "</p>");
Trang 28*.map http://example.com/contextPath/status/abc.map
http://example.com/contextPath/status.map?date=todayhttp://example.com/contextPath/status/abc.MAP
/ Đây là Servlet mặc định
Trang 29public class AsteriskServlet extends HttpServlet {
Trang 32HttpServletResponse response) throws ServletException, IOException { ServletOutputStream out = response.getOutputStream();
Trang 34HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response);
}
}
Trang 35http://o7planning.org/web/fe/default/vi/document/12760/huongdanlaptrinhjavaservletchonguoimoibatdau 35/51
13 Forward (Chuyển tiếp)
Chuyển tiếp (Forward): Khi một yêu cầu (request) tới một Servlet, nó có thể chuyển tiếp yêu cầu tới một trangkhác (hoặc một servlet khác). Địa chỉ trên trình duyệt của người dùng vẫn là đường dẫn của trang đầu tiên,nhưng nội dung của trang do trang được chuyển tiếp tới tạo ra
Trang được chuyển tiếp tới bắt buộc phải là môt trang (hoặc Servlet) thuộc vào ứng dụng web của bạn
Với Forward bạn có thể sử dụng request.setAttribute() để truyền dữ liệu từ trang 1 sang trang thứ 2.
Trang 36private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Lấy parameter trên URL
// http://localhost:8080/ServletTutorial/other/forwardDemo?forward=true String forward = request.getParameter("forward");
Trang 37protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
Trang 38http://localhost:8080/contextPath
http://localhost:8080/ServletTutorial
Trường hợp request.getRequestDispatcher(url) trả về RequestDispatcher có vị trí tương đối với trang hiệntại
Forward (Chuyển tiếp) chỉ cho phép chuyển tới các trang nằm trong Website, đồng thời có thể
chuyển dữ liệu giữa 2 trang thông qua request.setAttribute.
14 Redirect (Chuyển hướng)
Chuyển hướng (Redirect): Khi một yêu cầu (request) từ phía người dùng tới một Servlet (Trang A), servletnày có thể chuyển yêu cầu này tới một trang khác (Trang B), và kết thúc nhiệm vụ của nó. Trang được chuyểnhướng tới có thể là trang trong ứng dụng của bạn, hoặc có thể là một trang bất kỳ. Địa chỉ trên trình duyệt củangười dùng lúc này sẽ hiển thị đường dẫn của trang B
Khác với chuyển tiếp (Forward). Với Redirect bạn không thể sử dụng request.setAttribute( ) để truyền dữ liệu
từ trang A sang trang B
Trang 39private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Trang 41http://o7planning.org/web/fe/default/vi/document/12760/huongdanlaptrinhjavaservletchonguoimoibatdau 41/51
Với đường dẫn thứ 2, request đã chuyển hướng sang ShowMeServlet, đường dẫn URL bạn thấy trên trìnhduyệt là đường dẫn của servlet ShowMeServlet
15 Phiên làm việc (Session)
Đối tượng HttpSession mô tả một phiên làm việc (session) của người dùng. Một phiên làm việc của người dùngchứa nhiều thông tin người dùng trên nhiều yêu cầu (request) đã gửi tới HTTP server
Khi lần đầu tiên người dùng vào trang web của bạn, người dùng sẽ nhận được một ID duy nhất phân biệt vớicác người dùng khác. ID này thường được lưu trữ trong cookie hoặc tham số của request
Trang 42public class LoginServlet extends HttpServlet {
Trang 43public class UserInfoServlet extends HttpServlet {
Trang 44out.println("<p>Country:" + loginedInfo.getCountry() + "</p>");
out.println("<p>Post:" + loginedInfo.getPost() + "</p>");
Trang 45http://o7planning.org/web/fe/default/vi/document/12760/huongdanlaptrinhjavaservletchonguoimoibatdau 45/51
http://o7planning.org/web/fe/default/vi/document/20397/huongdanlaptrinhjavajspchonguoimoibatdau
Trang 48Lập trình Java ứng dụng Desktop hoặc các ứng dụng Web giao diện giống ứng dụng Desktop nên chọn giải pháp nào?Hướng dẫn lập trình Java Desktop sử dụng SWT
Trang 50Vòi xịt sân vườn thông minh Magic Hose
Www.Lazada.Vn
390,000
336,000
Mua ngay
Trang 51http://o7planning.org/web/fe/default/vi/document/12760/huongdanlaptrinhjavaservletchonguoimoibatdau 51/51
o7planning.org