无法获取< ...>中包含的文本区域内容在servlet中

时间:2013-04-22 14:12:41

标签: java jsp java-ee servlets

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

Html代码:

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

Servlet代码:

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

谢谢!

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

2 个答案:

答案 0 :(得分: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)?

答案 1 :(得分:0)

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