Als ich selbst eine iPhone-App erstellt habe, habe ich den Unterschied zwischen getAttribute () und getParameter () nicht verstanden. Ich konnte die Anfrage von der App mit dem Servlet nicht erhalten, daher hinterlasse ich sie als Notiz.
Das Ereignis, das diesmal aufgetreten ist, ist wie folgt.
Anfrage von iPhone App senden ↓ Vom Servlet empfangen (Das Servlet ist erreicht, aber die Parameter in der Anforderung können nicht abgerufen werden.)
Ich habe nicht versucht, den Wert mit request.getAttribute abzurufen. Es scheint, dass Sie es mit getParameter bekommen müssen. .. ~~ (Jsp war völlig blind, weil es mit getAttribute erhalten werden konnte) ~~ 2020.05.22 Nachtrag ↑ Ich konnte es nicht bekommen. Es scheint, dass ich süchtig danach war, weil setAttribute und getAttribute in erster Linie durcheinander gebracht wurden. .. Ich habe auf dieser Seite noch einmal studiert. → getAttribute () -Methode.
Der detaillierte Inhalt wurde auf dieser Seite beschrieben. [・ Unterschied zwischen getAttribute () und getParameter ()](https://www.it-swarm.dev/ja/java/difference zwischen getattribute () und getparameter () / 971401730 / "Unterschied zwischen getAttribute () und getParameter () der Unterschied")
Ich habe versucht, mit einem Beispielprogramm zu überprüfen, um das Verständnis zu vertiefen. Dies ist ein Beispielprogramm, das die im textField des iPhone auf der Konsole eingegebene Zeichenfolge anzeigt.
→
Immerhin war es nicht möglich, es mit getAttribute zu bekommen
** ・ iPhone-Bildschirm (Eingabebildschirm) **
ViewController
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var testField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
//Wird ausgeführt, wenn die Sendetaste auf Servlet gedrückt wird
@IBAction func goServlet(_ sender: Any) {
self.performSegue(withIdentifier: "goResultView", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
print("Vorbereitung startet den Betrieb")
//URL festlegen
guard let req_url = URL(string: "http://localhost:8080/Test/TestServlet")
else{return}
print("URL-Set abgeschlossen")
//Deklarieren Sie die für die Anfrage erforderlichen Informationen
var req = URLRequest(url: req_url)
print("Antragserklärung")
//Geben Sie den POST an
req.httpMethod = "POST"
//Stellen Sie die POST-Daten auf BODY ein
req.httpBody = "test=\(self.testField.text!)".data(using: .utf8)
//Sitzung erstellen
let session = URLSession(configuration: .default,delegate: nil, delegateQueue: OperationQueue.main)
print("Sitzung erstellen")
//Anfrage als Aufgabe registrieren
let task = session.dataTask(with: req, completionHandler: {
(data, response ,error) in
})
//Anfrage senden
task.resume()
}
}
** ・ iPhone-Bildschirm (Ergebnisbildschirm) **
** ・ Java Servlet **
TestServlet
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class testServlet
*/
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TestServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
System.out.println("Erreichen Sie die POST-Methode des Servlets");
System.out.println("Bei Empfang durch getAttribute:" + "Die von der iPhone App gesendete Zeichenfolge lautet" + request.getAttribute("test") + "ist.");
System.out.println("Bei Empfang durch getParameter:" + "Die von der iPhone-App gesendete Zeichenfolge lautet" + request.getParameter("test") + "ist.");
}
}
Recommended Posts