使用servlet将控制器的字符串带到textarea

时间:2016-05-01 03:04:48

标签: java html

我有这段代码

<div class="row">
                <div class="col-md-10">
                   <form class="form-horizontal" action="ChatController">

                    <textarea name="bottxt" id="disabledTextInput" border="2" class="form-control col-xs-6" rows="8" cols="60"></textarea><br>
                    <input class="form-control" type="text" name="usertxt" placeholder="your text here">
                    <button type="submit"  class="btn btn-success active"> Send </button>
                </div>
            </div>

所以我有ChatController。每当用户在TextBox中输入内容并按&#34;提交&#34;时,我想返回一个字符串。我怎么能这样做。

1 个答案:

答案 0 :(得分:1)

从我们的谈话中我所理解的是你的答案。首先,我们必须将您的html页面转换为jsp页面,因为只有jsp页面可以从servlet接收请求调度程序形式的响应。这是: -

//textView.jsp
<%@page import="model.TextBean"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>

    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
            <div class="row">
                <%
                TextBean txt=new TextBean();
                txt=(TextBean)request.getAttribute("txt");
                String text="";
                if(txt!=null && txt.getText()!=null){
                    text=txt.getText();
                }
                %>
                    <div class="col-md-10">
                        <textarea name="bottxt" id="disabledTextInput" border="2" class="form-control col-xs-6" rows="8" cols="60"><%=text%></textarea><br>
                        <form class="form-horizontal" action="ChatController" method="post">
                        <input class="form-control" type="text" name="usertxt" placeholder="your text here">
                        <button type="submit"  class="btn btn-success active"> Send </button>
                       </form>
                    </div>
            </div>
        </body>
    </html>

然后我们在servlet中收到从该页面发送的值。但首先我们必须设计一个名为TextBean的java类。其文本变量将存储输入的文本的值。

package model;

public class TextBean {
    String text;

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

}

在我们的servlet中,我们将从jsp页面接收的值赋给此bean。然后我们使用请求调度程序以属性的形式将响应发送回jsp页面。

package controller;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.TextBean;

public class ChatController extends HttpServlet {


    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String text=request.getParameter("usertxt");
        TextBean txt=new TextBean();
        txt.setText(text);
        RequestDispatcher rd = request.getRequestDispatcher("textView.jsp");
        request.setAttribute("txt", (TextBean)txt);
        rd.forward(request, response);
    }
}

在jsp页面中,我们创建一个新的TextBean并将其设置为从servlet接收的值。然后使用bean中的getter方法将文本存储在字符串变量中,然后将其显示在textarea中。如果它是您想要的,请通过单击我答案左侧的右侧标记来解决问题。如果不是,请告诉我。快乐编码:)