如何使用 JavaScript 将参数 POST 给 Java Servlet?
这是我的 HTML 代码,它可以正常工作:
<div id="loginPanel">
<form action="/login" method="POST" class="form">
<label>Login:</label>
<input type="text" name="login" id="login">
<label>Password:</label>
<input type="text" name="password" id="password">
<div id="loginLower">
<input type="checkbox"><label memory="memory">Remember me</label>
<input type="submit" value="Login">
</div>
</form>
</div>
现在,我想要对密码进行哈希处理,并使用类似下面这样的代码将其POST到/login hashPassword:
<form onsubmit="post()">
<label>Login:</label>
<input type="text" name="login" id="login">
<label>Password:</label>
<input type="text" name="password" id="password">
<div id="loginLower">
<input type="checkbox"><label memory="memory">Remember me</label>
<input type="submit" value="Login">
</div>
</form>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/md5.js"></script>
<script>
function post(){
var passhash = CryptoJS.MD5(document.getElementById("password").value);
//post to /login login and passhash
}
</script>
我曾尝试使用AJAX和JQuery,但这些解决方案在/login方面存在问题,因为它们在浏览器中调用localhost:8080/?login,而我想调用Java Servlet:web.xml。
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>pl./*...*/.LogoutServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login/*</url-pattern>
</servlet-mapping>