сохранить файл после его изменения в textarea

215
11 мая 2018, 15:19

Как изменить пользовательский файл после того как его изменил сам пользователь в textarea? Вот код сервлета, где выводится файл пользователя в textarea:

@WebServlet(name = "Change", urlPatterns = {"/Change"})
public class Change extends HttpServlet 
{
static String filenamefile, filename, jjj;
public void doGet(HttpServletRequest req, HttpServletResponse resp) 
        throws ServletException, IOException 
{
    HttpSession httpSession = req.getSession(true);
    filenamefile = (String) httpSession.getAttribute("filenamefile");
    filename = (String) httpSession.getAttribute("filename");
    resp.setContentType("text/html;charset=utf-8");
    PrintWriter pw = resp.getWriter();
    /*PrintWriter writer = new PrintWriter("/home/zhuk/Downloads/"
            + "jj.txt", "UTF-8");*/
    pw.println("" +
            "<!DOCTYPE html>\n" +
            "<html>\n" +
            "    <head>\n" +
            "        <meta charset=\"UTF-8\">\n" +
            "        <title>Изменения страницы</title>\n" +
            "    </head>\n" +
            "    \n" +
            "    \n" +
            "    <body>\n" +
            "        <h3>\n" +
            "            Страница: "+filenamefile+"\n" +
            "        </h3>\n");
            pw.println("            <form action=\"SaveServlet\">");        
            pw.println("                <textarea cols=\"70\" rows=\"20\">");
            try (BufferedReader reader = new BufferedReader(
                new InputStreamReader(
                        new FileInputStream(filename), 
                        StandardCharsets.UTF_8)))
            {
                String line;
                while ((line = reader.readLine()) != null)
                {
                    pw.println(line);
                    //jjj+=line;
                }
            }
            catch (IOException e) 
            {
                e.printStackTrace();
            }
            /*for(int i = 0; i < jjj.length(); i++)
            {
                writer.println(jjj);
            }*/
            pw.println(
            "            </textarea>\n" + 
            "            <input type=\"submit\" value=\"Сохранить\">" + 
            "        </form>\n" + 
            "    </body>\n" +
            "</html>");
            //writer.close();
}
}
Answer 1

Для реализации, Вам необходимо:
1. Добавить кнопку, которая будет отправлять информацию:

    <center><button type="button" id="done" class="btn btn-primary">Отправить</button></center>  
  1. Добавить в выводимый текст в блок head объявление JS скрипта:

    <script>
        $(document).ready(function () {
            document.getElementById("done").addEventListener("click", function () {
                //ЗДЕСЬ ПОЛУЧАЕТЕ ВАШУ ТЕКСТОВУЮ ОБЛАСТЬ, ЕЕ ЗНАЧЕНИЕ И ИСПРАВЛЯЕТЕ КАК ХОТИТЕ
                $.ajax({
                    type: 'POST',
                    url: "ВАШ URL",
                    data: ВАШИ ДАННЫЕ,
                    dataType: 'json',
                    success: function (response) { //Если все нормально
                        ЧТО ДЕЛАТЬ В СЛУЧАЕ УДАЧНОЙ ОТПРАВКИ И ОБРАБОТКИ
                    },
                    error: function (response) { //Если ошибка
                        ЧТО ДЕЛАТЬ ЕСЛИ ОШИБКА
                    }
                });
            });
        });
    </script>
    

С необходимой Вам логикой.

Важно! Отправка запроса происходит через AJAX.

READ ALSO
Перевод из секунд в часы:минуты

Перевод из секунд в часы:минуты

Есть переменная time, в ней хранятся секунды, которые нужно перевести в формат HH:mmПроблема в том, что при использовании SimpleDateFormat или ручным...

228
Как передать переменную на страницу jsp

Как передать переменную на страницу jsp

Такой вопрос, передаю переменную на страницу выбора режима просмотра БД таким образом: <li><a href="modeTmpSelectjsp?pages=${pages}">Технологічні маршрути...

193
Как вывести номер каждой строки из запроса

Как вывести номер каждой строки из запроса

Как можно вывести номер каждой строки, начиная с 1, 2, 3 и тд

209
Вывести кто онлайн через базу данных ? - MySQL

Вывести кто онлайн через базу данных ? - MySQL

Ребята подскажите как вывести в админку кто сейчас онлайн на сайте авторизованные пользователи + нужно вывести на страницы объявления где...

239