Работа с html в Java. Level 1. Фигурные скобки

213
08 мая 2018, 01:08

Имеется задание создать сервлет: UserUpdateServlet

  • doGet URL /edit?id={userId} - открывает форму для редактирования с заполенными полями. До этого создавал сервлет для отображения таблицы пользователей и сервлет открытия формы для создания пользователя. Вопрос в том, как мне средствами Java работать с шаблоном {userId} , как подставить ид пользователя вместо userId? Файлы .jsp использовать запрещено по заданию, все делаю через writer. Вот как выглядит метод get в сервлете

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws  IOException {
    resp.setContentType("text/html");
    PrintWriter writer = new PrintWriter(resp.getOutputStream());
    int id = Integer.parseInt(req.getParameter("Id"));
    User user = service.findById(id);
    writer.print("<title>Обновление пользователя</title>\n" +
            "<body>\n" +
            "<form action=\"http://localhost:8080/items/edit?Id={userId}\" " +
            "method=\"post\" name=\"update\" id=\"form\"\n" +
            "style=\"text-align: center\">\n" +
            "    Id: \n" +
            "    <p><input type=\"text\" name=\"Id\" id=\"Id\" value="+user.getId()+" size=\"25\" />\n" +
            "    </p>\n" +
            "    Name:\n" +
            "    <p><input type=\"text\" name=\"name\" id=\"name\" value="+user.getName()+" size=\"25\" />\n" +
            "    </p>\n" +
            "    Login:\n" +
            "    <p><input type=\"text\" name=\"login\" id=\"login\" value="+user.getLogin()+" size=\"25\" />\n" +
            "    </p>\n" +
            "    Email:\n" +
            "    <p><input type=\"email\" name=\"email\" id=\"email\" value="+user.getEmail()+" size=\"25\" />\n" +
            "    </p>\n" +
            "    <p><input name=\"submit\" type=\"submit\" id=\"submit\" value=\"Сохранить\" />\n" +
            "    </p>\n" +
            "</form>\n" +
            "</body>\n");
    writer.flush();
    
Answer 1

Просто подставь id который ты достал из request'а. Это безопасно, так как это целое число, еще и примитив. Что-то такое будет

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws  IOException {
resp.setContentType("text/html");
PrintWriter writer = new PrintWriter(resp.getOutputStream());
int id = Integer.parseInt(req.getParameter("Id"));
User user = service.findById(id);
writer.print("<title>Обновление пользователя</title>\n" +
        "<body>\n" +
        "<form action=\"http://localhost:8080/items/edit?Id=" + id + "\" " +
        "method=\"post\" name=\"update\" id=\"form\"\n" +
        "style=\"text-align: center\">\n" +
        "    Id: \n" +
        "    <p><input type=\"text\" name=\"Id\" id=\"Id\" value="+user.getId()+" size=\"25\" />\n" +
        "    </p>\n" +
        "    Name:\n" +
        "    <p><input type=\"text\" name=\"name\" id=\"name\" value="+user.getName()+" size=\"25\" />\n" +
        "    </p>\n" +
        "    Login:\n" +
        "    <p><input type=\"text\" name=\"login\" id=\"login\" value="+user.getLogin()+" size=\"25\" />\n" +
        "    </p>\n" +
        "    Email:\n" +
        "    <p><input type=\"email\" name=\"email\" id=\"email\" value="+user.getEmail()+" size=\"25\" />\n" +
        "    </p>\n" +
        "    <p><input name=\"submit\" type=\"submit\" id=\"submit\" value=\"Сохранить\" />\n" +
        "    </p>\n" +
        "</form>\n" +
        "</body>\n");
writer.flush();
READ ALSO
Статистика портов

Статистика портов

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

168
Модифицированная игра в слова Java [требует правки]

Модифицированная игра в слова Java [требует правки]

Разработать программу, позволяющую играть в словаПравила: выбирается одна буква, игрок и компьютер должны по очереди называть слова на эту...

187
Помощь по схеме базы данных

Помощь по схеме базы данных

Есть сайт где пользователь может задавать вопросы другим пользователям (одному или нескольким)У меня есть таблыцы: пользователи-tb_users и вопросы-tb_question,...

182
select is not valid input at this position MySQL 8

select is not valid input at this position MySQL 8

Подскажите в чем ошибка

232