Lorsque je créais moi-même une application iPhone, je ne comprenais pas la différence entre getAttribute () et getParameter (). Je n'ai pas pu obtenir la demande de l'application avec le servlet, je vais donc la laisser comme note.
L'événement qui s'est produit cette fois est comme ça.
Envoyer une demande depuis l'application iPhone ↓ Reçu par le servlet (Le servlet est atteint, mais les paramètres de la demande ne peuvent pas être obtenus.)
Je n'essayais pas d'obtenir la valeur avec request.getAttribute. Il semble que vous deviez l'obtenir avec getParameter. .. ~~ (Jsp était complètement aveugle car il pouvait être obtenu avec getAttribute) ~~ 2020.05.22 PostScript ↑ Je n'ai pas pu l'obtenir. Il semble que j'aie été accro parce que setAttribute et getAttribute ont été foirés en premier lieu. .. J'ai étudié à nouveau sur ce site. → méthode getAttribute ().
Le contenu détaillé a été décrit sur ce site. [・ Différence entre getAttribute () et getParameter ()](https://www.it-swarm.dev/ja/java/difference entre getattribute () et getparameter () / 971401730 / "Différence entre getAttribute () et getParameter () la différence")
J'ai essayé de vérifier avec un exemple de programme pour approfondir la compréhension. Il s'agit d'un exemple de programme qui affiche la chaîne de caractères saisie dans le champ textField de l'iPhone sur la console.
→
Après tout, il n'était pas possible de l'obtenir avec getAttribute
** ・ Écran iPhone (écran de saisie) **
ViewController
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var testField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
//Exécuté lorsque le bouton d'envoi est pressé vers Servlet
@IBAction func goServlet(_ sender: Any) {
self.performSegue(withIdentifier: "goResultView", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
print("préparer démarre l'opération")
//Définir l'URL
guard let req_url = URL(string: "http://localhost:8080/Test/TestServlet")
else{return}
print("ensemble d'URL terminé")
//Déclarer les informations requises pour la demande
var req = URLRequest(url: req_url)
print("Déclaration de demande")
//Spécifiez POST
req.httpMethod = "POST"
//Définir les données POST comme BODY
req.httpBody = "test=\(self.testField.text!)".data(using: .utf8)
//Créer une session
let session = URLSession(configuration: .default,delegate: nil, delegateQueue: OperationQueue.main)
print("Créer une session")
//Enregistrer la demande en tant que tâche
let task = session.dataTask(with: req, completionHandler: {
(data, response ,error) in
})
//demande envoyée
task.resume()
}
}
** ・ Écran iPhone (écran de résultat) **
** ・ Servlet Java **
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("Accédez à la méthode POST du servlet");
System.out.println("Lorsqu'il est reçu par getAttribute:" + "La chaîne de caractères envoyée depuis l'application iPhone est" + request.getAttribute("test") + "est.");
System.out.println("Lorsqu'il est reçu par getParameter:" + "La chaîne de caractères envoyée depuis l'application iPhone est" + request.getParameter("test") + "est.");
}
}
Recommended Posts