我有以下表格:
<form method="post" action="./Contact">
<input type="text" name="Problem"><br>
<textarea name="message"></textarea>
<input type="submit" value="Send Problem">
</form>
Into Contact 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>
它正在工作,但我遇到了一个问题,如果书面信息是:"这是一条信息;
这是一条新的信息线。
我打破了界限。"
打印的信息将是:"这是一条信息;这是一行新的信息。我正在打破界限。"
使用字符串,我如何从文本区消息中获得换行符?
像这样使用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);
}