Как перенести данные из 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);

Читайте также:


Ну, есть много учебных пособий по базе данных онлайн для 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");
 }

}