我正在制作一个能够计算公式中数字的应用程序。在HTML中,我把它放在:
<input type="text" size="20" id="number2" onblur="validate2()"
onFocus = "document.getElementById('msg2').innerHTML = ' '">
<br>
<div id = "message1"> </div>
我创建了一个首先验证数据的javascript,然后将它们插入到答案公式中:
function validate2() {
var idField2 = document.getElementById("number2");
var data2 = "number2=" + encodeURIComponent(idField2.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 = inserter2
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
;
req.send(data2);
}
function inserter2() {
if (req.readyState == 4) {
if (req.status == 200) {
var msg1 = req.responseText
if (msg1 == "") {
document.getElementById("message1").innerHTML = "<div style=\"color:red\">Zła nazwa</div>";
document.getElementById("org").value = ''
}
else
document.getElementById("org").value = msg2
}
}
}
这里的代码是将其发送为doGet:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("GET");
response.setContentType("text/html");
Writer out = response.getWriter();
String num2 = request.getParameter("number2");
System.out.println(num2);
String org = new String();
if(num2.matches("[\\p{Punct}\\d]+")) {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
try {
org = engine.eval(num2).toString() + " (" + request.getMethod() + ")";
} catch (Exception e) {
e.printStackTrace();
}
}
out.write(org != null ? org : "");
}
如果我们将所有这些内容更改为Post,则此代码将起作用,但现在与GET一样,它根本不起作用。另一个奇怪的情况是POST的公式可以读取公式中的书面内容,但是当我们使用GET时,程序将公式源视为null。
答案 0 :(得分:1)
如果您将其发送为get,则需要将公式放入请求中。这个表达式:
SELECT MIN(ActivationDate), MIN(RegistrationDate), MIN(CreationDate) from table name
发送GET请求时没有意义,因为GET请求除了请求字符串外不能包含任何有效负载。因此,您必须将负载添加到您的网址。像这样:
req.send(data2);
希望有所帮助。