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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Голый JSP без доп.файлов Как? 
:(
    Опции темы
Nymph666
  Дата 28.2.2013, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем доброго времени!
Столкнулась с такой задачей: нужно создать JSP страничку, которая затем копируется в задеплоенное приложение на сервер.
То есть вся логика на Java должна быть в JSP, без каких-либо дополнительных файлов.
У меня есть работающее задеплоенное приложение и уже готовый сервлет:
Код

public class SQLServiceImpl extends RemoteServiceServlet implements SQLService {
    private final static String user = "n";
    private final static String password = хххх";
    private final static String httpURI = "http://хххххххх";
    private final static String iiopURI = "iiop://хххххх";
    private final static String objectStoreName= "OS1";
    @Override
    public List<String> getQuery(String sqlQuery) {
        String url = iiopURI;
        return search(user,password, url, objectStoreName, sqlQuery);
    }

    private static List<String> search(String user,String password, String url, String objectStoreName, String sqlQuery) {
        String port = url.substring(0,4);
        Connection connection;
        if (port.equalsIgnoreCase("iiop")
        {
              connection = Factory.Connection.getConnection(url);
//            Subject subject = UserContext.createSubject(connection, user, password, stanza);
//            com.filenet.api.util.UserContext uc = com.filenet.api.util.UserContext.get();
//            uc.pushSubject(subject);
        }
        else
        {
            connection = Factory.Connection.getConnection(url);
            com.filenet.api.util.UserContext uc = com.filenet.api.util.UserContext.get();
            uc.pushSubject(com.filenet.api.util.UserContext.createSubject(connection, user, password, null));
        }
        Domain domain = Factory.Domain.getInstance(connection, null);

        try {
            ObjectStore objectStore = Factory.ObjectStore.getInstance(domain, objectStoreName);
           // String sql = "Select * from Document";
            SearchSQL sqlObject = new SearchSQL(sqlQuery);
            SearchScope searchScope = new SearchScope(objectStore);
            IndependentObjectSet independentObjectSet = searchScope.fetchObjects(sqlObject, null, null, true);
            Iterator iterator = independentObjectSet.iterator();
            List<String> objectsNames = new LinkedList<String>();
            while (iterator.hasNext()) {

                objectsNames.add(iterator.next().toString());
            }
            return objectsNames;
           } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
        return null;


И вот этот сервлет нужно засунуть в JSP.
Самый главный вопрос: Как?
Ибо просто копирование в теги <% %> не работает.

Это сообщение отредактировал(а) Nymph666 - 28.2.2013, 15:59
PM MAIL   Вверх
mbasil
Дата 1.3.2013, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 9
Всего: 13



Один из вариантов (не самый лучший)
Код

<%
     RequestDispatcher rd = sCtx.getRequestDispatcher( "URL_servlet_address" );
     if( rd != null ) { 
         try { 
               rd.include( request, response );
        } catch( Exception e ) {
             out.println( e.getMessage() );
        }
     }
%>


Еще два варианта:

Код
<jsp:include page="{ относительный URL | <%= выражение %> }" flush=" true" />


Директива include включение в исходный JSP файл текстового файла или кода

Код
<%@ include file="относительный URL" %>



Это сообщение отредактировал(а) mbasil - 1.3.2013, 00:48
PM MAIL   Вверх
Nymph666
  Дата 1.3.2013, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В общем тему можно закрывать, задача решена!
Для тех, кто вдруг столкнется с подобной задачей:
советы: не забывать про импорт библиотек. 
А импортируются они так: 
<%@ page import="java.util.*"%>

Ну и потом любой код вы можете писать в тегах <% %>
В частности приведу код вывода объектов в textArea
Код
Iterator iterator = independentObjectSet.iterator();
Integer num = 0;
 while (iterator.hasNext()) {                        
%>
<html>
<body>
<br> Object<%=num+1%>:<br>
<TEXTAREA NAME="result" ROWS=6 COLS=100>  <%=(iterator.next().toString())%> </TEXTAREA>

<% num++;}%>
</body>
</html>

PM MAIL   Вверх
mbasil
Дата 1.3.2013, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 9
Всего: 13



Сегодня "писать в тегах <% %>", то есть использовать  скриптлеты - плохая практика и плохой совет.
PM MAIL   Вверх
AugMaster
Дата 26.3.2013, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

Репутация: нет
Всего: 1



Цитата

Сегодня "писать в тегах <% %>", то есть использовать  скриптлеты - плохая практика и плохой совет.

оффтопный вопрос - имеется ввиду любая комбинация ? то есть

Код

<%@ page import="java.util.*"%>
<input type="hidden" name="URLURL"  value = <%=(String)request.getHeader("Referer") %> />

тоже плохая практика ? я сам новичок
PM MAIL   Вверх
Farmazon
Дата 20.4.2013, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Разработчик
**


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

Репутация: 3
Всего: 5



Сейчас тебе понасоветуют... 

Есть концепция MVC, гласящая, что jsp - это только слой отображения(V), в нём не должно быть логики контроллеров (потому библиотек тагов выше крыши и нефиг сервлетные вставки делать). 

Когда одна страничка = всё приложение, разделять контроллер/вьюху/модель нет смысла... Или если ты не хочешь чтоб нужно было передеплоивать приложение, тоже есть смысл оформить в иде одной странички всё. В конце концов, даже контролллер можно закодировать в той же страничке аккуратно(в саммом начале странички), чтоб это не привело к сильному смешению слоёв.... Короче, отталкивайся от требований и думай. Карго-культ не нужен.

Это же какк холивор, размещать ли css внутри html файлов...

Добавлено @ 22:30
<%@ page import="java.util.*"%> с библиотеками тагов не требуется...
за сервлетный код считаются вставки <% java-code %> и <%=java-expr%>

Это сообщение отредактировал(а) Farmazon - 20.4.2013, 22:32


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

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

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


 




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


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

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