2 / 2 / 2
Регистрация: 01.04.2012
Сообщений: 110

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

13.12.2012, 19:47. Показов 2041. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru