Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Подскажите как выполнить задачу


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

Код

<%-- 
    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>


Код

<%-- 
    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>


Код

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();
        }
    }
}


Я не могу вывести значение ссылки и текст на экран.

Автор: AntonSaburov 26.9.2012, 13:11
Честно говоря не совсем понятно - а как такое вообще в голову пришло ? Конструкция мягко говоря корявая и совсем непонятная - зачем так делать ? От того, что ты вызывал forward не значит, что сервлет вдруг остановится и будет ждать ввода данных со другой JSP.
Может надо лучше про HTTP прочитать ? Про сервлеты и JSP тоже явно надо.

Автор: di109 26.9.2012, 14:20
Я начинающий поэтому только такое вот и пришло и не чего из этого не вышло в итоге. Вот решил здесь счастье попытать, вдруг может кому то в голову перейдет правильное решение.

Автор: AntonSaburov 26.9.2012, 15:51
Цитата(di109 @  26.9.2012,  14:20 Найти цитируемый пост)
вдруг может кому то в голову перейдет правильное решение.

Хотелось бы понять правильное решение какой именно задачи ? Что хочется сделать ?

Автор: di109 26.9.2012, 16:21
Очень хотелось бы получить:
1. Значение ссылки
2. Текст из текстового поля
(причем ссылка и текстовое поле должны находиться в разных jsp )
3. И отобразить их в сервлете или просто пусть будут там, в дальнейшем я помещу эти значения в качестве параметров в метод который работает с БД. 

Автор: di109 26.9.2012, 17:20
На самом деле эта задача только на первый взгляд кажется простая в действительности это далеко не так.  

Автор: di109 26.9.2012, 21:09
Ура! Решение! Сделайте 2 сервлета, обрабатывающий запросы от index, другой от update.
Значения ссылки и поля кладите в сессию. Когда надо отобразить - из сессии достанете все ваши значения.

Автор: AntonSaburov 26.9.2012, 21:58
Так надо было сформулировать корректно.
Хочу, чтобы пользователю сначала отобразилась одна страница, где он нажа на ссылку. А после нажатия на ссылку надо отобразить вторую страницу, где заполнить текстовое поле. И потом уже получить все данные с первой и второй страницы в сервлете.
Тогда было бы самому понятнее и другим проще.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)