Skip to content

Commit 46a5500

Browse files
author
Tanechka
committed
Lesson16 HW15_servlet
1 parent 39775ee commit 46a5500

File tree

7 files changed

+58
-3
lines changed

7 files changed

+58
-3
lines changed

src/ru/javawebinar/basejava/Config.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import java.util.Properties;
1111

1212
public class Config {
13-
private static final File PROPS = new File("config\\resumes.properties");
13+
private static final File PROPS = new File(getHomeDir(), "config\\resumes.properties");
1414
private static final Config INSTANCE = new Config();
1515

1616
private final File storageDir;
@@ -38,4 +38,13 @@ public File getStorageDir() {
3838
public Storage getStorage() {
3939
return storage;
4040
}
41+
42+
private static File getHomeDir() {
43+
String prop = System.getProperty("homeDir");
44+
File homeDir = new File(prop == null ? "." : prop);
45+
if (!homeDir.isDirectory()) {
46+
throw new IllegalStateException(homeDir + " is not directory");
47+
}
48+
return homeDir;
49+
}
4150
}

src/ru/javawebinar/basejava/storage/SqlStorage.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ public class SqlStorage implements Storage {
1818
public final SqlHelper sqlHelper;
1919

2020
public SqlStorage(String dbUrl, String dbUser, String dbPassword) {
21+
try {
22+
Class.forName("org.postgresql.Driver");
23+
} catch (ClassNotFoundException e) {
24+
throw new IllegalStateException(e);
25+
}
2126
sqlHelper = new SqlHelper(() -> DriverManager.getConnection(dbUrl, dbUser, dbPassword));
2227
}
2328

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,28 @@
11
package ru.javawebinar.basejava.web;
22

3+
import ru.javawebinar.basejava.Config;
4+
import ru.javawebinar.basejava.model.ContactType;
5+
import ru.javawebinar.basejava.model.Resume;
6+
import ru.javawebinar.basejava.storage.Storage;
7+
8+
import javax.servlet.ServletConfig;
9+
import javax.servlet.ServletException;
310
import javax.servlet.http.HttpServlet;
411
import javax.servlet.http.HttpServletRequest;
512
import javax.servlet.http.HttpServletResponse;
613
import java.io.IOException;
14+
import java.io.Writer;
715

816
public class ResumeServlet extends HttpServlet {
17+
18+
private Storage storage; // = Config.get().getStorage();
19+
20+
@Override
21+
public void init(ServletConfig config) throws ServletException {
22+
super.init(config);
23+
storage = Config.get().getStorage();
24+
}
25+
926
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws javax.servlet.ServletException, IOException {
1027

1128
}
@@ -15,7 +32,31 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t
1532
response.setCharacterEncoding("UTF-8");
1633
// response.setHeader("Content-Type", "text/html; charset=UTF-8");
1734
response.setContentType("text/html; charset=UTF-8");
18-
String name = request.getParameter("name");
19-
response.getWriter().write(name == null ? "Hello Resumes!" : "Hello " + name + '!');
35+
Writer writer = response.getWriter();
36+
writer.write(
37+
"<html>\n" +
38+
"<head>\n" +
39+
" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" +
40+
" <link rel=\"stylesheet\" href=\"css/style.css\">\n" +
41+
" <title>Список всех резюме</title>\n" +
42+
"</head>\n" +
43+
"<body>\n" +
44+
"<section>\n" +
45+
"<table border=\"1\" cellpadding=\"8\" cellspacing=\"0\">\n" +
46+
" <tr>\n" +
47+
" <th>Имя</th>\n" +
48+
" <th>Email</th>\n" +
49+
" </tr>\n");
50+
for (Resume resume : storage.getAllSorted()) {
51+
writer.write(
52+
"<tr>\n" +
53+
" <td><a href=\"resume?uuid=" + resume.getUuid() + "\">" + resume.getFullName() + "</a></td>\n" +
54+
" <td>" + resume.getContact(ContactType.MAIL) + "</td>\n" +
55+
"</tr>\n");
56+
}
57+
writer.write("</table>\n" +
58+
"</section>\n" +
59+
"</body>\n" +
60+
"</html>\n");
2061
}
2162
}

src/ru/javawebinar/basejava/web/WEB-INF/web.xml renamed to web/WEB-INF/web.xml

File renamed without changes.

src/ru/javawebinar/basejava/web/css/style.css renamed to web/css/style.css

File renamed without changes.

src/ru/javawebinar/basejava/web/index.html renamed to web/index.html

File renamed without changes.

0 commit comments

Comments
 (0)