Hình thức HTTP POST Yêu cầu sử dụng AJAX và Servlet

Thế giới trong Java Servlets được phổ biến sử dụng cho các Model View Controller (MVC) Thiết kế mẫu. Bài viết này sẽ hướng dẫn bạn về viết ứng dụng dựa trên AJAX mà sẽ gửi dữ liệu đến Servlet và sẽ lấy dữ liệu tính từ Servlet. Với phương pháp này, trang sẽ nhận được nội dung cập nhật từ máy chủ mà không làm mới jsp / html trang.

JSP Mã số:

 "text/javascript" > function getXMLObject ( ) //XML OBJECT { var xmlHttp = false ; try { xmlHttp = new ActiveXObject ( "Msxml2.XMLHTTP" ) // For Old Microsoft Browsers } catch ( e ) { try { xmlHttp = new ActiveXObject ( "Microsoft.XMLHTTP" ) // For Microsoft IE 6.0+ } catch ( e2 ) { xmlHttp = false // No Browser accepts the XMLHTTP Object then false } } if ( ! xmlHttp && typeof XMLHttpRequest != 'undefined' ) { xmlHttp = new XMLHttpRequest ( ) ; //For Mozilla, Opera Browsers } return xmlHttp ; // Mandatory Statement returning the ajax object created } var xmlhttp = new getXMLObject ( ) ; //xmlhttp holds the ajax object function ajaxFunction ( ) { if ( xmlhttp ) { var txtname = document. getElementById ( "txtname" ) ; xmlhttp. open ( "POST" , "getname" , true ) ; //getname will be the servlet name xmlhttp. onreadystatechange = handleServerResponse ; xmlhttp. setRequestHeader ( 'Content-Type' , 'application/x-www-form-urlencoded' ) ; xmlhttp. send ( "txtname=" + txtname. value ) ; //Posting txtname to Servlet } } function handleServerResponse ( ) { if ( xmlhttp. readyState == 4 ) { if ( xmlhttp. status == 200 ) { document. myForm . message . innerHTML = xmlhttp. responseText ; //Update the HTML Form element } else { alert ( "Error during AJAX call. Please try again" ) ; } } } </ script > <body> <form name="myForm" method="POST" action="getname"> <table> <tr> <td>Enter Name</td> <td><input type="text" name="txtname" id="txtname" /></td> </tr> <tr> <td colspan="2"><input type="button" value="Submit"  onclick="ajaxFunction();" /></td> </tr> </table> <div id="message"></div> </form> </body> </head> </html> <html> <head> <title> JSP và Servlet sử dụng AJAX </ title> <script type = "text / javascript"> chức năng getXMLObject () / / XML VẬT (var xmlHttp = false; try (xmlhttp = new ActiveXObject ( " Msxml2.XMLHTTP ") / / for Old Microsoft duyệt) catch (e) (try (xmlhttp = new ActiveXObject (" Microsoft.XMLHTTP ") / / Đối với Microsoft IE 6,0 +) catch (e2) (xmlHttp = false / / Không Browser chấp nhận đối tượng XMLHTTP sau đó sai)) if (xmlhttp & & typeof! XMLHttpRequest! = 'undefined') (xmlhttp = new XMLHttpRequest (); / / Đối với Mozilla, Opera duyệt) return xmlHttp; / / Bắt buộc Tuyên bố trả lại ajax đối tượng được tạo ra) var xmlHttp = mới getXMLObject (); / / xmlHttp giữ đối tượng ajaxFunction chức năng ajax () (if (xmlHttp) (var txtname = tài liệu getElementById ( "txtname"); xmlHttp.. mở ( "POST", "getName", true ); / / getName sẽ là xmlHttp tên servlet. onreadystatechange = handleServerResponse; xmlHttp. setRequestHeader ( 'Content-Type', 'application / x-www-form-urlencoded'); xmlHttp. gửi ( "txtname =" + txtname. giá trị); / / Quyền txtname để Servlet)) function handleServerResponse () (if (xmlhttp. readyState == 4) (if (xmlhttp. tình trạng == 200) (tài liệu myForm.. thư. innerHTML = xmlHttp. responseText; / / cập nhật các mẫu HTML tố) else (alert ( "Lỗi trong khi AJAX gọi Hãy thử lại".);))) </ script> <form name="myForm" method="POST" action="getname"> <table> <tr> <td> Tên </ td> <td> <input type="text" name="txtname" id="txtname" /> </ td> </ tr> <tr> <font colspan = "2"> <input type="button" value="Submit" onclick="ajaxFunction();" /> </ td> </ tr> </ table> <div id="message"> </ div> </ form> </ body> </ head> </ html> 

Servlet Mã

  ; import java.io. *;

 ; nhập khẩu java.text .*;

 ; import java.util .*;

 ; import javax.servlet .*;

 ; import javax.servlet.http .*;

 HttpServlet { getName lớp công kéo dài HttpServlet (

	 init ( ServletConfig config ) throws ServletException { public void init (ServletConfig config) throws ServletException (	
		 ( config ) ; siêu. init (config);
	 )

	 destroy ( ) { public void destroy () (

	 )

	 doPost ( HttpServletRequest request,HttpServletResponse response ) throws IOException , ServletException { public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException (
		 null ; String name = null;
		 response. getWriter ( ) ; PrintWriter out = trả lời. GetWriter ();
		 request. getParameter ( "txtname" ) != null ) { nếu (request. getParameter ( "txtname") = null) (!
			 ( "txtname" ) ; Tên = yêu cầu getParameter ( "txtname").;
		 )
                 else (
                        ; name = "";
                 )
  	         "You have successfully made Ajax Call:" + name ) ; ra ngoài. println ( "Bạn đã thực hiện cuộc gọi Ajax:" + name);
	 )
 ) 

Giải thích cho Mã AJAX

Ở đây tôi có tuyên bố 3 chức năng JavaScript:
getXMLObject () - Chịu trách nhiệm cho việc tạo các đối tượng AJAX phụ thuộc vào trình duyệt.
ajaxFunction () - Chịu trách nhiệm gọi servlet qua AJAX gọi.
handleServerResponse () - Chịu trách nhiệm hiển thị các dữ liệu lấy từ máy chủ.

Làm thế nào các AJAX Mã số tác phẩm:

  • Khi trang tải i sáng tạo ra một đối tượng AJAX bằng cách gọi getXMLObject () trả về chức năng và các đối tượng được tạo ra trong biến xmlHttp
  • Khi người dùng nhấp vào nút đầu vào, ajaxFunction () được gọi là kiểm tra xem các đối tượng Ajax là tạo ra hay không và phụ thuộc vào kịch bản mà các cuộc gọi từ xa. Đây là một chức năng xử lý handleServerResponse cũng được xác định cho lấy giá trị từ máy chủ
  • Khi readyState của gọi AJAX đạt 4 và tình trạng http là 200, chúng tôi vượt qua các dữ liệu lấy từ máy chủ vào textbox

Email của bạn:

Giải thích cho Mã Servlet

  • Bởi chức năng doPost mặc định được gọi là khi bạn đăng nội dung để servlet
  • Trong i hàm doPost sáng lấy dữ liệu POST ở dạng txtname và gán nó vào tên biến địa phương
  • Cuối cùng i am hiển thị các dữ liệu đã qua POST. Tất cả dữ liệu được hiển thị thông qua các đối tượng Ajax ở dạng đáp ứng cho Ajax gọi được thực hiện cho servlet

Tìm kiếm Tuỳ chỉnh


Phổ biến các điều:

Tags: , Thể loại: AJAX, Java Tags:
  1. Ngày 08 tháng tư năm 2008 lúc 04:50 | # 1

    Tốt trang web tôi "Stumbledupon" hôm nay và nó đã cho nó một vấp ngã cho bạn .. mong muốn được nhìn thấy những gì khác mà bạn có sau này ..

  2. riya
    Ngày 19 Tháng Hai 2009 lúc 03:54 | # 2

    mã không phải làm việc! u kiện làm việc của mình ... mã sau khi nộp sản lượng servlet không được hiển thị trang vẫn vì nó là giúp đỡ ..

  3. riya
    Ngày 19 Tháng Hai 2009 lúc 03:55 | # 3

    i có cùng một tên cho trước và kiểm tra mã đúng ...

  4. Ahmed
    16 tháng 3 năm 2009 lúc 11:05 | # 4

    hi đoạn code thực sự đã làm việc nhưng workin của nó chỉ cho đăng một trong những giá trị từ mẫu, tôi có một hình thức mà bài viết nhiều giá trị từ một số lĩnh vực văn tám, mã này không được làm việc với những người không có đầu vào xin đề nghị một giải pháp,
    và ive khẩn cấp của mình để sử dụng trong các dự án sem cuối cùng của tôi,

    cảm ơn rất nhiều trước

  5. Lee
    Ngày 25 tháng 11 năm 2009 lúc 22:14 | # 5

    sử dụng
    "Document.getElementById (" thông báo ") innerHTML = xmlhttp.responseText;."
    thay thế
    "Document.myForm.message.innerHTML = xmlhttp.responseText;"

  1. Không có Trackbacks nêu ra.