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

Сессия в сервлете)

13.12.2012, 19:47. Показов 2009. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть servlet и два файла jsp - (например) UpdateServlet.java, index.jsp и update.jsp.
index.jsp - содержит ссылку с значением 1, (например) <a href='UpdateServlet?update=1'>Правка</a>
update.jsp - содержит поле для ввода текста и кнопку для отправки текста сервлету.
UpdateServlet.java - должен принять значение ссылки и текст из текстового поля затем вывести их на экран.

То есть пользователю сначала отображается одна страница, где он нажимает на ссылку. А после нажатия на ссылку отображается вторая страница, где надо заполнить текстовое поле. И потом уже получить все данные(это значение ссылки и текст из текстового поля) с первой и второй страницы в сервлете.

index.jsp
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%-- 
    Document   : index
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>UPDATE</title>
    </head>
    <body bgcolor="D2E4E1">
    <a href='UpdateServlet?update=1'>Правка1</a>
    <br>
    <a href='UpdateServlet?update=2'>Правка2</a>
    <br>
    <a href='UpdateServlet?update=3'>Правка3</a>
    </body>
</html>
update.jsp
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%-- 
    Document   : update
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body bgcolor="D2E4E1">
    <FORM NAME="update_form" ACTION="UpdateServlet" METHOD="GET">   
    <center>
        <textarea rows="9" name="messageText" cols="64" wrap="ON"></textarea>
          <p><input type="submit" value=" OK " name="btnSend"></p>
    </center>    
   </FORM>
    </body>
</html>
UpdateServlet.java
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
package controller;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
 *
 * @author 
 */
public class UpdateServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String parUpdate = null;
        String temp = null;
        String parId = request.getParameter("update");
            HttpSession session = request.getSession(true);
            session.setAttribute("update", parId);
            String value = (String)session.getAttribute("update");
            temp = value;
           RequestDispatcher dispatcher = request.getRequestDispatcher("/update.jsp");           
           if (session != null) {
           dispatcher.forward(request, response);
           parUpdate = request.getParameter("messageText");
           }    
           System.out.println("Значение ссылки: "+value);
           System.out.println("Текст: "+parUpdate);
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            out.println("<html>");
            out.println("<head>");
            out.println("<title>www</title>");
            out.println("</head>");
            out.println("<body>");
            
            out.println("<h1>Значение ссылки: "+value+"</h1>");
            out.println("<h1>Текст: "+parUpdate+"</h1>");
            
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }
}
Можно решить так, Сделайте 2 сервлета, обрабатывающий запросы от index, другой от update.
Значения ссылки и поля кладите в сессию. Когда надо отобразить - из сессии достанете все ваши значения.

Но проблема в том что сервлет в моем случае должен быть только один.
Подскажите как решить эту задачу, используя один сервлет и может ли помочь в решение Паттерн Front Controller.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.12.2012, 19:47
Ответы с готовыми решениями:

Навигация в сервлете
Привет,вот решил создать новую тему(один вопрос -одна тема)).Никак не пойму в консоль томката результаты выводятся,а в сервлете нет,что...

GUI в Сервлете
Всем привет. В книге немного написано о сервлетах.... Там через PrintWriter выводят HTML код. У меня такой вопрос. Можно ли...

Ошибка в сервлете
создал сервлет и в етой строке javax.servlet.http.HttpServlet кода подчеркивает слово SERVLET пишет Cannot resolve symbol servlet. а...

2
 Аватар для kmi
55 / 55 / 14
Регистрация: 26.04.2010
Сообщений: 177
14.12.2012, 17:33
А зачем Вам три сервлета? Ведь jsp тоже преобразуются в сервлеты, только неявно...
Я бы решил эту задачку на одной странице, используя динамических обмен данными (ajax) между браузером и сервлетом (либо jsp).
Но, видимо, задачка несколько шире, чем описано, или нет?
0
2 / 2 / 2
Регистрация: 01.04.2012
Сообщений: 110
14.12.2012, 20:13  [ТС]
Вроде сам разобрался, Паттерн Front Controller помог. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.12.2012, 20:13
Помогаю со студенческими работами здесь

отслеживание авторизации в сервлете
в технологии сервлета есть возможность узнать узера который вызвал сервлет request.getRemoteUser() авторизация у меня проводитса...

Обработка исключений в сервлете
Есть JSP с несколькими полями, одним из котрых является дата. Имеется проверка корректности даты на стороне клиента, и сейчас делаю...

Проблема с кодировкой в сервлете
Господа! Подскажите начинющему разработчику. Написал небольшой сервлет по редактированию значений полей в таблице Oracle. При вводе англ....

Синхронизация responce в сервлете
Всем привет! Имею сервлет. Когда тестил на страницах, содержащих одно обращение к сервлету - типа get или post в форме или через...

Lazy loading в сервлете
Добрый день, у меня веб-приложение на spring + hibernate, есть связки one-to-many и many-to-one, ранее столкнулся с проблемой ленивой...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru