【问题标题】:Append to text area with PrintWriter intead of replacing it使用 PrintWriter 附加到 textarea 而不是替换它
【发布时间】:2022-11-18 02:16:38
【问题描述】:

我想将表单中输入的消息附加到文本区域,而不是使用 HttpServlet 的 doPost 方法替换它。我只设法完全替换了 html ...

@WebServlet(name = "helloServlet", value = "/hello-servlet")
public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();
        out.println("<html><body>");
        // dont redirect to a new page, but write the response directly to the response object
        out.println("<form action=\"hello-servlet\" method=\"post\" target=\"chat\">");
        out.println("Message: <input type=\"text\" name=\"message\"/>");
        out.println("<input type=\"submit\" value=\"Submit\"/>");
        out.println("</form>");

        out.println("<textarea name=\"chatoutput\" id=\"chat\" cols=\"50\" rows=\"10\"readonly>");
        out.println("Hello");

        out.println("</textarea>");

        out.println("</body></html>");


    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String message = req.getParameter("message");


    }

}

【问题讨论】:

    标签: java servlets


    【解决方案1】:

    您必须将聊天记录存储在某个地方。您可以使用数据库或文件。另一个地方是使用 Servlet 成员变量。当然当服务器关闭时聊天会丢失。这是演示代码。

    package rick;
    import java.io.IOException;
    import java.io.PrintWriter;
    import jakarta.servlet.ServletException;
    import jakarta.servlet.annotation.WebServlet;
    import jakarta.servlet.http.HttpServlet;
    import jakarta.servlet.http.HttpServletRequest;
    import jakarta.servlet.http.HttpServletResponse;
    @WebServlet(name = "helloServlet", value = "/hello-servlet")
    public class HelloServlet extends HttpServlet {
        String chat = "Hello <br>";
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            resp.setContentType("text/html");
            PrintWriter out = resp.getWriter();
            String message = req.getParameter("message");
            if(message != null && !"".equals(message.trim())) {
                chat += message + "<br>" ;
            }
            out.println("<html><body>");
            out.println("<form action="hello-servlet" method="post" >");
            out.println("Message: <input type="text" name="message"/>");
            out.println("<input type="submit" value="Submit"/>");
            out.println("</form>");
            out.println(chat);
            out.println("</body></html>");
        }
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp); 
    }
    

    }

    【讨论】:

      猜你喜欢
      • 2015-02-05
      • 2012-08-26
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 1970-01-01
      • 1970-01-01
      • 2018-01-19
      相关资源
      最近更新 更多