Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JSP/Servlet, Хочу научиться :) 
:(
    Опции темы
Hidrag
Дата 14.11.2006, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



Хочу разобраться и научиться работать с JSP и Servlet'ами.
Придумал для этого вот такую задачу:
Открывается веб страница (JSP) на ней два поля для ввода логина и пароля и кнопка.
При нажатии на кнопку JSP страница отправляет данные в сервлет, который проверяет их корректность, если данные истинны то формируется страница "Истина" если нет, то формируется страница "Ложь".

Для проверки придумал вот такой простой класс:
Код

public class PassLog {
  private static final String login = "User";
  private static final String pass = "123";

  public static boolean check(String login; String pass) {
    if (login.equals(this.login) && pass.equals(this.pass) {
      retutn true;
    }; else return false;
  }
}

А теперь вопросы:
1. Как нарисовать на странице поля для ввода и кнопку.
2. Как передать введенные данные в сервлет для обработки
3. Как в сервлете получить эти данные и после обработки отправить результат в JSP
4. Как в JSP обработать результат и на основании его вывести ту или иную страничку.



--------------------
user posted image
PM WWW ICQ   Вверх
tux
Дата 14.11.2006, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Hidrag, чтобы на твои вопросы ответить нужно целую книгу написать. Возьми какую-нибудь литературу по Servlets/JSP, почитай, попробуй написать то, что задумал. Если будут вопросы поконкретнее, спрашивай. Почитать можно обучалку с сайта Sun и наш FAQ.
PM MAIL Skype GTalk Jabber YIM   Вверх
Hidrag
Дата 14.11.2006, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



Информации по этому тонны, там много всего и все размыто...

Если можно хотябы на словах, что куда...


--------------------
user posted image
PM WWW ICQ   Вверх
tux
Дата 14.11.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(Hidrag @  14.11.2006,  13:51 Найти цитируемый пост)
1. Как нарисовать на странице поля для ввода и кнопку.

Это в раздел по HTML, используятся обычные формы.

Цитата(Hidrag @  14.11.2006,  13:51 Найти цитируемый пост)
2. Как передать введенные данные в сервлет для обработки

При нажатии на кнопку браузер сам передает данные.

Цитата(Hidrag @  14.11.2006,  13:51 Найти цитируемый пост)
3. Как в сервлете получить эти данные и после обработки отправить результат в JSP

Чтобы получить - метод getParameter() класс javax.servlet.http.HttpServletRequest. Чтобы передать результат в JSP - метод setAttribute() того же класса.

Цитата(Hidrag @  14.11.2006,  13:51 Найти цитируемый пост)
4. Как в JSP обработать результат и на основании его вывести ту или иную страничку.

Страничка, видимо, и есть JSP, не знаю уж что под этим подразумеваешь. Полученные параметры скорее надо в сервлете обрабатывать.
PM MAIL Skype GTalk Jabber YIM   Вверх
Hidrag
Дата 17.11.2006, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



На самом деле все оказалось не так сложно. Вводной информации по JSP и Servlet'ам очень много, но примеров их использования дальше  Hello World очень мало. Частично разобрался:
Вот так я вызываю из JSP страницы свой сервлет и передаю ему параметры:

Код

    <form action = MainServlet method="GET">
        <h1> <input type="text" name="Login" value="" /></h1>
        <h1> <input type="password" name="Pass" value="" /></h1>
        <h1> <input type="submit" name="but" value="Ok" /></h1> 


Мой сервлет обрабатывает данные и выводит результат в зависимости от обработки:
Код

package MyApp;

import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MainServlet extends HttpServlet {
    
    private ServletConfig config;

    public void service(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        doGet(request,response);
   }
    
    public void init(ServletConfig config) throws ServletException {
        super.init();
        this.config = config;
    }
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        String log = request.getParameter("Login");
        String pas = request.getParameter("Pass");
        Logon l = new Logon();
        boolean ans = l.Check(log,pas);
        PrintWriter out = response.getWriter();
        out.println("<title>Result</title>");
        HttpSession session = request.getSession();
        String s = session.toString();
        if (ans) {
            out.println("Ура!");
        } else out.println("Фиг вам!");
        out.close();
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    }
    
    public ServletConfig getServletConfig() {
        return config;
    }
    
    public String getServletInfo() {
        return "Short description";
    }
}


Остался такой вопрос: Как зделать чтобы мой сервлет вместо принтлайна 
Код

       if (ans) {
            out.println("Ура!");
        } else out.println("Фиг вам!");

открывал ту или иную JSP страницу и передавал ей некие параметры?


--------------------
user posted image
PM WWW ICQ   Вверх
tux
Дата 17.11.2006, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Чтобы форварднуть на страницу JSP:
Код

request.getRequestDispatcher("page.jsp").forward(request, response);

Чтобы разделять какую-то информацию в сервлетах и JSP обычно используются атрибуты:
Код

request.setAttribute("var", "Уря");

На странице, соответственно:
Код

request.getAttribute("var");

PM MAIL Skype GTalk Jabber YIM   Вверх
Hidrag
Дата 18.11.2006, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 2
Всего: 25



Цитата

Чтобы разделять какую-то информацию в сервлетах и JSP обычно используются атрибуты:код Java

        request.setAttribute("var", "Уря");


На странице, соответственно:код Java

        request.getAttribute("var")


... а можно чуть подробней об этом? С примером, хотя бы на словах, как это применять?

P.S. Спасибо за ответы!

Это сообщение отредактировал(а) Hidrag - 18.11.2006, 12:29


--------------------
user posted image
PM WWW ICQ   Вверх
tux
Дата 18.11.2006, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Сервлет:
Код

public class SampleServlet extends javax.servlet.http.HttpServlet implements
        javax.servlet.Servlet {

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        request.setAttribute("hello", "Hello, world!");
        request.getRequestDispatcher("sample.jsp").forward(request, response);
    }

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

JSP:
Код

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello</title>
</head>
<body>
    <%
    String hello = (String) request.getAttribute("hello");
    %>
    <%=hello %>
</body>
</html>

Неужели станет понятнее?
PM MAIL Skype GTalk Jabber YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.