Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 568
Записей в блоге: 1

Передача данных между сервлетами и xsl

18.09.2014, 07:54. Показов 2327. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Передача данных между сервлетами и xsl оформление.
как я могу передавать данные типа boolean имя и фамилие
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.09.2014, 07:54
Ответы с готовыми решениями:

Передача данных между классами
Делаю Telegram-бота, который будет пересылать построчно логи из файла построчно. Что есть? Код бота, в частности метод, обрабатывающий...

SQL->XML->XSL - как построить такую XSL для таблицы?
вот выгреб из БД я нечто такое: +-------+-------------+------------+ | title | buildnumber | teststatus | ...

Передача данных между java приложениями при плохом соединении. Посоветуйте технологии
Есть сервер и некоторое количество клиентов. Сервер в зависимости от ситуации будет отправлять сигналы, данные клиентам. Клиент...

14
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
18.09.2014, 12:18
ELDQS, про какой XSL вообще речь? Что вы подразумеваете под этим термином?
И непонятно, как оно связано с сервлетами
0
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 568
Записей в блоге: 1
18.09.2014, 17:43  [ТС]
Есть проект надо его доделать и там есть сервлеты и xsl часть, не знаю как точно они работают
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
18.09.2014, 19:43
ELDQS, и вы хотите, чтобы мы посмотрели на свой магический стеклянный шар, чтобы понять, как ваш проект работает?)
1
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 568
Записей в блоге: 1
19.09.2014, 06:35  [ТС]
Цитата Сообщение от turbanoff Посмотреть сообщение
ELDQS, и вы хотите, чтобы мы посмотрели на свой магический стеклянный шар, чтобы понять, как ваш проект работает?)
кто то может разбирается в этом и встречался с таким, вот к ним и обращаюсь.

а код вот такой
XML
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
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                version="1.0" xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
                exclude-result-prefixes="i18n">
 
    <xsl:template name="template">
        <form action="/login" method="post">
 
            <table>
                <div class="container-fix">
                    <div class="content-header">
                        <h1>Вход в панель администратора</h1>
                    </div>
                </div>
                <tr>
                    <td><i18n:text>Логин</i18n:text></td>
                    <td>
                        <input typ="text" size="15" maxlength="15" name="name" placeholder="Логин">
                            <xsl:attribute name="value">
                                <xsl:value-of select="//source/@name" />
                            </xsl:attribute>
                        </input>
                    </td>
                </tr>
                <tr>
                    <td><i18n:text>Password</i18n:text></td>
                    <td>
                        <input type="text" size="15" maxlength="15" name="password" placeholder="**********">
                            <xsl:attribute name="value">
                                <xsl:value-of select="//source/@password" />
                            </xsl:attribute>
                        </input>
                    </td>
                </tr>
 
                <td>
                    <input type="submit" value="Войти" i18n:attr="value" />
                </td>
                <p class="jsRequiredTip">Пожалуйста, заполните ваш логин и пароль</p>
 
 
            </table>
            <a href="/passwrep"> <i18n:text>Забыли пароль?</i18n:text> </a>
 
        </form>
    </xsl:template>
    <xsl:template match="page">
        <xsl:call-template name="template">
            <xsl:with-param name="active">session</xsl:with-param>
        </xsl:call-template>
    </xsl:template>
</xsl:stylesheet>
и часть сервлета связанная с ним

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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package servlet.admin;
 
import db.DB1;
 
import hash.Hash;
import include.ActionTime;
import org.dom4j.Document;
import org.dom4j.Element;
import xslout.XslXmlTransformer;
 
import org.dom4j.DocumentHelper;
 
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.LinkedList;
 
public class Login extends HttpServlet {
 
    protected Connection conn = null;
    protected Statement stmt = null;
    protected ResultSet rs = null;
 
    protected PrintWriter out;
    protected String template = null;
    protected Document pageXml = null;
    protected LinkedList<String> errorList = null;
 
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html; charset=UTF-8");
        out = response.getWriter();
        pageXml = DocumentHelper.createDocument();
        pageXml.addElement("page");
        errorList = new LinkedList<String>();
        Element source = pageXml.getRootElement().addElement("source");
 
        try {
            template = "login.xsl";
//            ActionTime actionTime = ActionTime.getInstance();
            HttpSession session = request.getSession();
            Cookie[] cookies = request.getCookies();
            String cookiename = "";
            for (Cookie cookie : cookies) {
                if((cookie.getName()).equals("name")){
                    cookiename =  String.valueOf(cookie.getValue());
                    break;
                }
            }
            source.addAttribute("name", cookiename);
 
            String name = request.getParameter("name");
            String password = request.getParameter("password");
            ResultSet rs = null ;
            conn = DB1.getConnection();
            stmt = conn.createStatement();
 
            try {
                if(template != null)
                    XslXmlTransformer.getInstance(response, session, "admin").writeHtml(pageXml, template);
            }
            catch (Exception er){
                out.println("Exception1 (Template): " + er + "<br/>");
            }
            //Проверка пароля на предмет sql Инъеккций
            if(name != null && name.matches("[a-zA-Z0-9]+") && password.matches("[a-zA-Z0-9]+")) {
                //Хэширование пароля
                password = Hash.hashing(password);
                System.out.println(password);
                //Проверка в БД
                rs = stmt.executeQuery("SELECT * FROM DMIN WHERE LOGIN = '" + name + "' and PASSWORD = '" + password + "'");
            }
// Если в БД нашелся логин и пароль
            if(rs != null && rs.next()) {
                out.print(password + " " + name);
                // Добавить в куки пользователя время и имя под которым он авторизовался
                Cookie cookietime = new Cookie("timelogon", String.valueOf(new Date().getTime()));
                response.addCookie(cookietime);
                Cookie nameCook = new Cookie("name", name);
                response.addCookie(nameCook);
                //Перевод в админку
                response.sendRedirect("/admin");
            }
 
        } catch (Exception ex) {
            out.println(ex + " OWIBKA");
        }         finally
        {
            try
            {
                if(rs != null) rs.close();
                if(stmt != null) stmt.close();
                if(conn != null) DB1.freeConnection(conn);
            }
            catch (SQLException sqle)
            {
                out.println("SQLException (Template): " + sqle + "<br/>");
            }
            out.flush();
            out.close();
        }
 
    }
 
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}
как они вообще работают и обмениваются данными
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
19.09.2014, 11:22
Обычный сервлет.
Принимает два http параметра name и password и проверяет есть ли они в базе.
если есть - устанавливает куки, и переправляет в админку.

Как там участвует xlst не понятно. XslXmlTransformer это похоже какой-то самописный класс, без его исходников точно не сказать.

PS. Код ужасный
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
19.09.2014, 13:30
turbanoff, недумаю что это самописный класс. XSL трансформаторы используются для трансформации xml в xhtml. Работает примерно по такому же принципу что jsp. Вот небольшой пример
http://www.w3schools.com/xsl/x... mation.asp
Примерно то же происходит и в этом коде.
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
19.09.2014, 14:17
KEKCoGEN, гугл по запросу "xslout.XslXmlTransformer" ничего не находит. 100% самописный
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
19.09.2014, 15:23
turbanoff, полагаю это обертка под стандартный xslt трансформер, хотя судя по приведенному коду можно ожидать чего угодно.
0
22.09.2014, 20:05

Не по теме:

Цитата Сообщение от turbanoff Посмотреть сообщение
Код ужасный
Почему?/

0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
22.09.2014, 20:22
MLPMan,
Зачем все переменные вынесены в поля?
Если сервлет запустится одновременно параллельно - всё сломается.

Какая-то глупая проверка логина/пароля. Вместо того чтобы сделать нормальный PreparedStatement текст запроса генерируется вручную.

Java
1
out.println(ex + " OWIBKA");
OWIBKA

Куча бредовых провек. На !=null, например, хотя переменная никогда не может быть null.
Что будет в случае ошибки - остается только гадать. Во всех условиях else ветка пропущена.
0
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 568
Записей в блоге: 1
23.09.2014, 11:19  [ТС]
Цитата Сообщение от turbanoff Посмотреть сообщение
OWIBKA
Куча бредовых провек. На !=null, например, хотя переменная никогда не может быть null.
Что будет в случае ошибки - остается только гадать. Во всех условиях else ветка пропущена.
это тестовый был,
а почему у меня тогда каждый раз вылетает ошибка NullPointerException, вот поэтому пришлось поставить эту проверку
получается что когда страница открывается она уже сразу проверяет есть ли в этих переменных какие то значения,
как я могу сделать так чтобы она не проверяла при открытии а только после ввода данных, и нажатия кнопки отправить,
а сейчас она дважды проверяет при открытии и при вводе и отправке данных
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
23.09.2014, 12:01
ELDQS, это странно. Зачем у вас вызывается этот сервлет при открытии?
0
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 568
Записей в блоге: 1
24.09.2014, 10:46  [ТС]
Я тоже хочу знать, почему так
Может кто-то объяснит
0
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 568
Записей в блоге: 1
26.09.2014, 12:36  [ТС]
Цитата Сообщение от turbanoff Посмотреть сообщение
LDQS, это странно. Зачем у вас вызывается этот сервлет при открытии?
у меня там два метода, doget и dopost
правда у меня одна ссылается на другую и по сути у меня только один рабочий метод.
Java
1
2
3
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
вообще в чем разница между get и post.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.09.2014, 12:36
Помогаю со студенческими работами здесь

Работа с Сервлетами
Подскажите пожалуйста, очень нужна помощь в завершении проекта... Вызвалась написать заданный проект на Java с использованием Tomcat,...

Передача ссылки в конструктор (передача данных между формами)
Из темы &quot;Ответы на 7 самых частых вопроса по WinForms&quot; Реализовал метод № 2.3 без проблем, а вот 2.4 не получается( вот текст из той...

Динамическая передача параметров в XSL
Мoгули я динaмически передaть пaрaметры в XSL? Нaпример: &lt;xsl:if test='WINNERNAME'&gt; X мне нaдo пoлучитъ с HTML стрaницы.

Передача данных между страницами
В результате исполнения SQL запроса получаем набор данных. Часть этих данных сразу выводится на страницу, и, глядя на эти данные,...

Передача данных между окнами
Есть два окна Window1 и Window2. В Window2 производятся вычисления в результате которых имеем текстовую строку. После окончания вычислений...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru