<input type="text" name="username" id="username"/>**用户名输入框**
<input type="button" class="buttontype2" id="login" value="登录" onclick="checkUser();" />**这是一个登陆按钮,触发checkUser()方法**
function checkUser(){
var username = $("#username").val();
var password = $("#password").val();
$.ajax({
type: "post",
url: "logincheck",
data: "username"+username+"password"+password,
success: function(data){
username = "<%=Session("username")%>";
alert(username);
}
});
}
**js部分,因为我才刚刚接触!弄不懂,我只知道,这个$.ajax()方法会向服务器提交username和password,然后servlet与数据库进行处理**
# servlet
request.setCharacterEncoding("utf-8");
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String un = request.getParameter("username");
String pd = request.getParameter("password");
userCheck uc = new userCheck();
String res = uc.getUser(un,pd);
if(!res.equals("userwrong") && !res.equals("passwordwrong"))
{
request.getSession().setAttribute("username", res);
}
**获得的验证的username保存到session中**
大神能不能和我详细说一下$.ajax()这个方法,怎么发送数据到服务器,还有怎么在这个方法里取回服务器的数据(username)
首先解释下。 session是 服务端执行的。success是在浏览器端执行的。所以你直接在success里面取session的值是没用的。
整个的执行过程是 浏览器$AJAX发起请求->Web容器收到请求,响应->浏览器接收到响应数据。执行success
响应数据在success:function(data){} 的data里面。
要给前台响应数据你需要用response进行响应。
response.setContentType("application/json; charset=utf-8");
response.setCharacterEncoding("utf-8");
response.getWriter().write(json);
response.getWriter().flush();
response.getWriter().close();
用户名:
密码:
这是html部分
<input type="button" class="buttontype2" id="login" value="登录" onclick="checkUser();"
用户名:<input type="text" name="username" id="username"
为什么html显示不出来...
ajax里面的data{'username':username,'password':password},
接收request.getParameter("username");
用户名:
看看行不行
ajax提交就是和表单提交一样,只是ajax不会解析浏览器返回的script脚本,如果服务器端response.redirect跳转了,也不会控制浏览器跳转,而是继续请求跳转的页面,获取跳转页面的内容
点击插入代码片才能显示html,
ajax的data:{"username":username,"password":password}这样后台才能使用request.getParameter("username");得到,
至于怎么发送的,反正使用http方式,可以百度http的get和post发送方式