Comment transférer des données de JSP à servlet lors de la soumission du formulaire HTML
j'ai une page JSP avec un formulaire HTML:
<form action="SERVLET">
<input type="text" name="name"/><br>
<input type="text" name="group"/>
<input type="text" name="pass"/>
<input type="submit" value="submit">
</form>
Comment obtenir ces données dans un servlet et les ajouter à la base de données?
4 réponses
créer une classe qui étend HttpServlet
et mettre @WebServlet
annotation sur elle contenant L'URL désirée que le servlet devrait écouter.
@WebServlet("/yourServletURL")
public class YourServlet extends HttpServlet {}
et il suffit de laisser <form action>
point à cette URL. Je recommanderais aussi à d'utiliser la méthode POST pour les requêtes non-idempotent. Vous devez vous assurer que vous avez spécifié le name
attribut des champs D'entrée du formulaire HTML ( <input>
, <select>
, <textarea>
et <button>
). Ceci représente le nom du paramètre de requête HTTP. Enfin, vous devez également vous assurer que les champs d'entrée d'intérêt sont inclus dans le formulaire désiré et donc pas à l'extérieur.
Voici quelques exemples de formulaire HTML champs de saisie :
<form action="${pageContext.request.contextPath}/yourServletURL" method="post">
<p>Normal text field.
<input type="text" name="name" /></p>
<p>Secret text field.
<input type="password" name="pass" /></p>
<p>Single-selection radiobuttons.
<input type="radio" name="gender" value="M" /> Male
<input type="radio" name="gender" value="F" /> Female</p>
<p>Single-selection checkbox.
<input type="checkbox" name="agree" /> Agree?</p>
<p>Multi-selection checkboxes.
<input type="checkbox" name="role" value="USER" /> User
<input type="checkbox" name="role" value="ADMIN" /> Admin</p>
<p>Single-selection dropdown.
<select name="countryCode">
<option value="NL">Netherlands</option>
<option value="US">United States</option>
</select></p>
<p>Multi-selection listbox.
<select name="animalId" multiple="true" size="2">
<option value="1">Cat</option>
<option value="2">Dog</option>
</select></p>
<p>Text area.
<textarea name="message"></textarea></p>
<p>Submit button.
<input type="submit" name="submit" value="submit" /></p>
</form>
créer un doPost()
méthode dans votre servlet qui saisit les valeurs d'entrée soumises comme paramètres de requête saisis par le champ d'entrée name
( pas id
!). Vous pouvez utiliser request.getParameter()
pour obtenir la valeur soumise à partir des champs d'une seule valeur et request.getParameterValues()
pour obtenir les valeurs soumises à partir des champs de plusieurs valeurs.
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
String pass = request.getParameter("pass");
String gender = request.getParameter("gender");
boolean agree = request.getParameter("agree") != null;
String[] roles = request.getParameterValues("role");
String countryCode = request.getParameter("countryCode");
String[] animalIds = request.getParameterValues("animalId");
String message = request.getParameter("message");
boolean submitButtonPressed = request.getParameter("submit") != null;
// ...
}
Faire, si nécessaire, certains validation et, enfin, persister dans la base de données de l'habituel JDBC / DAO way.
User user = new User(name, pass, roles);
userDAO.save(user);
voir aussi:
- Tutoriel HTML pour débutants
- nos Servlets wiki page
- doGet et doPost dans les Servlets
- comment appeler une méthode Java spécifique sur click / submit event de bouton spécifique dans JSP?
- comment effectuer la validation et afficher le message d'erreur sous la même forme dans JSP?
- Comment puis-je conserver les valeurs des champs du formulaire HTML dans JSP après avoir envoyé le formulaire à Servlet?
- comment télécharger des fichiers vers le serveur en utilisant JSP/Servlet?
- afficher les résultats JDBC en HTML dans la page JSP en utilisant MVC et DAO pattern
- Servlet renvoie "d'État HTTP 404 La ressource demandée (/servlet) n'est pas disponible"
Eh bien, il y a beaucoup de tutoriels de base de données en ligne pour java (ce que vous cherchez s'appelle JDBC). Mais si vous utilisez des servlets simples, vous aurez une classe qui s'étend HttpServlet
et à l'intérieur, vous aurez deux méthodes qui ressemblent à
public void doPost(HttpServletRequest req, HttpServletResponse resp){
}
et
public void doGet(HttpServletRequest req, HttpServletResponse resp){
}
L'un d'eux est appelé pour gérer les opérations GET
et un autre est utilisé pour gérer les opérations POST
. Vous utiliserez alors le HttpServletRequest
objet pour obtenir les paramètres qui ont été passés dans le cadre de la forme comme so:
String name = req.getParameter("name");
ensuite, une fois que vous avez les données du formulaire, il est relativement facile de l'ajouter à une base de données en utilisant un tutoriel JDBC qui est largement disponible sur le web. Je suggère également de chercher un tutoriel de base sur les servlets Java pour vous aider à démarrer. C'est très facile, bien qu'il y ait un certain nombre d'étapes qui doivent être configurées correctement.
http://oreilly.com/catalog/javacook/chapter/ch18.html
recherche pour:
"problème
vous souhaitez traiter les données à partir d'un formulaire HTML dans un servlet. "
créer votre fichier jsp :
et écrivez le champ de texte que vous voulez
par exemple:
après cela créez votre classe de servlet:
public class test{
protected void doGet(paramter , paramter){
String name = request.getparameter("name");
}
}