diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index 0d73912..0000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "java.configuration.updateBuildConfiguration": "interactive"
-}
\ No newline at end of file
diff --git a/src/main/java/ru/molokoin/home/entities/Media.java b/src/main/java/ru/molokoin/home/entities/Media.java
new file mode 100644
index 0000000..27f573d
--- /dev/null
+++ b/src/main/java/ru/molokoin/home/entities/Media.java
@@ -0,0 +1,36 @@
+package ru.molokoin.home.entities;
+
+import java.io.Serializable;
+
+import jakarta.persistence.Basic;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Lob;
+import jakarta.persistence.NamedQueries;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+/**
+ * Класс сущности,
+ * хранит сведения о файлах размещенных на сервере
+ * и ссылку на размещенный файл
+ */
+@Entity
+@Table(name = "Medias")
+@NamedQueries({
+ @NamedQuery(name = "Medias.findAll",
+ query = "SELECT m FROM Media m")
+})
+public class Media implements Serializable{
+ @Id //уникальный идентификатор ресурса
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Basic(optional = false) //не может быть null
+ @Column(name = "id")
+ private Integer id;// PRIMARY KEY AUTO_INCREMENT
+ private String name;// name varchar(300)
+ private String type;// varchar(10)
+ private String description;// varchar(1000)
+ private Integer parent;// DEFAULT (0)
+}
diff --git a/src/main/java/ru/molokoin/home/servlets/Main.java b/src/main/java/ru/molokoin/home/servlets/Main.java
new file mode 100644
index 0000000..e08ca90
--- /dev/null
+++ b/src/main/java/ru/molokoin/home/servlets/Main.java
@@ -0,0 +1,55 @@
+package ru.molokoin.home.servlets;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import jakarta.servlet.ServletException;
+import jakarta.servlet.annotation.WebServlet;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+
+@WebServlet(name = "Main", value = "/main")
+public class Main extends HttpServlet{
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+ page(request, response);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+ page(request, response);
+ }
+
+ private void page(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ request.setCharacterEncoding("UTF-8");
+ response.setContentType("text/html; charset=UTF-8");
+
+ PrintWriter out = response.getWriter();
+ out.println("");
+ out.println("");
+ out.println("
");
+ out.println(" ");
+ out.println(" ");
+ out.println(" ");
+ out.println(" home:main");
+ /**
+ * Подключение стилей
+ */
+ out.println(" ");
+ out.println("");
+ out.println("");
+ out.println("");
+ out.println(" molokoin.ru : main
");
+ out.println("");
+ out.println("");
+ out.println("");
+ out.println("");
+ out.println("");
+ out.println("");
+ }
+
+
+}
diff --git a/src/main/java/ru/molokoin/home/servlets/Storage.java b/src/main/java/ru/molokoin/home/servlets/Storage.java
new file mode 100644
index 0000000..62e8f68
--- /dev/null
+++ b/src/main/java/ru/molokoin/home/servlets/Storage.java
@@ -0,0 +1,155 @@
+package ru.molokoin.home.servlets;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Paths;
+
+import jakarta.servlet.ServletException;
+import jakarta.servlet.annotation.MultipartConfig;
+import jakarta.servlet.annotation.WebServlet;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.Part;
+/**
+ * Сервлет файлообменника
+ */
+@MultipartConfig(fileSizeThreshold = 2024 * 2024,
+ maxFileSize = 2024 * 2024 * 5,
+ maxRequestSize = 2024 * 2024 * 5 * 5)
+@WebServlet(name = "Storage", value = "/storage")
+public class Storage extends HttpServlet{
+ /**
+ * Возвращает пользователю страницу, содержащую:
+ * - перечень доступных для скачивания файлов
+ * - форму для загрузки файла на сервер
+ */
+ @Override
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+ //page(request, response);
+ request.setCharacterEncoding("UTF-8");
+ response.setContentType("text/html; charset=UTF-8");
+
+ PrintWriter out = response.getWriter();
+ out.println("");
+ out.println("");
+ out.println("");
+ out.println(" ");
+ out.println(" ");
+ out.println(" ");
+ out.println(" home:storage");
+ // Подключение стилей
+ out.println(" ");
+ out.println("");
+ out.println("");
+ out.println("");
+ out.println(" molokoin.ru : storage
");
+ out.println("");
+ out.println("");
+ out.println("");
+ out.println(" tables of content
");
+ out.println("");
+ out.println("");
+ out.println("");
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+ page(request, response);
+ }
+
+ private void page(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ request.setCharacterEncoding("UTF-8");
+ response.setContentType("text/html; charset=UTF-8");
+
+ PrintWriter out = response.getWriter();
+ out.println("");
+ out.println("");
+ out.println("");
+ out.println(" ");
+ out.println(" ");
+ out.println(" ");
+ out.println(" home:storage");
+ // Подключение стилей
+ out.println(" ");
+ out.println("");
+ out.println("");
+ out.println("");
+ out.println(" molokoin.ru : storage
");
+ out.println("");
+ out.println("");
+ out.println("");
+ out.println(" tables of content
");
+ // обработка данных
+ String description = request.getParameter("description"); // Retrieves
+ out.println(" "+description+"
");
+
+ String uploadPath = "/srv/apps/home/exchange";
+ File uploadDir = new File(uploadPath);
+ if (!uploadDir.exists()) {
+ out.println(" "+"Директория для записи файла: " + uploadPath + " не доступна!!!" + "
");
+ } else {
+ try {
+ Part filePart = request.getPart("file");
+ String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString();
+ out.println(" "+fileName+"
");
+ for (Part part : request.getParts()) {
+ part.write(uploadPath + File.separator + fileName);
+ //out.println(" "+fileName + "содержит: " + part.getSize()+"
");
+ }
+ } catch (ServletException e) {
+ //e.printStackTrace();
+ }
+ }
+
+
+
+
+
+ // Part filePart;
+ // try {
+ // filePart = request.getPart("file");// Retrieves
+ // String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString(); // MSIE fix.
+ // out.println(" " + fileName + " contains: " + "
");
+ // InputStream fileContent = filePart.getInputStream();
+ // //читаем из файла
+ // StringBuilder textBuilder = new StringBuilder();
+ // try (Reader reader = new BufferedReader(new InputStreamReader
+ // (fileContent, StandardCharsets.UTF_8))) {
+ // int c = 0;
+ // while ((c = reader.read()) != -1) {
+ // textBuilder.append((char) c);
+ // }
+ // out.println(" " + fileName + " contains: " + textBuilder.toString() + "
");
+ // }
+ // } catch (ServletException e) {
+ // // TODO Auto-generated catch block
+ // //e.printStackTrace();
+ // out.println(" " + "Файл вызвал ошибку: " + "
");
+ // }
+ out.println("");
+ out.println("");
+ out.println("");
+ }
+
+
+}
+
diff --git a/src/main/resources/META-INF/persistance.xml b/src/main/resources/META-INF/persistance.xml
new file mode 100644
index 0000000..d7aa60f
--- /dev/null
+++ b/src/main/resources/META-INF/persistance.xml
@@ -0,0 +1,9 @@
+
+
+
+ Подключение к базе molokoin.ru:3306/home
+ java:/home
+
+ true
+
+
\ No newline at end of file
diff --git a/src/main/sql-scripts/home.sql b/src/main/sql-scripts/home.sql
new file mode 100644
index 0000000..20ec72f
--- /dev/null
+++ b/src/main/sql-scripts/home.sql
@@ -0,0 +1,11 @@
+create database home;
+
+create table home.repository (
+ id INT PRIMARY KEY AUTO_INCREMENT,
+ name varchar(300) not null,
+ type varchar(10),
+ description varchar(1000),
+ parent INT DEFAULT(0)
+);
+
+ALTER TABLE home.repository ADD data LARGEBLOB;
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index cb782db..9c9ba77 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -5,3 +5,9 @@
molokoin.ru
+
\ No newline at end of file
diff --git a/src/main/webapp/content/test.txt b/src/main/webapp/content/test.txt
new file mode 100644
index 0000000..f079749
--- /dev/null
+++ b/src/main/webapp/content/test.txt
@@ -0,0 +1 @@
+test1
\ No newline at end of file
diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html
index 75e6c3d..7939329 100644
--- a/src/main/webapp/index.html
+++ b/src/main/webapp/index.html
@@ -14,6 +14,9 @@
some info
diff --git a/target/classes/META-INF/persistance.xml b/target/classes/META-INF/persistance.xml
new file mode 100644
index 0000000..d7aa60f
--- /dev/null
+++ b/target/classes/META-INF/persistance.xml
@@ -0,0 +1,9 @@
+
+
+
+ Подключение к базе molokoin.ru:3306/home
+ java:/home
+
+ true
+
+
\ No newline at end of file
diff --git a/target/classes/ru/molokoin/home/entities/Media.class b/target/classes/ru/molokoin/home/entities/Media.class
new file mode 100644
index 0000000..73b0785
Binary files /dev/null and b/target/classes/ru/molokoin/home/entities/Media.class differ
diff --git a/target/classes/ru/molokoin/home/servlets/Main.class b/target/classes/ru/molokoin/home/servlets/Main.class
new file mode 100644
index 0000000..41ae768
Binary files /dev/null and b/target/classes/ru/molokoin/home/servlets/Main.class differ
diff --git a/target/classes/ru/molokoin/home/servlets/Storage.class b/target/classes/ru/molokoin/home/servlets/Storage.class
new file mode 100644
index 0000000..668eb2e
Binary files /dev/null and b/target/classes/ru/molokoin/home/servlets/Storage.class differ
diff --git a/target/home.war b/target/home.war
index 8a82307..e5f0826 100644
Binary files a/target/home.war and b/target/home.war differ
diff --git a/target/home/WEB-INF/classes/META-INF/persistance.xml b/target/home/WEB-INF/classes/META-INF/persistance.xml
new file mode 100644
index 0000000..d7aa60f
--- /dev/null
+++ b/target/home/WEB-INF/classes/META-INF/persistance.xml
@@ -0,0 +1,9 @@
+
+
+
+ Подключение к базе molokoin.ru:3306/home
+ java:/home
+
+ true
+
+
\ No newline at end of file
diff --git a/target/home/WEB-INF/classes/ru/molokoin/home/entities/Media.class b/target/home/WEB-INF/classes/ru/molokoin/home/entities/Media.class
new file mode 100644
index 0000000..73b0785
Binary files /dev/null and b/target/home/WEB-INF/classes/ru/molokoin/home/entities/Media.class differ
diff --git a/target/home/WEB-INF/classes/ru/molokoin/home/servlets/Main.class b/target/home/WEB-INF/classes/ru/molokoin/home/servlets/Main.class
new file mode 100644
index 0000000..41ae768
Binary files /dev/null and b/target/home/WEB-INF/classes/ru/molokoin/home/servlets/Main.class differ
diff --git a/target/home/WEB-INF/classes/ru/molokoin/home/servlets/Storage.class b/target/home/WEB-INF/classes/ru/molokoin/home/servlets/Storage.class
new file mode 100644
index 0000000..668eb2e
Binary files /dev/null and b/target/home/WEB-INF/classes/ru/molokoin/home/servlets/Storage.class differ
diff --git a/target/home/WEB-INF/web.xml b/target/home/WEB-INF/web.xml
index cb782db..9c9ba77 100644
--- a/target/home/WEB-INF/web.xml
+++ b/target/home/WEB-INF/web.xml
@@ -5,3 +5,9 @@
molokoin.ru
+
\ No newline at end of file
diff --git a/target/home/content/test.txt b/target/home/content/test.txt
new file mode 100644
index 0000000..f079749
--- /dev/null
+++ b/target/home/content/test.txt
@@ -0,0 +1 @@
+test1
\ No newline at end of file
diff --git a/target/home/index.html b/target/home/index.html
index 75e6c3d..7939329 100644
--- a/target/home/index.html
+++ b/target/home/index.html
@@ -14,6 +14,9 @@
some info
diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
index 8576f49..e26fc97 100644
--- a/target/maven-archiver/pom.properties
+++ b/target/maven-archiver/pom.properties
@@ -1,4 +1,4 @@
#Created by Apache Maven 3.8.5
-artifactId=home
groupId=ru.molokoin
+artifactId=home
version=1.0
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..964659c
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,3 @@
+ru\molokoin\home\servlets\Storage.class
+ru\molokoin\home\entities\Media.class
+ru\molokoin\home\servlets\Main.class
diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..f511928
--- /dev/null
+++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,3 @@
+C:\Users\Strannik\Documents\esoe\code\home\src\main\java\ru\molokoin\home\servlets\Storage.java
+C:\Users\Strannik\Documents\esoe\code\home\src\main\java\ru\molokoin\home\entities\Media.java
+C:\Users\Strannik\Documents\esoe\code\home\src\main\java\ru\molokoin\home\servlets\Main.java