Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 22.01.2019
Сообщений: 10
1

Не подскажите как справиться с тестовым заданием

22.01.2019, 20:59. Показов 1976. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем вопрос таков, был задана задача от работодателя: Пользователь заходя на сайт может выбрать одну из комнат, в каждой из которой есть лампочка, у лампочки есть два положения (вкл\выкл). Пользователь может вкл или выкл лампочку при этом всякие другой пользователь если зайдет в эту комнату будет видеть состояние лампочки такое же как и у других пользователей. Вопрос, в задании не сказано про авторизацию пользователей на сайте, поэтому я хотел бы узнать как можно в задании показать или самому проверить что разные пользователи видят состояние лампочки? Может не совсем правильно спросил, можете задать наводящий вопрос я отвечу.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2019, 20:59
Ответы с готовыми решениями:

Подскажите как справиться с заданием
Здравствуйте, получил задание: Нужно написать программу которая открывает файл ( файл приходит от...

Подскажите с тестовым заданием для тестировщиков. Пожалуйста не проходите мимо:)
Приветствую :) прошу помощи у знающих тестировщиков игр, ПО. Суть: Я работаю в кадровом...

Как справиться с заданием?
Напишите программу с процедурой Пример Pause (true); /*пишет на русском <<Введите ввод>>...

Не могу справиться с заданием
1)На форме располагаются компоненты:. редактор Memo, занимающий центр окна; компо-нент ListBox c...

12
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
22.01.2019, 22:04 2
new incognito tab, заходишь, проверяешь,..., Профит!
0
0 / 0 / 0
Регистрация: 22.01.2019
Сообщений: 10
23.01.2019, 04:31  [ТС] 3
Ок, спасибо, а еще вопрос, собственно положение света вкл\выкл вынести в переменную в базу данных?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
23.01.2019, 09:30 4
вынеси в переменную
0
0 / 0 / 0
Регистрация: 22.01.2019
Сообщений: 10
24.01.2019, 04:52  [ТС] 5
Спасибо. Блин, запара. Помогите советом. В общем не знаю как подойти к решению этого задания. На данный момент я сделал несколько jsp страниц которые отображают состояние света в комнатах, выводом надписи на экран "включен или выключен свет".а также собственно включатель (радиобаттон). И как каждой jsp каждой комнаты сделал сервлет для обработки данных. Также БД с одной таблицей отображение света в комнатах. Только вот проблема, когда кто-то другой пользователь включает или выключает свет, первый пользователь не видит изменения сета в комнате, я так понимаю автообнавление нужно делать с помощью ajax? И еще, никогда раньше не пользовался но как вывести собственно допустим переменную String status="включен" /"выключен", через вот это ${status}, что не делал не видит, код приложу сейчас

Добавлено через 7 минут
HTML5
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<%@ page import="java.sql.*" %>
<%--
  Created by IntelliJ IDEA.
  User: User
  Date: 24.01.2019
  Time: 0:07
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>Room1</title>
</head>
<body>
        <h1>Вы в комнате № 1</h1>
 
        <form action="Room1" method="get">
            <p><b>Освещение в комнате № 1 </b></p>
            <p><input name="Light" type="radio" value="yes">Вкл</p>
            <p><input name="Light" type="radio" value="no"> Выкл</p>
 
            <p><input type="submit" value="Выбрать"></p>
        </form>
 
        <br>
        <br>
<% Connection connection;
String status = "выключен";
     String url = "jdbc:mysql://localhost:3306/4Rooms";
  try{
    Class.forName("com.mysql.jdbc.Driver");
    connection = DriverManager.getConnection(url,"root","root");
    System.out.println("Connection Sucessful");
 
    Statement st =connection.createStatement();
    ResultSet resultSet = st.executeQuery("SELECT LightStatus from rooms where id_room=1");
    while (resultSet.next()){
    int res = resultSet.getInt(1);
 
    if (res==1) {
        status = "включен";
    }
    else {
        status = "выключен";
 
    }
    }}catch (SQLException e ){
      e.printStackTrace();
  }
    %>
        Свет ${status}
</body>
</html>
ну в общем вот) не смейтесь сильно) Начиная со строки создания Connection с БД, я вставил чисто для проверки как будет работать, дело в том что я хочу, чтобы когда пользователь заходит на сайт, логика проверяла включен ли свет, данные берутся из БД.

Добавлено через 41 секунду
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.mycompany.rooms.src.java;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
 
@WebServlet("/Room1")
public class Room1 extends HttpServlet {
private Connection connection;
private String url = "jdbc:mysql://localhost:3306/4Rooms";
    String status="Выключен";
    @Override
    public void init() throws ServletException {
        try{
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection(url,"root","root");
            System.out.println("Connection Sucessful");
 
 
 
        } catch (ClassNotFoundException | SQLException e) {
            throw new IllegalStateException(e);
        }
    }
 
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String turnOn = req.getParameter("dzen");
        PrintWriter out = resp.getWriter();
 
 
 
 
        try {
 
 
            if (turnOn.equals("yes")) {
                String sql = "UPDATE rooms SET LightStatus =1 WHERE id_room=1";
                PreparedStatement statement = connection.prepareStatement(sql);
                statement.executeUpdate();
                resp.sendRedirect(this.url);
 
            }
            else if (turnOn.equals("no")){
                String sql = "UPDATE rooms SET LightStatus =0 WHERE id_room=1";
                PreparedStatement statement = connection.prepareStatement(sql);
                statement.executeUpdate();
 
            }
 
            // statement.setBoolean(1,true);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
а это собственно сервлет
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
24.01.2019, 09:12 6
читай что такое mvc, и делай mvc
0
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
24.01.2019, 09:33 7
Цитата Сообщение от Cos3212 Посмотреть сообщение
я так понимаю автообнавление нужно делать с помощью ajax?
похоже не ты понял смысла задания. Думаешь тебе его дали чтобы проверить сможешь ил ты написать ajax?
0
0 / 0 / 0
Регистрация: 22.01.2019
Сообщений: 10
24.01.2019, 09:58  [ТС] 8
Я думаю задания даются для того чтобы определить мой общий уровень знаний в нужной специальности, а написанный код и используемые технологии должны это отражать. Дело в том что у меня опыт в веб-разроботке небольшой, и наверное элементарные вещи могу не знать поэтому и спрашиваю как можно и с помощью чего собственно реализовать автообновление данных из бд на веб странице
0
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
24.01.2019, 11:10 9
Cos3212, тебе дают это задание чтобы посмотреть как ты пишешь код и насколько умеешь пользоваться теми или иными технологиями.

Этот код запускать никто не будет. Точно тебе говрю. Посмотрят за 5 минут как выглядит код и какие решения использовались например для синхронизации доступа к общему ресурсу (лампочке) и как ты работаешь с БД и все. Никакие аджаксы никому нахрен не нужны.

Пока что твой код выглядит очень плохо и аджаксы (и вообще фронт) меньшая из твоих проблем.
0
0 / 0 / 0
Регистрация: 22.01.2019
Сообщений: 10
24.01.2019, 11:29  [ТС] 10
Понятно, спасибо за инфу, ну вообще-то фронт там не важен, остается бекэнд. А что значит синхронизация? ты о многопоточности говоришь? как бы ты может подошел к решению этой задачи? заранее благодарен
0
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
24.01.2019, 12:14 11
Цитата Сообщение от Cos3212 Посмотреть сообщение
ты о многопоточности говоришь?
да. Что будет если одновременно несколько юзеров будут менять состояние одной и той же лампочки. Возможно тут такой проблемы нет, т.к переключение лампочки это атомарная операция и нет проблем если один юзер перезапишет результат другого.

Цитата Сообщение от Cos3212 Посмотреть сообщение
как бы ты может подошел к решению этой задачи

В задании не сказанно должны ли юзеры в комнате получать нотификацию о том, что состояние лампочки поменялось или им надо заново "взглянуть" на лампочку чтобы оценить её новое состояние.

Зачем вообще тут нужна БД? Почему нельзя хранить состояние лампочек в комнатах в памяти?
Обязательно ли вообще тут делать какой-то фронт или достаточно консольного вывода?
Причем тут вообще авторизация?

На все эти вопросы неплохо бы ответить перед тем как начать что-то писать.
0
0 / 0 / 0
Регистрация: 22.01.2019
Сообщений: 10
24.01.2019, 14:03  [ТС] 12
Задание выслал HR, когда я спросил, она сказала представьте что вам дали только такие условие, я так понимаю не принципиально с помощью чего и как делать, главное результат
0
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
24.01.2019, 15:20 13
Цитата Сообщение от Cos3212 Посмотреть сообщение
я так понимаю не принципиально с помощью чего и как делать, главное результат
все с точностью до наоборот. Результат никого не волнует, главное с помощью чего и как будет сделанно.
0
24.01.2019, 15:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2019, 15:20
Помогаю со студенческими работами здесь

не могу справиться с заданием
Пожалуйста помогите,сильно нужна ваша помощь.Напишите полную программу))

необходимо справиться с домашним заданием
Нарисовать блок-схему и написать программу на Pascal. Массив (вектор) или матрицу сгенерировать с...

Не могу справиться с простым вроде бы заданием
Есть такое задание: Вот до чего дошел я: &lt;html&gt; &lt;head&gt; &lt;/head&gt; &lt;body&gt; &lt;form...

выдали задания по тоэ,не могу справиться с 3 и 4 заданием
распишите алгоритм действия,пожалуйста


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru