如何在html中打印servlet?

时间:2017-01-28 10:26:25

标签: java jquery ajax jsp servlets

我有一个jsp页面, index ,这是它的代码:

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="alteraSala.js"></script>
<div id="conteudo">
    <select id="sala">
        ...
    </select>
    <div id="resultado"></div>
</div>

我的servlet类似于:

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/hello")
public class Hello extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

        response.setContentType("text/plain");
        response.setCharacterEncoding("UTF-8");

        PrintWriter out = response.getWriter();  
        out.println("<b>HELLO</b>");
    }
}

我还有一个AJAX文件:

$(document).ready(function () {
    $('#sala').change(function (event) {
        var name = $('#sala').val();
        $.get('../EditarSala', {
            sala: name
        }, function (responseText) {
            $('#resultado').text(responseText);
        });
    });
});

问题是页面的输出不是: 的 HELLO 它的: &LT b取代; HELLO&LT; / B个

编辑:

更改:

response.setContentType("text/plain");

为:

response.setContentType("text/html");

仍然无法正常工作

编辑2:

出于某种原因,我从以下位置更改了AJAX文件:

$('#resultado').text(responseText);

为:

$('#resultado').append(responseText);

它正确显示文本,但我不能使用追加。

2 个答案:

答案 0 :(得分:2)

我认为您必须使用$.ajax()$.post(),因为您也在发送数据。

另外,您的错误是使用html()而非text() jquery方法。因为html()方法设置或返回所选元素的内容(innerHTML)。但是{{1} } method设置或返回所选元素的唯一文本内容。

text()

答案 1 :(得分:1)

$更改为response.setContentType("text/plain");