我有一个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");
仍然无法正常工作
出于某种原因,我从以下位置更改了AJAX文件:
$('#resultado').text(responseText);
为:
$('#resultado').append(responseText);
它正确显示文本,但我不能使用追加。
答案 0 :(得分:2)
我认为您必须使用$.ajax()
或$.post()
,因为您也在发送数据。
另外,您的错误是使用html()
而非text()
jquery方法。因为html()
方法设置或返回所选元素的内容(innerHTML)。但是{{1} } method设置或返回所选元素的唯一文本内容。
text()
答案 1 :(得分:1)
将$
更改为response.setContentType("text/plain");