• Апреля 05, 2020, 07:09:22 am
• Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Новости: Вебинар по выбору IT профессии: http://bit.ly/2S4kcC6

Автор Тема: Java Start Online Трегубенко Cергій домашня робота  (Прочитано 1738 раз)

sergick

  • Пользователи
  • *
  • Сообщений: 55
    • Просмотр профиля
    • E-mail
Re: Java Start Online Трегубенко Cергій домашня робота
« Ответ #75 : Января 13, 2020, 10:37:44 am »
Java OOP. Домашня робота "Лекція № 11" Работа с сетью
задача 1
package com.gmail.sergick6690;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashSet;
import java.util.Set;
public class ConectionInfo {
private Set<String> urlAdress= new HashSet<>();

public ConectionInfo(Set<String> urlAdress) {
super();
this.urlAdress = urlAdress;
}

public ConectionInfo() {
super();

}

public void addAdressFromFile(File file) {
String str = "";
try(BufferedReader br = new BufferedReader(new FileReader(file))){
for(;(str=br.readLine())!=null;) {
urlAdress.add(str);
}
}catch (IOException e) {
e.printStackTrace();
}
}
public void checkUrlAdress () {
for (String urlHttp : urlAdress) {
try {
URL url = new URL(urlHttp);
HttpURLConnection con =(HttpURLConnection) url.openConnection();
int code = con.getResponseCode();
if(code>=200&&code<300) {
System.out.println(urlHttp+" "+code+"- is OK");
}else {
System.out.println(urlHttp+" - "+con.getResponseMessage());
}
}catch(IOException e) {
System.out.println("Adress - "+urlHttp+" is not regist");
}

}
}

@Override
public String toString() {
return "ConectionInfo [urlAdress=" + urlAdress + "]";
}


}
package com.gmail.sergick6690;

import java.io.File;

public class Main {

public static void main(String[] args) {
File file = new File("adress.txt");
ConectionInfo conInfo=new ConectionInfo();
conInfo.addAdressFromFile(file);
System.out.println(conInfo);
conInfo.checkUrlAdress();

}

}
задача 2.
package com.gmail.sergick6690;


import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;

public class Client implements Runnable{
   private String ansv;
   private Socket socket;
   private Thread thread;
   
   public Client(String ansv, Socket socket) {
      super();
      this.ansv = ansv;
      this.socket = socket;
      thread=new Thread(this);
      thread.start();
   }
   
   @Override
   public void run() {
      try(InputStream is = socket.getInputStream(); OutputStream os = socket.getOutputStream() ){
         PrintWriter pw =new PrintWriter(os);
         byte[] buff= new byte [is.available()];
         is.read(buff);
         String response="HTTP/1.1 200 OK\r\n"+"Server:My_Server\r\n"+"Content-Type: text/html\r\n"+
                "Content-Length: "+"\r\n"+"Connection: close\r\n\r\n";
         pw.println(response+ansv);
         pw.println("");
         pw.flush();
      }catch(IOException e) {
         e.printStackTrace();
      }
      
   }

}
package com.gmail.sergick6690;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {

public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyy HH:MM:ss");
String text = sdf.format(date);
String str = "Version - " + Runtime.getRuntime().version() + "<br>" + "Available processors - "
+ Runtime.getRuntime().availableProcessors() + "<br>" + "Total memory - "
+ Runtime.getRuntime().totalMemory() + "<br>" + "Max memory - " + Runtime.getRuntime().maxMemory()
+ "<br>" + "Free memory - " + Runtime.getRuntime().freeMemory() + "<br>" + "Date - " + text;
String ansv = "<html><head><title>System</title><meta charset='utf-8'>" + str + "</body></html>";

try (ServerSocket soc = new ServerSocket(8052)) {
for (;;) {
Socket socket = soc.accept();
Client client = new Client(ansv, socket);
}

} catch (IOException e) {
e.printStackTrace();
}

}

}
задача 3.
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashSet;
import java.util.Set;

public class Main {

public static void main(String[] args) {
String urlAdress = "https://prog.kiev.ua/forum/index.php";
File file = new File("URL Adress.txt");
saveUrlToFile(file, urlAdress);
}

public static void saveUrlToFile(File file, String urlAdress) {
Set<String> url = new HashSet<>();
String str = getDataFromUrl(urlAdress);
String[] arr = str.split(" ");
for (String string : arr) {
if (string.startsWith("href=" + '"' + "https:")) {
url.add(string.substring(6, string.lastIndexOf('"')));
} else if (string.startsWith("src=" + '"' + "https:")) {
url.add(string.substring(5, string.lastIndexOf('"')));
}
}
try (PrintWriter pw = new PrintWriter(file)) {
for (String urlAd : url) {
pw.println(urlAd);
System.out.println(urlAd);

}

} catch (IOException e) {
e.printStackTrace();
}
}

public static String getDataFromUrl(String urladress) {
StringBuilder sb = new StringBuilder();
try {
URL url = new URL(urladress);
HttpURLConnection httpUrl = (HttpURLConnection) url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(httpUrl.getInputStream()));
String str;
for (; (str = br.readLine()) != null;) {
sb.append(str).append(System.lineSeparator());
}
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}

}

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 13429
    • Просмотр профиля
    • E-mail
Re: Java Start Online Трегубенко Cергій домашня робота
« Ответ #76 : Января 13, 2020, 03:34:59 pm »
Sergick

Решение верное

Вот вы и дошли до конца курса. Напишите мне на почту (вторая страница презентации внизу) и я вышлю вам некоторые дополнительные и бонусные материалы

sergick

  • Пользователи
  • *
  • Сообщений: 55
    • Просмотр профиля
    • E-mail
Re: Java Start Online Трегубенко Cергій домашня робота
« Ответ #77 : Февраля 21, 2020, 08:14:03 pm »
Java Pro. Домашня робота "Лекція № 1"  Reflection API
задача 1.
package com.gmail.sergick6690;

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

@Retention(RUNTIME)
@Target(METHOD)
public @interface MyAnnotation {
int paramOne();
int paramTwo();


}
package com.gmail.sergick6690;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Main {

public static void main(String[] args)
throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
Class<?> cls = Main.class;
Method[] methods = cls.getMethods();
for (Method method : methods) {
if (method.isAnnotationPresent(MyAnnotation.class)) {
MyAnnotation an = method.getAnnotation(MyAnnotation.class);
int sum = (Integer) method.invoke(null, an.paramOne(), an.paramTwo());
System.out.println(sum);
}
}
}

@MyAnnotation(paramOne = 5, paramTwo = 4)
public static int sum(int n1, int n2) {
return n1 + n2;
}
}
задача 2.
package com.gmail.sergick6690;

import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.*;

@SvaeTo(path = "text.txt")
public class Container {
private String text = "Hello World";

@Save
public void save () throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
Class<?> cls= Container.class;
Field fileds= cls.getDeclaredField("text");
String value =(String) fileds.get(this);
SvaeTo ant = cls.getAnnotation(SvaeTo.class);
try(PrintWriter pw = new PrintWriter(ant.path())){
pw.print(value);
}catch (IOException e) {
e.printStackTrace();
}

}

}
package com.gmail.sergick6690;

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

@Retention(RUNTIME)
@Target(METHOD)
public @interface Save {

}
package com.gmail.sergick6690;

import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

@Retention(RUNTIME)
@Target(TYPE)
public @interface SvaeTo {
 String path();
}
package com.gmail.sergick6690;

import java.lang.reflect.*;

public class Main {

public static void main(String[] args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
Class<?> cls = Container.class;
Method method = cls.getDeclaredMethod("save");
if(method.isAnnotationPresent(Save.class))
method.invoke(new Container());
}

}

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 13429
    • Просмотр профиля
    • E-mail
Re: Java Start Online Трегубенко Cергій домашня робота
« Ответ #78 : Февраля 22, 2020, 11:07:24 pm »
Sergick

Решение верное

sergick

  • Пользователи
  • *
  • Сообщений: 55
    • Просмотр профиля
    • E-mail
Re: Java Start Online Трегубенко Cергій домашня робота
« Ответ #79 : Марта 06, 2020, 08:07:37 pm »
Java Pro. Домашня робота "Лекція № 1"  XML & JSON
задача 1.
https://github.com/cub6690/JavaProHomeWork2Task1
задача 2.
https://github.com/cub6690/HomeWork-2-JSON-
задача 3.
https://github.com/cub6690/HomeWorkLeson2FinanceSax

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 13429
    • Просмотр профиля
    • E-mail
Re: Java Start Online Трегубенко Cергій домашня робота
« Ответ #80 : Марта 07, 2020, 12:26:45 am »
Sergick
Ох. Ну и что это такое?

public class Address {
private String country;
private String city;
private String street;

@Override
public String toString() {
return "Adress{" +
"country='" + country + '\'' +
", city='" + city + '\'' +
", street='" + street + '\'' +
'}';
}
}
И как этим пользоваться? Не конструкторов, не методов получения и установки, этим же классом просто не возможно пользоваться.
В остальном решение верное

sergick

  • Пользователи
  • *
  • Сообщений: 55
    • Просмотр профиля
    • E-mail
Re: Java Start Online Трегубенко Cергій домашня робота
« Ответ #81 : Марта 08, 2020, 07:43:40 pm »
Дорого дня, проблеми з запуском чата на сервлетах видає помилку
java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:8080/get?from=0
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1913)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1509)
at com.company.GetThread.run(GetThread.java:28)
at java.base/java.lang.Thread.run(Thread.java:834)
допомодіть розібратись в чому причина
https://github.com/cub6690/JavaProEEChatClient
https://github.com/cub6690/JavaProEEChatSrerver

web.xml
  <?xml version="1.0" encoding="utf-8" ?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
- <servlet>
  <servlet-name>GetList</servlet-name>
  <servlet-class>ua.kiev.prog.GetListServlet</servlet-class>
  </servlet>
- <servlet-mapping>
  <servlet-name>GetList</servlet-name>
  <url-pattern>/get</url-pattern>
  </servlet-mapping>
- <servlet>
  <servlet-name>Add</servlet-name>
  <servlet-class>ua.kiev.prog.AddServlet</servlet-class>
  </servlet>
- <servlet-mapping>
  <servlet-name>Add</servlet-name>
  <url-pattern>/add</url-pattern>
  </servlet-mapping>
- <welcome-file-list>
  <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  </web-app>

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 13429
    • Просмотр профиля
    • E-mail
Re: Java Start Online Трегубенко Cергій домашня робота
« Ответ #82 : Марта 09, 2020, 12:45:51 am »
Sergick
Вот такой адрес меня откровенно смущает:

http://localhost:8080/get?from=0

Порт должен обычно идет последним. А у вас он получился частью адреса.

sergick

  • Пользователи
  • *
  • Сообщений: 55
    • Просмотр профиля
    • E-mail
Re: Java Start Online Трегубенко Cергій домашня робота
« Ответ #83 : Марта 09, 2020, 11:43:33 am »
Це прилад з лекції, я підставив тільки свій URL. У Всеволода на відео все працює. Спробував поставити порт в кінці, непрацює.

sergick

  • Пользователи
  • *
  • Сообщений: 55
    • Просмотр профиля
    • E-mail
Re: Java Start Online Трегубенко Cергій домашня робота
« Ответ #84 : Марта 09, 2020, 11:45:23 am »
Java Pro. Домашня робота "Лекція № 3"  JavaEE Anketa
https://github.com/cub6690/JavaProEEAnketa

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 13429
    • Просмотр профиля
    • E-mail
Re: Java Start Online Трегубенко Cергій домашня робота
« Ответ #85 : Марта 10, 2020, 11:45:44 pm »
Sergick

Решение верное. Ну к сожалению, о этом чате я знаю довольно мало. Его Всеволод писал.

sergick

  • Пользователи
  • *
  • Сообщений: 55
    • Просмотр профиля
    • E-mail
Re: Java Start Online Трегубенко Cергій домашня робота
« Ответ #86 : Марта 11, 2020, 10:55:13 am »
Печально. А можна цю домашу поки пропустити і рухатись далі, чи так не вийде?

Alexander Ts

  • Преподаватели
  • Пользователи
  • *
  • Сообщений: 13429
    • Просмотр профиля
    • E-mail
Re: Java Start Online Трегубенко Cергій домашня робота
« Ответ #87 : Марта 11, 2020, 01:44:33 pm »
Sergick

Как я уже не раз говорил Всеволоду этот чат нужно вообще выкинуть. Мое мнение не просто можно, а даже нужно.