tutorial - Cómo transferir datos de JSP a servlet al enviar un formulario HTML
jstl ejemplos (4)
Tengo una página JSP con un formulario 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>
¿Cómo obtener estos datos en un servlet y agregarlos a la base de datos?
Bueno, hay muchos tutoriales de bases de datos en línea para Java (lo que estás buscando se llama JDBC). Pero si está utilizando servlets simples, tendrá una clase que amplía HttpServlet
y dentro de ella tendrá dos métodos que se verán como
public void doPost(HttpServletRequest req, HttpServletResponse resp){
}
y
public void doGet(HttpServletRequest req, HttpServletResponse resp){
}
Uno de ellos se llama para manejar operaciones GET
y otro se usa para manejar operaciones POST
. A continuación, utilizará el objeto HttpServletRequest
para obtener los parámetros que se pasaron como parte del formulario de la siguiente manera:
String name = req.getParameter("name");
Luego, una vez que tenga los datos del formulario, es relativamente fácil agregarlos a una base de datos usando un tutorial JDBC que está ampliamente disponible en la web. También sugiero buscar un tutorial básico de servlets de Java para que comiences. Es muy fácil, aunque hay una serie de pasos que deben configurarse correctamente.
Cree una clase que amplíe HttpServlet
y coloque la anotación @WebServlet
con la URL deseada en la que el servlet debe escuchar.
@WebServlet("/yourServletURL")
public class YourServlet extends HttpServlet {}
Y solo deja que <form action>
point esta URL. También recommend usar el método POST para solicitudes no idempotentes. Debe asegurarse de haber especificado el atributo de name
de los campos de entrada de formulario HTML ( <input>
, <select>
, <textarea>
y <button>
). Esto representa el nombre del parámetro de solicitud HTTP. Finalmente, también debe asegurarse de que los campos de entrada de interés estén encerrados dentro del formulario deseado y, por lo tanto, no en el exterior.
Aquí hay algunos ejemplos de varios campos de entrada de formulario 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>
Cree un método doPost()
en su servlet que tome los valores de entrada enviados como parámetros de solicitud codificados por el name
del campo de entrada (¡ no id
!). Puede usar request.getParmeter()
para obtener el valor enviado de los campos de valor único y request.getParameterValues()
para obtener los valores enviados de los campos multivalor.
@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;
// ...
}
Haga si es necesario alguna validation y finalmente persista en el DB la forma habitual JDBC / DAO .
User user = new User(name, pass, roles);
userDAO.save(user);
Ver también:
- Tutorial para principiantes en HTML
- Nuestra página wiki de Servlets
- recommend
- ¿Cómo llamo a un método específico de Java al hacer clic / enviar evento de un botón específico en JSP?
- validation
- ¿Cómo puedo conservar los valores de campo de formulario HTML en JSP después de enviar el formulario a Servlet?
- ¿Cómo subir archivos al servidor usando JSP / Servlet?
- Mostrar JDBC ResultSet en HTML en la página JSP usando el patrón MVC y DAO
- point
primero crea tu archivo jsp: y escribe el campo de texto que quieras
por ejemplo:
después de eso crea tu clase de servlet:
public class test{
protected void doGet(paramter , paramter){
String name = request.getparameter("name");
}
}
http://oreilly.com/catalog/javacook/chapter/ch18.html
Buscar :
"Problema
Desea procesar los datos de un formulario HTML en un servlet. "