获取一个表单.jsp里面有 ajax 和一个参数



是否可以打印由 ajax 在索引中带来的 Servlet 给出的参数(带有 jstl.jsp.jsp ?

例如

索引.jsp

<div class='show'>
<div class='show-content'></div>
</div>
${name}

形式.jsp

<form action='servlet'>
${name}
//inputs and a button
</form>

奴仆.java

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String s = "Jean";
request.setAttribute("name", s);
this.getServletContext().getRequestDispatcher("index.jsp").forward(request, response);
}

脚本.js

function openContentFrom(tag, path){
var xhr = new XMLHttpRequest();
xhr.open("POST", path, true);
xhr.onreadystatechange = function(){
if (xhr.readyState === 4){
if (xhr.status === 200){
var txt = xhr.responseText;
var trueTxt = txt.substr(txt.indexOf("<" + tag + ">") + 6, txt.indexOf("</" + tag + ">"));
document.getElementsByClassName("show-content")["0"].innerHTML = trueTxt;
}
else{
console.log("Error : " + xhr.status);
}
}
};
xhr.send(this);
}
openContentFrom("body", "form.jsp");

所以在这里,一个脚本.js 将使用 ajax 调用时将 form 的内容.jsp show 内容带到索引中的 show-content 中.jsp如果 servlet 已经被执行,它将以 form.jsp 和 index.jsp 的形式打印 Jean。

目前,使用 get 和 post 是不可能的(当然.jsp它只是在索引上打印 Jean(,我想知道它是否是,因为我搜索过但还没有找到。

我想 servlet 中的请求内容被回发回索引.jsp那么我可以将其发送回表单吗.jsp

?谢谢!

你不需要返回表单

在您的 servlet 上删除这 2 行

request.setAttribute("name", s);
this.getServletContext().getRequestDispatcher("index.jsp").forward(request, response);

并添加

response.getWriter().write(s);

在你的阿贾克斯

xhr.onreadystatechange = function(s){
alert(s);
}

最新更新