Advertisement
Guest User

Untitled

a guest
May 15th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.37 KB | None | 0 0
  1. /**
  2. * Created by yana on 09.05.2018.
  3. */
  4. import com.mysql.fabric.jdbc.FabricMySQLDriver;
  5. import freemarker.template.Configuration;
  6. import freemarker.template.Template;
  7. import freemarker.template.TemplateExceptionHandler;
  8. import io.undertow.Undertow;
  9. import io.undertow.server.HttpHandler;
  10. import io.undertow.server.HttpServerExchange;
  11. import io.undertow.server.handlers.PathHandler;
  12. import io.undertow.server.handlers.form.EagerFormParsingHandler;
  13. import io.undertow.server.handlers.form.FormData;
  14. import io.undertow.server.handlers.form.FormDataParser;
  15. import io.undertow.server.handlers.resource.ClassPathResourceManager;
  16. import io.undertow.server.handlers.resource.ResourceHandler;
  17. import io.undertow.util.Headers;
  18.  
  19. import java.io.IOException;
  20. import java.io.StringWriter;
  21. import java.sql.*;
  22. import java.sql.Date;
  23. import java.text.Normalizer;
  24. import java.time.ZoneId;
  25. import java.util.*;
  26.  
  27. public class Server {
  28.  
  29. private final static String URL = "jdbc:mysql://localhost:3306/treibhaus";
  30. private final static String USERNAME = "root";
  31. private final static String PASSWORD = "myimmortal";
  32.  
  33.  
  34. private final static ArrayDeque<String> emptyDeque = new ArrayDeque<>();
  35.  
  36.  
  37. public static void main(final String[] args) throws IOException {
  38.  
  39. Parts parts = new Parts();
  40.  
  41.  
  42. Configuration cfg = new Configuration(Configuration.VERSION_2_3_23);
  43. cfg.setClassLoaderForTemplateLoading(Server.class.getClassLoader(),"templates");
  44. cfg.setDefaultEncoding("UTF-8");
  45. cfg.setTemplateExceptionHandler(TemplateExceptionHandler.HTML_DEBUG_HANDLER);
  46.  
  47. final Template nameTemplate = cfg.getTemplate("name.html");
  48.  
  49.  
  50.  
  51.  
  52. Undertow server = Undertow.builder()
  53. .addHttpListener(8888, "localhost")
  54. .setHandler(new PathHandler()
  55. .addExactPath("form", new EagerFormParsingHandler().setNext(new HttpHandler() {
  56.  
  57. public void handleRequest(final HttpServerExchange exchange) throws Exception {
  58.  
  59.  
  60.  
  61. FormData form = exchange.getAttachment(FormDataParser.FORM_DATA);//ассоц массив
  62. //form - Map
  63.  
  64. Iterator<String> iterator = form.iterator();
  65. while (iterator.hasNext()){
  66. String next = iterator.next();
  67. Deque<FormData.FormValue> formValues = form.get(next);//очередь
  68. System.out.println("Field name: " + next);
  69. FormData.FormValue fv = formValues.getFirst();
  70. parts.addKey(next,fv);
  71.  
  72. }
  73.  
  74.  
  75.  
  76. try {
  77. Driver driver = new FabricMySQLDriver();
  78. DriverManager.registerDriver(driver);
  79.  
  80. }
  81. catch (SQLException e){
  82. System.out.println("Driver class was not loaded");
  83.  
  84. }
  85.  
  86. try(Connection connection = DriverManager.getConnection(URL,USERNAME,PASSWORD);) {
  87. PreparedStatement preparedStatement = connection.prepareStatement("insert into Users(username, password ," +
  88. " name, lastname, email, birthdate, isAdmin, banned) values(?,?,?,?,?,?,?,?)");
  89. preparedStatement.setString(1, parts.getLogin() );
  90. preparedStatement.setString(2,parts.getPsw());
  91. preparedStatement.setString(3, parts.getName());
  92. preparedStatement.setString(4, parts.getSurname());
  93. preparedStatement.setString(5, parts.getEmail());
  94. Date date = new Date(parts.getBirthDate().getTime());
  95. preparedStatement.setDate(6, date );
  96. preparedStatement.setInt(7,0 );
  97. preparedStatement.setInt(8,0 );
  98.  
  99.  
  100.  
  101.  
  102.  
  103. }
  104. catch (SQLException e){
  105. System.out.println("Connection failed");
  106.  
  107. }
  108.  
  109.  
  110.  
  111.  
  112.  
  113. exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/html");
  114.  
  115. HashMap<String, Object> templateData = new HashMap<String, Object>();
  116. templateData.put("name", parts.getName());
  117. StringWriter stringWriter = new StringWriter();
  118. nameTemplate.process(templateData, stringWriter);
  119.  
  120. exchange.getResponseSender().send(stringWriter.toString());
  121.  
  122. }
  123. }))
  124. .addPrefixPath("/", new ResourceHandler(
  125. new ClassPathResourceManager(Server.class.getClassLoader(), "html")) {
  126. }
  127. )
  128. ).build();
  129. server.start();
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement