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) {
        //               ^^^^^^^^^^^^^^^^^^^

        // ...
    });
}