Tải bản đầy đủ (.pdf) (10 trang)

Bài giảng Lập trình ứng dụng Web - Chương 6: Lập trình Web với các công nghệ phổ biến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (110.8 KB, 10 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

Lập trình mạng – Chương
6


1


<b>CHƯƠNG 6: </b>



<b>LẬP TRÌNH WEB VỚI CÁC </b>


<b>CƠNG NGHỆ PHỔ BIẾN</b>



6.1 Giới thiệu Servlet/JSP



6.2 Lập trình web với Servlet


6.3 Lập trình web với JSP



6.4 Giới thiệu ASP



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

Lập trình mạng – Chương
6


2


• Servlet là một ứng dụng (class) Java chạy


trên nền web server.



• Cơ chế hoạt động theo mơ hình CGI mở


rộng.



• Chương trình phải được dịch ra ở dạng


byte-code(.class), khai báo với web




server. Web server phải hỗ trợ Java.



• Phải extends class HttpServlet. Khơng có



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Lập trình mạng – Chương
6


3


• Cần có package servlet.jar để biên dịch


(

/>


• Các server hiện hỗ trợ Servlet:



– Apache Tomcat ()


– Sun’s Java Web Server, free, hiện không cho
download ( />


– New Atlanta’s ServletExec, tích hợp ServletEngine
vào các web server()


– />


– …


• Tham khảo các tài liệu về Servlet:



</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Lập trình mạng – Chương
6


4



• Cấu trúc đơn giản của một Servlet:


import java.io.*;


import java.servlet.*;


import java.servlet.http.*;


public class Sample extends HttpServlet{
public doGet(HttpServletRequest request,


HttpServletResponse response)
throws ServletException,IOException{


//dùng đối tượng “request” để đọc dữ liệu từ client
//đối tượng “response” để xuất dữ liệu cho client
PrintWriter out = response.getWriter();


//dùng đối tượng out để ghi (method print) dữ liệu
cho client


</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Lập trình mạng – Chương
6


5


• Biên dịch như một class Java.



• File *.class dịch được phải đặt vào đúng thư


mục quy định sẵn của web server.




– Tomcat: $/webpages/WEB-INF/classes
– JWS: $/servlets


• Cấu hình cho web server đối với mỗi servlet:


– Tomcat: hiệu chỉnh file web.xml trong thư mục


$/webpages/WEB-INF theo DTD


/>


</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

Lập trình mạng – Chương
6


6


• Cơ chế hoạt động của một servlet:



– Web server nhận yêu cầu triệu gọi servlet từ


client.



• Nếu servlet chạy lần đầu, web server load file


servlet tương ứng, khởi tạo các thông số bằng qua
method <i>init()</i>


• Nếu servlet đã được khởi tạo, tạo một thread để
xử lý yêu cầu.


– Gọi methods

<i>doXxx() </i>

để xử lý các request


tương ứng theo giao thức HTTP.




</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

Lập trình mạng – Chương
6


7


• Lấy dữ liệu từ web client gởi đến bằng servlet:


– Dùng đối tượng của class <i>HttpServletRequest </i>


– Các methods để lấy thơng số:


• <i>getParameter(“para-name”)</i>


• <i>getParameterValues(“para-name”)</i>


String username= request.getParameter(“username”);
String[] choice =


request.getParameterValues(“comments”);


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

Lập trình mạng – Chương
6


8


• Ví dụ lấy tất cả các thơng số từ client



Enumeration parameter_names =
request.getParameterNames();


while(parameter_names.hasMoreElements()){



String para = parameter_names.nextElement();
out.print(para + “ = ”);


String[] paraValues = getParameterValues(para);
if(paraValues.lenght()==1){


out.println(paraValues[0]);
}else{


for(int i = 0, i< paraValues.lenght(),i++){
out.print(paraValues[i]+ “-”);


}
}


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

Lập trình mạng – Chương
6


9


• Lấy các thơng số HTTP request header: class



<i>HttpServletRequest</i>

cung cấp các method để lấy


các thông số request header.



– <i>String getHeader(header-name)</i>: lấy nội dung của


header-name



– <i>Enumeration getHeaderNames()</i>: lấy tất cả các


header-name.


– Một số method điển hình:


• <i>Cookie[] getCookies()</i>: dãy Cookie từ client


• <i>int getContentLength()</i>: trả giá trị Content-Length
• <i>int getContentType()</i>: trả giá trị Content-Type


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

Lập trình mạng – Chương
6


10


• Lấy các thơng số HTTP request header:


– Lấy các giá trị của biến mơi trường CGI:


• QUERY_STRING: <i>getQueryString()</i>


• REMOTE_ADDR: <i>getRemoteAddr()</i>


• REMOTE_HOST: <i>getRemoteHost()</i>


• REQUEST_METHOD: <i>getMethod()</i>


• PATH_INFO: <i>getPathInfo()</i>


• SCRIPT_NAME: <i>getServletPath()</i>



• SERVER_NAME: <i>getServerName()</i>


• SERVER_PORT: <i>getServerPort()</i>


• HTTP_XXX_YYY: <i>getHeader(“Xxx-Yyy”)</i>


</div>

<!--links-->

×