【问题标题】:Can't get text area contents enclosed in <...> in servlet无法在 servlet 中获取包含在 <...> 中的文本区域内容
【发布时间】:2013-04-22 14:12:41
【问题描述】:

我在 HTML 页面中有一个带有 textarea 的表单,我正在尝试通过 POST 将其内容发送到 servlet。问题是,如果我在 textarea 中写类似 unenclosed &lt;enclosed&gt; 的内容,当我在 service 中调用 request.getParameter("textareaId")(其中 request 是一个 HttpServletRequest 对象)时() servlet 方法(扩展 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);
    }
}

谢谢!

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

【问题讨论】:

  • 您能否发布您的 HTML 页面、您的 servlet 代码并让我们知道您是否正在使用任何其他类型的 Web 框架代码?
  • 已编辑。我没有使用任何特殊的框架。

标签: java jsp jakarta-ee servlets


【解决方案1】:

这个index.jsp 在 Tomcat 6.0.35 上为我工作。我看到 &lt;&gt; 打印到控制台。

<%
    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 容器?

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

什么是默认字符编码(看不出这是个问题,因为&lt;&gt; 是常规 ASCII)?

【讨论】:

  • 我正在使用 Resin,但我不确定设置和字符编码。无论如何,我解决了它。感谢您的回答!
【解决方案2】:

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

【讨论】:

  • 我认为问题是关于从页面到 servlet 的数据。在这种情况下,用户不会在文本区域中输入 &amp;lt;&amp;gt;
  • 如果用户输入&amp;lt;,应该由request.getParameter返回,但是在输出到HTML时,它应该被转换为&amp;lt;
  • 如果我只放了,它可以正常工作,但是如果我放了<...>,它就会被删除,也许它认为它是一个标签或什么的......
  • 是的,试试&lt;b&gt;xxx&lt;/b&gt;。在 &lt;p&gt; 内部应该是 HTML,在 &lt;textarea&gt; 内部应该是 lt/gt 实体。
猜你喜欢
  • 2011-06-26
  • 1970-01-01
  • 2018-09-23
  • 2016-04-15
  • 2023-03-14
  • 2020-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多