したがって、index.htmlページを持つjavaサーブレットを作成しました。私はEclipseからTomcatサーバーを実行していて、クロムブラウザーは<h3>Adwords API</h3>
の後にレンダリングされません。Eclipseタブでレンダリングされています。 (私はキャッシュをクリアしようとしましたが、使用しませんでした)。 ここには日食の画像があります:https://postimg.org/image/cvyroei2j/ ここはクロムの画像です:https://postimg.org/image/x08sxijlv/ htmlとjavascriptコードの関連部分のみを掲載しました。サーブレットのgetParameterがnullを返し、クロムブラウザが正しくWebページを表示しない
その他の問題は、getParameter()が常にnullを返すことです。ここに私のコードは次のとおりです。
<div class="container" id="adcontainer">
<h3 id="heading">Adwords API</h3>
<form method="post" id="keywordsForm" enctype="multipart/form-data">
<div class="row">
<div class="col-md-8">
<div class="form-group row">
<label for="ads" class="control-label col-xs-3">Enter Keywords:</label>
<div class="col-xs-9">
<textarea class="form-control" rows="4" id="ads" name="keywords"></textarea>
</div>
</div>
</div>
<div class="col-md-4"></div>
</div>
<div class="row">
<div class ="col-md-8">
<div class="form-group row">
<label for="inputURL" class="control-label col-xs-3">Landing Page URL:</label>
<div class="col-xs-9">
<input type="text" class="form-control" id="inputURL" placeholder="rockauto.com">
</div>
</div>
</div>
<div class="col-md-4"></div>
</div>
<div class="row">
<div class ="col-md-8">
<div class="form-group row">
<label for="category" class="control-label col-xs-3">Category:</label>
<div class="col-xs-9">
<input type="text" class="form-control" id="category" placeholder="Auto Parts">
</div>
</div>
</div>
<div class="col-md-4"></div>
</div>
<div class="row">
<div class ="col-md-8">
<div class="form-group row">
<label for="location" class="control-label col-xs-3">Location:</label>
<div class="col-xs-9">
<input type="text" class="form-control" id="location" placeholder="Canada">
</div>
</div>
</div>
<div class="col-md-4">
<button type="submit" class="btn btn-primary" onclick="return keyData();" id="ads_button">Extract</button>
</div>
</div>
</form>
</div>
<script type="text/javascript" src="js/updatePage.js"></script>
Javascriptを:
function keyData(){
if(window.XMLHttpRequest) { //Assuming you're not on one of the old IEs.
console.log("Hi!");
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange=function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
console.log((xhttp.responseText)); // function to add data to table.
}
}
xhttp.open("POST","/cmstoolweb/AdwordsServlet",false);
var formData = new FormData(document.getElementById('keywordsForm'));
xhttp.send(formData);
}
else console.log('not working');
return false;
}
サーブレット:
package ca.partsavatar.web;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class AdwordsServlet
*/
@WebServlet("/AdwordsServlet")
@MultipartConfig
public class AdwordsServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AdwordsServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String adwords = request.getParameter("keywords");
System.out.println(adwords); //always returnung NULL
}
}
ありがとうございました。
ブラウザのネットワークリクエストで特定の投稿リクエストにリクエストヘッダの内容を投稿できますか? –
Adwords API見出しの下にクロームが表示されないため、ボタンをクリックしてデータを送信できません。 – Nihhaar
私はhtmlファイルで必要な部分に質問を編集しました。この部分はクロムによって表示されていませんが、eclipseタグに表示されます – Nihhaar