HTTP POST Файл права на JAVA
У сценарії веб нас є два методи, щоб відправити вміст іншої сторінки "GET" і "POST". Хоча в "GET" метод розробників володіє гнучкістю перевірки вмісту отримання пройшло, але є межа для передачі даних. Як порівняти з "GET" метод "POST" користується гнучкість для відправки необмеженого даних і за допомогою цього методу ми можемо відправити величезний зміст файлу. У цій статті ми навчимо вас, як ми можемо направити величезні вміст файлу на віддаленому хості. Для досягнення цієї мети ми будемо використовувати URLConnection клас, який дозволяє підключатися з віддалених URL сторінки.
JSP Page кодексу
= "java.util.*,java.net.URL,java.net.URLConnection,java.net.URLEncoder,java.io.*" %> <% @ Page імпорту = "java.util .*, java.net.URL, java.net.URLConnection, java.net.URLEncoder, java.io. *"%> <% URL URL; URLConnection urlConn; DataOutputStream роздруківку; DataInputStream вхід; / / URL дистанційного Script. URL ( "http://localhost:8080/testpostdata" ) ; //testpostdata is the servlet name URL = URL нового ("http://localhost:8080/testpostdata"); / / testpostdata це ім'я сервлет / / Відкриваємо новий URL каналу зв'язку. ( ) ; urlConn = URL. openConnection (); / / Нехай під час виконання системи (РТС), що ми хочемо введення. true ) ; urlConn. setDoInput (TRUE); / / Ми хочемо зробити висновок. true ) ; urlConn. setDoOutput (TRUE); / / Ми не хочемо кешування false ) ; urlConn. setUseCaches (брехня); / / Вкажіть тип вмісту заголовка. "Content-Type" , "application/x-www-form-urlencoded" ) ; urlConn. setRequestProperty ("Content-Type", "застосування / х-веб-форми urlencoded"); / / Відправити POST продукції. DataOutputStream ( urlConn. getOutputStream ( ) ) ; Роздруківка = новий DataOutputStream (urlConn. getOutputStream ()); String зміст = URLEncoder . encode ( "Hitesh Agrawal" ) + "Ім'я =" + URLEncoder. Кодування ("Hitesh Agrawal") + URLEncoder . encode ( "Software Engineer" ) ; "І професія =" + URLEncoder. Кодування ("інженер-програміст"); content ) ; роздруківки. writeBytes (вміст); ; роздруківки. врівень (); ; роздруківки. Close (); / / Отримати дані відповіді. DataInputStream ( urlConn. getInputStream ( ) ) ; введення нових DataInputStream = (urlConn. getInputStream ()); String вул; null != ( ( str = input. readLine ( ) ) ) ) а (пі! = ((= вхідний вул. ReadLine ()))) ( . println ( str ) ; Система. У. Println (рядок); ) ; вхід. Close (); %>
Кодекс Пояснення JSP:
- Тут ми створюємо об'єкт URLConnection по телефону openConnection () метод об'єкта URL
- Після створення об'єкту ми встановлюємо необхідні атрибути і заголовків, необхідні для передачі даних
- Після установки заголовків я пишу дані про OutputStream. Нарешті я читаю відповідь даних.
testpostdata Servlet кодексу
; імпорт java.io. *; ; імпорт javax.servlet .*; ; імпорт javax.servlet.http .*; HttpServlet { публічного тестування клас розширює HttpServlet ( init ( ServletConfig config ) throws ServletException { громадського ініціалізації недійсним (ServletConfig конфігурації) кидає ServletException ( ( config ) ; супер. ініціалізації (конфігурації); ) destroy ( ) { громадського недійсними знищити () ( ) doPost ( HttpServletRequest request,HttpServletResponse response ) throws IOException , ServletException { громадського doPost недійсним (HttpServletRequest прохання HttpServletResponse відповідь) кидки IOException, ServletException ( request. getParameter ( "name" ) ; String ім'я = запит. GetParameter ("ім'я"); request. getParameter ( "profession" ) ; String професії = запит. GetParameter ("професію"); OutputStream F0; = name. getBytes ( ) ; байт BUF [] = ім'я. getBytes (); FileOutputStream ( "/home/hitesh/Desktop/postcontent.txt" ) ; F0 = новий FileOutputStream ("/ головна / Hitesh / Desktop / postcontent.txt"); int i = 0 ; i < buf . length ; i ++ ) { для (INT = 0; я <BUF. довжину; я + +) ( buf [ i ] ) ; F0. Написати ('іЕ [я]); ) ; F0. Close (); ; ЬіЕ = NULL; ) )
Кодекс Пояснення Servlet:
- У doPost () я отриманні параметра відправити використанням request.getParameter
- Для перехресну чи дані були успішно відправити я створюю файл, і його зміст є дані, отримані через POST

Користувальницька пошуку


































Як перенести файли за допомогою цього методу (наприклад, зображення (JPEG)). Я спробував, але тільки 9-10 байт переносяться.