powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JSP + ( android & iOS)
15 сообщений из 15, страница 1 из 1
JSP + ( android & iOS)
    #38842165
dimchuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет) - извените за мой руский.
Помогите пожалуйста с такой ситуацией.
Задача у меня следующая:
написать "серверную" часть на яве (jsp + mysql). это моя часть работы.
клиентская часть пишут на android и iOS. - не я пишу - они зависят от меня, чтоб знать что и как передавать - сам незнаю как правельно.

Проблема у меня следующая:
Если я правильно понимаю, чтоб связать эти платформы между собой через веб, лучше работать c "httpservletresponse httpservletrequest" через POST-метод!?. Мне нужно чтоб "мобила" просто отправила некоторые даные и в ответ масив значений.

вариант:
Код: java
1.
2.
3.
4.
<% PrintWriter pw = response.getWriter();
        pw.print("значение 1");
        pw.print("значение 2");
        %>



Подскажите что и как правельно это нужно делать.
Спасибо за внимание ...
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38842337
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimchukПодскажите что и как правельно это нужно делать.
Спасибо за внимание ...

Предлагаю смотреть в сторону spring boot



Ваша задача будет решаться след.образом :

1) либо вы используете restcontroller + spring data repository и конечный ваш продукт будет json api ,
Ваш контроллер будет отдавать вашим приложениям данные в виде json объектов на их запросы

конкретный пример

https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-data-rest

еще документация

http://docs.spring.io/spring-data/jpa/docs/1.5.x/reference/html/repositories.html


либо вариант Вашего API через websocket

https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-websocket-jetty

Выбор за вами .
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38842650
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimchukВсем привет) - извените за мой руский.
Помогите пожалуйста с такой ситуацией.
Задача у меня следующая:
написать "серверную" часть на яве (jsp + mysql). это моя часть работы.
клиентская часть пишут на android и iOS. - не я пишу - они зависят от меня, чтоб знать что и как передавать - сам незнаю как правельно.

Проблема у меня следующая:
Если я правильно понимаю, чтоб связать эти платформы между собой через веб, лучше работать c "httpservletresponse httpservletrequest" через POST-метод!?. Мне нужно чтоб "мобила" просто отправила некоторые даные и в ответ масив значений.

вариант:
Код: java
1.
2.
3.
4.
<% PrintWriter pw = response.getWriter();
        pw.print("значение 1");
        pw.print("значение 2");
        %>



Подскажите что и как правельно это нужно делать.
Спасибо за внимание ...
"Правильность" зависит от задачи.
Можете логически разделить задание на получение данных и на изменение (вставка, изменение, удаление) по методам.

GET для получения данных, POST для изменения.

В JSP для определения HTTP метода используйте request.getMethod().equalsIgnoreCase(...).
Для определения конкретной операции при изменении данных можно использовать дополнительные параметры наряду с основными.

Также можно "развязать" разные операции по разным URI, например:
для получения данных get...
для вставки данных ins...
для изменения данных upd...
для удаления данных del...


Думаю плюсы и минусы таких подходов сможете сами просчитать.
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38844250
dimchuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsov,

Если я правельно всё понял смысл отправки ответа состоит в генерации нового html документа с текстом в тегах <body></body>. А на стороне клиента просто нужно пропарсить єтот html файл?
И логика примерно следующая.
Мобила:
отправляет GET/POST запрос на страницу ../index.jsp
серверная часть:
через request.getParametr(), я принимаю эти даные, обрабатываю, кручу, химичу и скурюю, потом через PrintWriter pw = request.getWriter() прописаваю jsp страницу котороя віводит приблизительно следующее:
[
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
    <h1>
        name
    </h1>
    <h2>
        Барабашка
    </h2>
    </body>
</html>



мобила:
после проведения запроса, они должны пропарсить следующий файл "../index" без/или с указанием разшиоения .html .
Ели это расмотреть с сротоны android'a то можна сказать что на мобbлt прийдетса прописать следующее:

Код: 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.
                        btnGo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String siteUrl ="../index";
                ( new ParseURL() ).execute();
            }
        });

    }
    //----------------------------------------------------------------------------------------------
    private class ParseURL extends AsyncTask<Void, Void, Void> {


        @Override
        protected Void doInBackground(Void... params) {

            String s=null;
            try {
                Document doc = Jsoup.connect("../index.jsp").get();
                Elements topicList = doc.select("h1");
                s = topicList.toString();
                Log.d(LOG, s);
            } catch (Throwable t) {
                t.printStackTrace();
            }

            return null;
        }
    }


Подправте пожалуйста
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38845231
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimchuk,
Ну, если устраивает вариант мазохизма с разбором HTML контента, то вперёд. Я бы посмотрел в сторону JSON, намного проще с ним работать.
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38910531
dimchuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsov,

Спасибо, json спас, но тут же возник вопрос с проверкой на валідность самих ключей. Например: ключ "name" случайно был изменён, и теперь на сервер приходит ключ в json'е "name1": здесь вижу один способ: в конструкторах класок прописать напримен все значения равно -1. А потом все обекты как джава обекты проверять на параметр -1. Если есть таков: то далее просто выкинуть ошибку, а если всё >=0 то пропускать. Использую Gson. Есть ли какието альтернативы для проверки?....
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38910604
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimchukAlex Kuznetsov,

Спасибо, json спас, но тут же возник вопрос с проверкой на валідность самих ключей. Например: ключ "name" случайно был изменён, и теперь на сервер приходит ключ в json'е "name1": здесь вижу один способ: в конструкторах класок прописать напримен все значения равно -1. А потом все обекты как джава обекты проверять на параметр -1. Если есть таков: то далее просто выкинуть ошибку, а если всё >=0 то пропускать. Использую Gson. Есть ли какието альтернативы для проверки?....

Может почитать спецификацию REST ?
Там все такие случаи рассмотрены.
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38910676
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimchukНапример: ключ "name" случайно был изменён, и теперь на сервер приходит ключ в json'е "name1
По простому, это составить спецификацию между разработчиками (вер.1.1.1.1) и не парить мозги.
Т.к. в любом ЯП кто-то может поправить сигнатуру метода или добавить параметр.
А проверку на сервере на валидность всё-таки вставить, с выдачей ошибки HTTP.Error - "пришла белиберда"
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38917317
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimchukAlex Kuznetsov,
Спасибо, json спас,Пожалуйста.
dimchuk ...но тут же возник вопрос с проверкой на валідность самих ключей. Например: ключ "name" случайно был изменён, и теперь на сервер приходит ключ в json'е "name1"... Кем изменён, когда изменён, где изменён?
Вопрос проверки валидности данных решается на сервере в ОБЯЗАТЕЛЬНОМ порядке.
Пришли невалидные неожидаемые данные - досвидос и всего делов.
Если меняется спецификация запроса (изменение названия полей, добавление или исключение полей и т.д), то она меняется версионно, потому что обычно спецификация запроса меняется при изменении бизнес логики. Как Вы будете разруливать эту версионность на уровне сервера приложений - это уже другая песня.
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38926831
dimchuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsov,

Хорошо, опустим ситуацию когда нет понятия версий ...
Припустим, "нехороший человек" - не правильно прописал некий ключ. И отправляет мне "неправельный json".

Как мне правильно провалидировать json строку к конкретному класу. Возможно чтото не понимаю, поправте пожалуйста.
Может кодом получитьса у меня высказать проблему...
Есть клас:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class Test {

    private int param1;
    private int param2;
    private int param3;

    Test() {

    }
     // getters & setters
}


пример
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
public class JavaApplication4 {
    public static void main(String[] args) {
        Test t = new Test();
        Test t1 = new Test();
        
        Gson g = new Gson();  //гугловская библиотека
        
        String Valide = "{\"param1\":1,\"param2\":2,\"param3\":3}";
        String InValide = "{\"param6\":1,\"param2\":2,\"param3\":3}";
        
        t = g.fromJson(Valide, t.getClass());
        t1 = g.fromJson(InValide, t1.getClass());
        
        System.out.println(g.toJson(t));  // - вывод: {"param1":1,"param2":2,"param3":3}

        System.out.println(g.toJson(t1)); // - вывод: {"param1":0,"param2":2,"param3":3}
    }
}


как мне перехватить "param6" и на каком этапе?
Может другая библиотека Json, или руками через JsonElement (тут же вопрос при развитии самого класа Tets), минус - нужно будет передеплоить проект - что не вариант, или только вариант проверки через рефлексию GSON. Добавим ему немного строгости .

Уточните, ибо я реально догнать немагу, о чом вы стараетесь мне сказать :(
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38927115
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimchuk,
а причём тут public class Test?
Они тебе разве именно этот класс отправляют?
Я так понял, что на клиенте абсолютно независимая разработка.
Тогда отправка тебе:
- документ - в JSON
- БД андроида - ....
- команда удалить запись - HTTP -сервлет параметр ID.
В каждом случае валидация разная.
Либо ты шлёшь вместе с JSON версию и веришь ей, либо REST с проверкой параметров в сервлете.
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38927160
dimchuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Именно! Они отправляют мне этот класс но виде Json. А если уже быть на много точнее по структуре, то он приблизительно выглядит так:
Код: 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.
public class Test {
    private int param1;
    private int param2;
    private int param3;
    private anotherClass1 iC1, iC2, iC3;
    public Test(){
        
    }
    // getters & setters
}

class anotherClass1{
    private int param1;
    private int param2;
    private int param3;
    private anotherClass2[] iC;
    public anotherClass1(){
        
    }
    // getters & setters
}
class anotherClass2{
    private int param1;
    private int param2;
    private int param3;
    public anotherClass2(){
        
    }
    // getters & setters
}



Просто, работа с Java обектами намного удобней (с Json'a -> Java) при последующей ситуации:
занесения в базу с разбивкой на множество таблиц.

парсить в xml и передача другой системе (другая система принимает только xml :( )

передача java обекта в следующие бины на сервере...
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38927197
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimchuk,
ну, зашей версию при передаче и при получении и всё.
Ни у кого же голова не болит, что в видеофайле написано в заголовке 500 кадров, а скачалась половина.
Проверил версию, а дальше только фатальные ошибки обычным порядком.
imho
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38927201
dimchuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок, так тому и быть....
Всем огромное спасибо ... и спасибо за терпение
...
Рейтинг: 0 / 0
JSP + ( android & iOS)
    #38929067
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimchuk,

Я говорил не только о проверке схемы, но и о проверке приходящих значений на допустимые.

Для размышлений вот это посмотрите http://json-schema.org/implementations.html
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JSP + ( android & iOS)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]