getParameters 不断返回 null
getParameters keeps returning null
所以,我无法从客户端检索信息 jsp。 java 脚本执行,并打印警报,但是查询在 java servlet 中变为 null,然后将 null 写入记录器。我似乎无法弄清楚为什么查询现在为空。
HTML:
<div id="query">
<div id="querybar">
<form onsubmit="query();return false;" method="get">
<input type="text" id="querytext" placeholder="Run a query" name="querytext">
</form>
<div id="queryimg-container">
<img src="styles/magnifyingglass.png" id="queryimg" alt="" />
</div>
</div>
</div>
JS:
function query() {
$.get('QueryHelper', function(data) {
alert("Somesortofalert");
});
}
Java 小服务程序:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String query = request.getParameter("querytext");
response.setContentType("text/plain");
@SuppressWarnings("resource")
PrintWriter writer = response.getWriter();
sLogger.info(query);
}
谁能看出有什么问题吗?我在这里被难住了。
它将是 null
,因为没有使用该名称的参数随 Ajax 请求一起发送。
尽管由 onsubmit
事件启动,$.get()
没有任何关于 <form>
的自动知识。您可以使用 data
参数收集或指定要包含在请求中的任何参数。
$.get('QueryHelper', { querytext: 'foo bar' }, function (res) {
// ...
});
如果您有对 <form>
或其输入的引用,则可以使用 .serialize()
将字段的名称和值准备为 data
。
<form onsubmit="query(this); return false;" method="get">
<!-- ^^^^ -->
function query(form) {
// ^^^^
$.get('QueryHelper', $(form).serialize(), function (res) {
// ^^^^^^^^^^^^^^^^^^^
// ...
});
}
所以,我无法从客户端检索信息 jsp。 java 脚本执行,并打印警报,但是查询在 java servlet 中变为 null,然后将 null 写入记录器。我似乎无法弄清楚为什么查询现在为空。
HTML:
<div id="query">
<div id="querybar">
<form onsubmit="query();return false;" method="get">
<input type="text" id="querytext" placeholder="Run a query" name="querytext">
</form>
<div id="queryimg-container">
<img src="styles/magnifyingglass.png" id="queryimg" alt="" />
</div>
</div>
</div>
JS:
function query() {
$.get('QueryHelper', function(data) {
alert("Somesortofalert");
});
}
Java 小服务程序:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String query = request.getParameter("querytext");
response.setContentType("text/plain");
@SuppressWarnings("resource")
PrintWriter writer = response.getWriter();
sLogger.info(query);
}
谁能看出有什么问题吗?我在这里被难住了。
它将是 null
,因为没有使用该名称的参数随 Ajax 请求一起发送。
尽管由 onsubmit
事件启动,$.get()
没有任何关于 <form>
的自动知识。您可以使用 data
参数收集或指定要包含在请求中的任何参数。
$.get('QueryHelper', { querytext: 'foo bar' }, function (res) {
// ...
});
如果您有对 <form>
或其输入的引用,则可以使用 .serialize()
将字段的名称和值准备为 data
。
<form onsubmit="query(this); return false;" method="get">
<!-- ^^^^ -->
function query(form) {
// ^^^^
$.get('QueryHelper', $(form).serialize(), function (res) {
// ^^^^^^^^^^^^^^^^^^^
// ...
});
}