Как перенести данные из JSP в сервлет при отправке HTML-формы
У меня есть страница JSP с 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>
Как получить эти данные в сервлет, и добавить их в базу данных?
4 ответов
создать класс, который расширяет HttpServlet
и поставить @WebServlet
аннотация на нем, содержащая желаемый URL-адрес, который должен прослушивать сервлет.
@WebServlet("/yourServletURL")
public class YourServlet extends HttpServlet {}
и пусть <form action>
точка к этому URL. Я бы тоже рекомендую использовать метод POST для неидемпотентных запросов. Вы должны убедиться, что вы указали name
атрибут полей ввода HTML-формы (<input>
, <select>
, <textarea>
и <button>
). Это представляет имя параметра HTTP-запроса. Наконец, Вам также нужно убедиться, что поля ввода, представляющие интерес, заключены внутри желаемой формы и, следовательно, не снаружи.
вот несколько примеров различных поля ввода 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>
создать doPost()
метод в вашем сервлете, который захватывает представленные входные значения в качестве параметров запроса, управляемых полем ввода name
(не id
!). Вы может использовать request.getParameter()
чтобы получить отправленное значение из полей с одним значением и request.getParameterValues()
для получения отправленных значений из многозначных полей.
@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;
// ...
}
сделать при необходимости некоторые проверка и, наконец, сохранить его в БД обычным JDBC/Дао путь.
User user = new User(name, pass, roles);
userDAO.save(user);
Читайте также:
- HTML учебник для начинающих
- наши сервлеты wiki страница
- догет и допост в Сервлетах
- как вызвать конкретный метод Java при нажатии / отправке события конкретной кнопки в JSP?
- Как выполнить проверку и отобразить сообщение об ошибке в той же форме в JSP?
- как я могу сохранить значения полей формы HTML в JSP после отправки формы в сервлет?
- как загрузить файлы на сервер с помощью JSP/сервлетов?
- показать набор результатов JDBC в HTML на странице JSP с помощью шаблона MVC и DAO
- Servlet возвращает "HTTP Status 404 запрошенный ресурс (/servlet) недоступен"
Ну, есть много учебных пособий по базе данных онлайн для java (то, что вы ищете, называется JDBC). Но если вы используете простые сервлеты, у вас будет класс, который расширяет HttpServlet
и внутри него у вас будет два метода, которые выглядят как
public void doPost(HttpServletRequest req, HttpServletResponse resp){
}
и
public void doGet(HttpServletRequest req, HttpServletResponse resp){
}
один из них называется обрабатывать GET
операции, а другой используется для обработки POST
операции. Затем вы будете использовать HttpServletRequest
объект для получения параметров, которые были переданы как часть из формы вроде так:
String name = req.getParameter("name");
затем, как только у вас есть данные из формы, относительно легко добавить его в базу данных с помощью учебника JDBC, который широко доступен в интернете. Я также предлагаю поиск базового учебника Java servlet, чтобы вы начали. Это очень просто, хотя есть ряд шагов, которые необходимо настроить правильно.
http://oreilly.com/catalog/javacook/chapter/ch18.html
найти :
"вы хотите обработать данные из HTML-формы в сервлете. "
сначала создайте файл jsp :
и напишите текстовое поле, которое вы хотите
например:
после этого создайте свой сервлет класс:
public class test{
protected void doGet(paramter , paramter){
String name = request.getparameter("name");
}
}