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 une servlet et les ajouter à la base de données?
Créez une classe qui étend la HttpServlet
et placez l'annotation @WebServlet
contenant l'URL souhaitée par le servlet.
@WebServlet("/yourServletURL")
public class YourServlet extends HttpServlet {}
Et laissez simplement <form action>
point à cette URL. Je voudrais aussi recommander utiliser la méthode POST pour les requêtes non idempotentes. Assurez-vous d'avoir spécifié l'attribut name
des champs de saisie du formulaire HTML (<input>
, <select>
, <textarea>
et <button>
). Cela représente le nom du paramètre de la requête HTTP. Enfin, vous devez également vous assurer que les champs d’intérêt d’intérêt sont placés à l’intérieur du formulaire souhaité et non à l’extérieur.
Voici quelques exemples de divers champs de saisie de formulaire HTML :
<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éez une méthode doPost()
dans votre servlet qui récupère les valeurs d'entrée soumises en tant que paramètres de requête définis par la variable name
du champ d'entrée (pasid
!). Vous pouvez utiliser request.getParameter()
pour obtenir la valeur soumise à partir de champs à valeur unique et request.getParameterValues()
pour obtenir les valeurs soumises à partir de champs à valeurs multiples.
@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;
// ...
}
Faites si nécessaire un peu de { validation } _ et enfin persistez-le dans la base de données de la façon habituelle JDBC / DAO .
User user = new User(name, pass, roles);
userDAO.save(user);
Il existe de nombreux didacticiels de base de données en ligne pour Java (ce que vous recherchez s'appelle JDBC). Mais si vous utilisez des servlets simples, vous aurez une classe qui étend HttpServlet
et à l'intérieur de celle-ci, vous aurez deux méthodes ressemblant à
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 ensuite l'objet HttpServletRequest
pour obtenir les paramètres qui ont été passés dans le formulaire, comme ceci:
String name = req.getParameter("name");
Ensuite, une fois que vous avez les données du formulaire, il est relativement facile de les ajouter à une base de données à l'aide d'un didacticiel JDBC largement disponible sur le Web. Je suggère également de rechercher un didacticiel de base sur les servlets Java pour vous aider à démarrer. C'est très facile, même si plusieurs étapes doivent être configurées correctement.
http://oreilly.com/catalog/javacook/chapter/ch18.html
Rechercher :
"Problème
Vous souhaitez traiter les données d'un formulaire HTML dans une servlet. "