3

我在 HTML 页面中有一个带有 textarea 的表单,我正在尝试通过 POST 将其内容发送到 servlet。问题是,如果我unenclosed <enclosed>在 textarea 中编写类似的内容,当我在 servlet(扩展HttpServlet )的service()request.getParameter("textareaId")方法中调用(其中requestHttpServletRequest对象)时,我只会得到“未封装”作为参数值。有什么方法可以获取 textarea 的完整内容吗?

html代码:

<form action="MyServlet" method="post">
    <textarea name="MyTextarea" rows="5" cols="50"></textarea>
</form>

小服务程序代码:

public class MyServlet extends HttpServlet {
    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String contents = request.getParameter("MyTextarea");
        System.out.println(contents);
    }
}

谢谢!

编辑:我通过在将其发送到 servlet 之前转义 JavaScript 函数中的 textarea 内容来解决它。

4

2 回答 2

1

index.jsp适用于我在 Tomcat 6.0.35 上。我看到<>打印到控制台。

<%
    String contents = request.getParameter("MyTextarea");
    System.out.println(contents);
%>
<form method="post">
    <textarea name="MyTextarea" rows="5" cols="50"></textarea>
    <input type=submit>
</form>

您使用的是什么 servlet 容器?

容器是否默认开启任何参数转义?

什么是默认字符编码(不能真正看到这是一个问题,<并且>是常规 ASCII)?

于 2013-04-22T15:16:22.447 回答
0

里面<textarea name="MyTextarea">...</textarea>应该使用&lt;and &gt;。这可以通过 apache common 的EscapeUtils.escapeHTML(我认为)来完成。这也适用于<input value="...">or in <a href="... .jsp?a=1&amp;b=2">: &amp; &lt; &gt; &quot; &apos;

于 2013-04-22T14:42:32.060 回答