Ajax 使用 servlet - 我怎样才能制作 doGet?
Ajax with servlet - how can i manage to make doGet?
我在 Javascript 中有一个函数正在检查我的 servlet:
function validate() {
var idField = document.getElementById("name1");
var data = "name1=" + encodeURIComponent(idField.value);
if (typeof XMLHttpRequest != "undefined") {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
var url = "Validator"
req.open("POST", url, true);
req.onreadystatechange = inserter
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(data);
}
function inserter() {
if (req.readyState == 4) {
if (req.status == 200) {
var msg1 = req.responseText
if (msg1 == "") {
document.getElementById("msg").innerHTML = "<div style=\"color:red\">Wadliwa nazwa</div>";
document.getElementById("org").value = ''
}
else
document.getElementById("org").value = msg1
}
}
我发现:
说明
req.onreadystatechanged = inserter
设置负责处理服务器响应的函数。
如果服务器响应到达,将异步调用动态更改页面内容的插入器函数。
在我的 servlet 上,我从我的网站获取参数:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getParameter("name1"));
if(!request.getParameter("name1").equals("")) {
serviceConnection(request, response);
}
}
不幸的是,当我尝试做同样的事情时,但作为 doGet,我根本做不到...:[=17=]
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getParameter("name2"));
if(!request.getParameter("name2").equals("")) {
serviceConnection(request, response);
}
}
我试图将 ajax 的代码更改为:
var url = "Validator/?" + data2;
req.open("GET", url, true);
req.onreadystatechange = inserter2;
但是没用。
我怎么解决这个问题?
除了
,我还可以做些别的吗?
req.onreadystatechanged = inserter
to have a doGet function?
尝试使用此代码..我更正了它,因为您缺少右括号,它现在应该可以工作了..
function validate() {
var idField = document.getElementById("name1");
var data = "name1=" + encodeURIComponent(idField.value);
if (typeof XMLHttpRequest != "undefined") {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
var url = "Validator"
req.open("GET", url, true);
req.onreadystatechange = inserter
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(data);
}
function inserter() {
if (req.readyState == 4) {
if (req.status == 200) {
var msg1 = req.responseText
if (msg1 == "") {
document.getElementById("msg").innerHTML = "<div style=\"color:red\">Wadliwa nazwa</div>";
document.getElementById("org").value = '';
} else {
document.getElementById("org").value = msg1;
}
}
}
}
我在 Javascript 中有一个函数正在检查我的 servlet:
function validate() {
var idField = document.getElementById("name1");
var data = "name1=" + encodeURIComponent(idField.value);
if (typeof XMLHttpRequest != "undefined") {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
var url = "Validator"
req.open("POST", url, true);
req.onreadystatechange = inserter
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(data);
}
function inserter() {
if (req.readyState == 4) {
if (req.status == 200) {
var msg1 = req.responseText
if (msg1 == "") {
document.getElementById("msg").innerHTML = "<div style=\"color:red\">Wadliwa nazwa</div>";
document.getElementById("org").value = ''
}
else
document.getElementById("org").value = msg1
}
}
我发现: 说明
req.onreadystatechanged = inserter
设置负责处理服务器响应的函数。
如果服务器响应到达,将异步调用动态更改页面内容的插入器函数。
在我的 servlet 上,我从我的网站获取参数:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getParameter("name1"));
if(!request.getParameter("name1").equals("")) {
serviceConnection(request, response);
}
}
不幸的是,当我尝试做同样的事情时,但作为 doGet,我根本做不到...:[=17=]
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(request.getParameter("name2"));
if(!request.getParameter("name2").equals("")) {
serviceConnection(request, response);
}
}
我试图将 ajax 的代码更改为:
var url = "Validator/?" + data2;
req.open("GET", url, true);
req.onreadystatechange = inserter2;
但是没用。 我怎么解决这个问题? 除了
,我还可以做些别的吗?req.onreadystatechanged = inserter to have a doGet function?
尝试使用此代码..我更正了它,因为您缺少右括号,它现在应该可以工作了..
function validate() {
var idField = document.getElementById("name1");
var data = "name1=" + encodeURIComponent(idField.value);
if (typeof XMLHttpRequest != "undefined") {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
var url = "Validator"
req.open("GET", url, true);
req.onreadystatechange = inserter
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send(data);
}
function inserter() {
if (req.readyState == 4) {
if (req.status == 200) {
var msg1 = req.responseText
if (msg1 == "") {
document.getElementById("msg").innerHTML = "<div style=\"color:red\">Wadliwa nazwa</div>";
document.getElementById("org").value = '';
} else {
document.getElementById("org").value = msg1;
}
}
}
}