私はjspファイルをGoogleマップで作成し、オートコンプリートといくつかのボタンを配置します。送信ボタンクリックはJavascriptのメソッドを呼び出します。このメソッドは、jspページの入力データをcallServlet()メソッドに 'params'として渡します。私はサーブレットページMyServletを呼び出して、それにパラメータを渡したいと思います。しかし、私のcallServlet()は完全に実行されますが、MyServletにコントロール/パラメータを渡すことはありません。 また、MyServletのparamsを読み取る方法は?javascriptからサーブレットへの値渡しと制御
私はそれを解決するのを手伝ってください。
JSコード:
function callServlet(params) {
var xmlhttp = new XMLHttpRequest();
var url = "./mapServlet";
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else
{// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
console.log(url);
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
console.log("Its perfect");
} else {
alert(xmlhttp.status);
}
}
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-Length", params.length); // POST request MUST have a Content-Length header (as per HTTP/1.1)
// params is of json format with key value pairs
xmlhttp.send(params);
}
サーブレットコード:(このページへの変更を加えていないシンプルなサーブレットテンプレート)
public class MyServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { ... }
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.print("aaas");
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
web.xmlの
<servlet>
<servlet-name>mapServlet</servlet-name>
<servlet-class>MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>mapServlet</servlet-name>
<url-pattern>/mapServlet</url-pattern>
</servlet-mapping>
私はjQueryソリューションを認識していません。あなたはそれを投稿できますか? URLの他にも正しいのです。と私はパラメータとしてjsonなしでこのソリューションを試してみます –
私はjQuery.postの例で私の答えを更新しました。 –
jqueryは、MyServletを通過した後にコンソール上のJSP pgを表示しますが、jspページをブラウザにロードしません。 –