Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/27: Рейтинг темы: голосов - 27, средняя оценка - 4.85
5 / 5 / 2
Регистрация: 12.11.2011
Сообщений: 70

Запись в базу данных JSP + сервелет

23.03.2012, 18:28. Показов 5100. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый уважаемые форумчане!
Возникла следующая проблема при записи в базу My SQL: при заполнении полей в db.jsp страничке по кнопке submit данные отсылаются сервелету DBserv. Он эти данные записывает в базу MySQl и возвращает обратно на страничку db.jsp. Все хорошо, однако... при обновлении браузера запись в базу записывается повторно! Как это можно обойти?

Привожу код jsp странички:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.sql.*,servlet.ConnectionManeger"%>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
 
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><fmt:message key="title.dbPage" /></title>
    </head>
    <body>
        <h1><fmt:message key="label.dbWellcome" /></h1>
        
 <form action="DBserv" method="POST">
        <table border="0">
            <tbody>
                <tr>
                    <td> <b><fmt:message key="label.firstName" /></b></td>
                    <td> <input type="text" name="firstName"  size="20" /><br></td>
                </tr>
                <tr>
                    <td><b><fmt:message key="label.lastName" /></b></td>
                    <td>  <input type="text" name="lastName"  size="20" /></td>
                </tr>
                <tr>
                    <td><b><fmt:message key="label.sex" /></b></td>
                    <td>  <select name="sex">
                            <option>Man</option>
                            <option>Woman</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>  <input type="submit" value= <fmt:message key="button.submit" /> /></td>
                    <td>  <a href="Controller"><input type="button" value=<fmt:message key="button.back" /> /></a> </td>
                </tr>
         
        </table>        
        </form>
              
    </body>
</html>
И код сервелета DBserv на который ссылается моя db.JSP страничка:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package servlet;
 
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import security.Users;
import java.sql.*;
import javax.servlet.RequestDispatcher;
 
public class DBserv extends HttpServlet {
 
    private Statement stmt = null;
    private ResultSet rs = null;
    private Connection connect=null;
 
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }
 
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
 
        String firstName = request.getParameter("firstName");
        String lastName = request.getParameter("lastName");
        String sex = request.getParameter("sex");
        String sqlQuery = "INSERT INTO  infotable (name, lastName, sex) "
                + "VALUES ('"+firstName+"','"+ lastName+"','"+ sex+"')";
 
        ConnectionManeger manager = new ConnectionManeger("config\\config.properties");
         connect = manager.getConnect();
        sqlExecute(connect, sqlQuery);
        
        RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/db.jsp");
        dispatcher.forward(request, response);
        
    
        
 
    }
 
    @Override
    public String getServletInfo() {
        return "DBserv";
    }
 
    public void sqlExecute(Connection conn, String sql) {
        try {
            stmt = conn.createStatement();
            stmt.executeUpdate(sql);
        } catch (Exception e) {
           
        } finally {
            try {
                stmt.close();
                conn.close();
            } catch (SQLException sqle) {
                sqle.printStackTrace();
            }
        }
    }
    
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.03.2012, 18:28
Ответы с готовыми решениями:

Как отправить в базу картинку из .jsp формы в Spring
Необходимо записать в базу картинку и затем при извлечении ее с базы правильно отобразить на .jsp Все делается в Spring. 1. Из всяких...

Запись в файл на сервере из jsp
Здравствуйте! Имеется проблемка - нужно из формы в .jsp создавать и писать в текстовый файл на сервере. Код такой: в jsp: .... ...

Как отобразить нужную запись из БД по id на странице JSP? (Spring MVC + Hibernate)
Уже созданы все сервисы, дао, модели и .т.д всё работает, помогите разобраться, как мне передать параметры с JSP страницы и обработать в...

5
142 / 105 / 16
Регистрация: 21.04.2011
Сообщений: 402
23.03.2012, 19:14
http://ru.wikipedia.org/wiki/Post/Redirect/Get
0
5 / 5 / 2
Регистрация: 12.11.2011
Сообщений: 70
23.03.2012, 22:18  [ТС]
Нужно чтобы после записи из сервелета DBServ вернутся обратно на страницу db.jsp из каторой отправлял данные. Подразумеваю это можно сделать через редирект промежуточной страницы, но может есть еще какой нибудь способ?
0
142 / 105 / 16
Регистрация: 21.04.2011
Сообщений: 402
23.03.2012, 22:26
вы делаете форвард. из поста. Лучше сделать редирект
0
2 / 2 / 1
Регистрация: 21.07.2015
Сообщений: 39
19.08.2015, 10:03
Dmitry Andreev, у вас получилось сделать?
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
19.08.2015, 11:19
Dmitry Andreev, после добавление записи переходите редиректом, думаю поможет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.08.2015, 11:19
Помогаю со студенческими работами здесь

Запись данных в базу данных mdb с использованием DataAdapter и DataSet
Попробовал сделать Update для таблицы контактов: private void Form1_Load(object sender, EventArgs e) { OleDbConnection...

Запись данных в базу данных SQL и выгрузка таблицы в форму
Нужно сделать 2 формы, одну с несколькими textBox'ами, чтобы при нажатии кнопки информация введённая в них, записывалась в Базу данных, и...

Где ошибка? (Запись данных из массива в базу данных mysql)
Массив, генерирующий данные: $data = array(); for($i = 0; $i &lt; 100; $i++){ $data = array( 'name' ...

Запись в базу данных из форм; экспорт базы данных
Существует html - сайт с формами. Типа: &lt;p&gt;Номер договора: &lt;input type=&quot;text&quot; name=&quot;contract number&quot; value=&quot;&quot;...

Как ускорить запись данных в базу данных?
Добрый день. Есть следующий тестовый код: class MyClass { public int a; public int b; public int c; } void main()


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru