HTTP POST File Nội dung trong JAVA

Trong kịch bản web, chúng tôi có hai phương pháp để gửi nội dung vào trang khác "GET" và "POST". Mặc dù trong "GET nhà phát triển phương pháp" rất thích sự linh hoạt của việc kiểm tra các nội dung nhận được thông qua nhưng không có giới hạn cho việc gửi dữ liệu. Khi so sánh với "GET" phương pháp "POST" thích sự linh hoạt cho việc gửi dữ liệu không hạn chế và sử dụng phương pháp này chúng tôi cũng có thể gửi nội dung tập tin rất lớn. Bài viết này sẽ dạy cho bạn về cách chúng tôi có thể gửi nội dung tập tin rất lớn để lưu trữ từ xa. Để đạt được điều này, chúng tôi sẽ sử dụng lớp URLConnection cho phép bạn kết nối với các trang URL từ xa.

Trang JSP Mã

  = "java.util.*,java.net.URL,java.net.URLConnection,java.net.URLEncoder,java.io.*" %> <% @ Nhập khẩu trang = "java.util .*, java.net.URL, java.net.URLConnection, java.net.URLEncoder, java.io. *"%>
 <%
     URL url;
     URLConnection urlConn;
     DataOutputStream printout;
     DataInputStream input;

     / / URL của Remote Script.
     URL ( "http://localhost:8080/testpostdata" ) ; //testpostdata is the servlet name url = new URL ( "http://localhost:8080/testpostdata"); / / testpostdata là tên servlet

     / / Mở kết nối kênh URL mới.
     ( ) ; urlConn = url. openConnection ();

     / / Hãy để cho hệ thống chạy-thời gian (RTS) biết rằng chúng tôi muốn đầu vào.
     true ) ; urlConn. setDoInput (true);

     / / Chúng tôi muốn làm đầu ra.
     true ) ; urlConn. setDoOutput (true);

     / / Chúng tôi muốn không có bộ nhớ đệm
     false ) ; urlConn. setUseCaches (false);

     / / Chỉ định kiểu nội dung tiêu đề.
     "Content-Type" , "application/x-www-form-urlencoded" ) ; urlConn setRequestProperty ( "Content-Type.", "application / x-www-form-urlencoded");

     / / Send POST output.
     DataOutputStream ( urlConn. getOutputStream ( ) ) ; printout = new DataOutputStream (urlConn. getOutputStream ());

     Chuỗi nội dung =
     URLEncoder . encode ( "Hitesh Agrawal" ) + "name =" + URLEncoder. encode ( "Hitesh Agrawal") +
     URLEncoder . encode ( "Software Engineer" ) ; "& nghề =" + URLEncoder. encode ( "Kỹ sư phần mềm");

     content ) ; printout. writeBytes (nội dung);
     ; printout. tuôn ra ();
     ; printout. close ();

     / / Lấy dữ liệu phản ứng.
     DataInputStream ( urlConn. getInputStream ( ) ) ; input = new DataInputStream (urlConn. getInputStream ());
     String str;
     null != ( ( str = input. readLine ( ) ) ) ) trong khi (null = ((str = đầu vào. readLine! ())))
     (
    	 . println ( str ) ; Hệ thống. Ra. Println (TP);
	 )
     ; đầu vào. close ();

 %> 

Email của bạn:


Mã Giải thích cho JSP:

  • Ở đây chúng tôi tạo ra một đối tượng của URLConnection bằng cách gọi openConnection () phương thức của một đối tượng URL
  • Sau khi tạo đối tượng chúng tôi thiết lập các thuộc tính cần thiết và tiêu đề cần thiết cho việc gửi dữ liệu
  • Sau khi thiết lập các tiêu đề i am viết dữ liệu trên OutputStream. Cuối cùng i am đọc dữ liệu phản ứng.

testpostdata Servlet Mã

  ; import java.io. *;
 ; import javax.servlet .*;
 ; import javax.servlet.http .*;

 HttpServlet { kiểm tra 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 (
		 request. getParameter ( "name" ) ; String name = yêu cầu getParameter ( "tên").;
		 request. getParameter ( "profession" ) ; String nghề = yêu cầu getParameter ( "nghề").;
		 OutputStream f0;

		 = name. getBytes ( ) ; byte buf [] = tên. getBytes ();

		 FileOutputStream ( "/home/hitesh/Desktop/postcontent.txt" ) ; f0 = new FileOutputStream ( "/ home / hitesh / Desktop / postcontent.txt");

		 int i = 0 ; i < buf . length ; i ++ ) { ; i + + cho chiều dài. (i = 0; i <buf) (
			 buf [ i ] ) ; f0. viết (buf [i]);
		 )

		 ; f0. close ();
		 ; buf = null;
	 )
 ) 

Giải thích cho Servlet Mã số:

  • Trong doPost () i am lấy các tham số gửi bằng cách sử dụng request.getParameter
  • Để crosscheck cho dù dữ liệu đã được gửi thành công i, sáng tạo một tập tin và nội dung tập tin là những dữ liệu nhận được qua các POST

Tìm kiếm Tuỳ chỉnh


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

Tags: Thể loại: Java Tags:
  1. Nahian
    Ngày 16 tháng 12 năm 2009 lúc 11:37 | # 1

    i làm thế nào để chuyển các tập tin bằng cách sử dụng phương pháp này (nói một hình ảnh (jpeg)). Tôi đã cố gắng nhưng chỉ 9-10 byte được chuyển giao.

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