Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > генерирование фреймов


Автор: Bulat 7.7.2006, 11:15
Господа полдня мучает такой вопрос. Возможно ли написание web-приложений генерирующих десктопные фреймы на стороне пользователя? Если да то почему таких приложений совсем не видно(ни одного не видел), в чем минусы такого подхода? 

Автор: Alexandr87 7.7.2006, 13:48
просвятите пожайлуста, что такое Desctop ные фреймы 

Автор: Bulat 7.7.2006, 13:52
Bulat, самый обычный фрейм с компонентами, встречается при написании приложений под win smile  

Автор: MisterCleric 7.7.2006, 14:01
Где-то в доке я встречал, что Servlet-api не имеет доступа к Swing & SWT. Но твою задачу можно решить другим способом: берешь лепишь на страничку апплет размером 0х0, а в нем создаешь уже свой десктопный фрейм. Это если чисто джавовские. Но есть еще фреймы которые делают Ajax фреймворки, на пример посмотри в Dojo 

Автор: Bulat 7.7.2006, 14:35
MisterCleric, да просто мысля была дома попробовать для начала кое что набросать, типа подгружается страничка с кнопкой при нажатии которой генерируется фрейм, а не новая страница или обновление. но если действительно так:
Цитата(MisterCleric @  7.7.2006,  14:01 Найти цитируемый пост)
что Servlet-api не имеет доступа к Swing & SWT

Думаю тогда не получится. Но всеж на выходных попробую! smile 
 

Автор: last 7.7.2006, 15:17
Попробуйте использовать связку апплета и сервелета.

для отображения swing-компонент --- апплет, без апплета в браузере форму с swing-компонентами показать понятно нельзя. А на стороне сервера --- сервелет. 

Подробнее про связку апплет-сервлет:

http://www.j-nine.com/pubs/applet2servlet/Applet2Servlet.html

Я всеже думаю что формы JFrame с компонентами в сервлетах создавать можно, тк доступ есть к всему api Java2SE. А дальше --- передаем в апплет сериализацией.

Но не уверен, пробовать надо smile 



 

Автор: Vofka 7.7.2006, 16:01
Я тоже делал через связку апплет+сервлет.В аплете рисуешь что тебе надо а в сервлет используешь для обработки.связь можно организовать по разному.Самое простое посылать запрос к сервлету типа  

Код

        try {
            String urlstr = 
                Servleturl + "?stdate=" + stdate + "&ltdate=" + ltdate + 
                "&list=" + lst;
            URL url = new URL(urlstr);
            URLConnection urlConn = url.openConnection();
            BufferedInputStream bf = 
                new BufferedInputStream((InputStream)urlConn.getInputStream());
            ByteArrayOutputStream bas = new ByteArrayOutputStream();
            int bit;
            while ((bit = bf.read()) != -1) {
                bas.write(bit);
            }
            String info = new String(bas.toString("windows-1251"));

получать ответ и отображать в апплете в каком угодно компоненте. 

Автор: Bulat 7.7.2006, 16:43
Ну я хотел бы разобрать это в более глобальном варианте ибо есть некоторые мыслишки 

Автор: Vofka 10.7.2006, 10:08
А что имеешь ввиду под более глобальным вариантом?И какие мыслишки? 

Автор: Bulat 10.7.2006, 10:18
Vofka, ну допустим генерировать и обрабатывать запросы не в jsp(и тому подобное), а в фрейме, который уменьшал бы объем потребляемых ресурсов сервера. Проще говоря, одна main страница, а далее все через фреймы и диалоги. 

В разделе J2EE есть еще одна моя подобная тема. 

Автор: tux 10.7.2006, 11:15
Посмотрел я твою тему в J2EE и не понял а зачем ты пытаешься на сервере запустить свинговый фрейм? Кто с ним будет работать? Администратор? Если тебе нужно чтобы клиент работал "с фреймами и диалогами" ©, то посмотри в сторону апплетов, если же у тебя все работает на одной машине, то не понятно зачем ты вообще связался с сервлетами и JSP, может было бы написать просто свинговое или swt-приложение. 

Автор: Bulat 10.7.2006, 11:27
Цитата(tux @  10.7.2006,  11:15 Найти цитируемый пост)
Если тебе нужно чтобы клиент работал "с фреймами и диалогами" 

Ты б знал, хто у нас в офисе сидит с программистским образованием, ты б заплакал smile . Можно написать и свинговое, но его нужно будет устанавливать на все компы, а через сервлет будет отпадать эта необходимость, правда если не возникнут еще какие-то ньюансы. Вот хотелось-бы и узнать про эти ньюансы?

Для админа естественно нет такой необходимости. smile 
 

Автор: tux 10.7.2006, 11:59
Цитата(Bulat @  10.7.2006,  16:27 Найти цитируемый пост)
Ты б знал, хто у нас в офисе сидит с программистским образованием, ты б заплакал

Ты бы видел каких инженеров-программистов наш вуз выпускает (я в вузе работаю), ты бы потерял веру в человеческий разум.

Цитата(Bulat @  10.7.2006,  16:27 Найти цитируемый пост)
Можно написать и свинговое, но его нужно будет устанавливать на все компы, а через сервлет будет отпадать эта необходимость, правда если не возникнут еще какие-то ньюансы. Вот хотелось-бы и узнать про эти ньюансы?

Вот как раз нюанс заключается в том, что сервлет работает на сервере и запустить из него свинговое приложение на клиентской машине не получится сколько не пытайся. Если тебе нужны полноценные gui-клиенты на клиентских машинах, но загружающиеся из веб, то апплеты - единственный выход. Там ты можешь и фреймы и диалоги использовать. Ну или продолжай разрабатывать веб-приложение с JSP/сервлетами. 

Автор: Bulat 10.7.2006, 14:13
Цитата(tux @  10.7.2006,  11:59 Найти цитируемый пост)
Если тебе нужны полноценные gui-клиенты на клиентских машинах, но загружающиеся из веб, то апплеты - единственный выход. Там ты можешь и фреймы и диалоги использовать. 


Через апплеты еще не работал.... 
Тут накопал в книжке небольшой примерчик:
Код

<applet name = "AnApplet" code = "AnApplet.class"
    archive = "anapplet.zip, myclasses.zip"
    codebase = "http://www.some.com/public/applets"
    width = "300" heght = "200" align="TOP"
    vspace = "5" hspace = "5" mayscript
    alt = "If you have....">
<hr> If your browser...<hr>
</applet>


Но если мои скрипты лежат на сервере, а апплет должен загрузиться на компьютере клиента, то где же хосты, порт? И т.п. Нечто близкое к этому codebase = "http://www.some.com/public/applets" из него что-ли надо что-то сотворить?

For модераторы, следующий вопрос буду писать конкретно в разделе апплеты smile  

Автор: LSD 10.7.2006, 21:46
Тег archive указывает на имя jar файла с апплетом, искать его браузер будет по адресу указанному в codebase. Апплет будет скачан и запущен браузером. 

Автор: Vofka 11.7.2006, 10:40
Сodebase не обязательно задавать если апплет находится там же где и сама хтмл страница.И не обзязательно писать урл в Сodebase. 

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