在Java字符串

时间:2015-11-09 16:32:03

标签: java html forms jsp servlets

我有以下表格:

<form method="post" action="./Contact">
    <input type="text" name="Problem"><br>
    <textarea name="message"></textarea>
    <input type="submit" value="Send Problem">
</form>

进入联系Servlet代码:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String b = request.getParameter("Problem");
        String a = request.getParameter("message");
        request.setAttribute("message", a);
        request.setAttribute("problem", b);
        request.getRequestDispatcher("./index.jsp").forward(request, response);
    }

只是测试消息,进入index.jsp代码:

<p> Problem: ${problem}</p>
<p> Message: ${message}</p>

它正在工作,但是我遇到了问题,如果写的信息是: &#34;这是一条消息;

这是一条新的信息。

我打破了界限。&#34;

打印的信息将是: &#34;这是一条信息;这是一条新的信息。我打破了这一行。&#34;

如何使用String从textarea消息中获取写入的换行符?

1 个答案:

答案 0 :(得分:0)

像这样使用StringBuffer

 protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    String b = request.getParameter("Problem");
   // String a = request.getParameter("message");

    StringBuffer text = new StringBuffer(request.getParameter("message"));

    int loc = (new String(text)).indexOf('\n');
    while(loc > 0){
        text.replace(loc, loc+1, "<BR>");
        loc = (new String(text)).indexOf('\n');
   }

    request.setAttribute("message", text);
    request.setAttribute("problem", b);
    request.getRequestDispatcher("./index.jsp").forward(request, response);
}