7.7 实例:登录


这是需要登录的代码,未登录的时候,显示两个输入框和登录按钮,如果已经登录,显示昵称和欢迎词,正常状态下是不显示的。昵称的div使用style="display: none"隐藏了起来。
这是登录按钮的login函数:

function login() {
//取得用户名和密码的值
var name = $("#username").val();
var psw = $("#password").val();

$.ajax({
//发送请求
type : "GET",
url : "AjaxServlet",
data : {
types : "login",
username : name,
password : psw
},
beforeSend : function(xmlHttp) {
xmlHttp.setRequestHeader("If-Modified-Since", "0");
xmlHttp.setRequestHeader("Cache-Control", "no-cache");
},
success : function(e) {
//成功后更新昵称,隐藏登录框,显示欢迎框
if (e != "") {
$("#nickname").html(e);
$("#login").fadeOut(2000);
$("#info").fadeIn(1000);
}else
alert("登录失败");
}
});

}


AjaxSevlet在上一节的基础上添加部分代码,变成这样:

public class AjaxServlet extends HttpServlet {

private static final long serialVersionUID = 6033791887340351355L;

public void doPost(HttpServletRequest request, HttpServletResponse response) {
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

IUserDao userDao = (IUserDao) SpringUtil.getBean("userDao",
this.getServletContext());

request.setCharacterEncoding("UTF-8");
// PrintWriter out = response.getWriter();
String type = request.getParameter("types");
if ("userVali".equals(type)) {
String userName = (String) request.getParameter("name");
response.setContentType("text/plain;charset=UTF-8");

// if (UserData.isExitUserName(userName)) {
if (userDao.isUsernameExist(userName)) {
response.getWriter().print("1");
} else {
response.getWriter().print("0");
}
} else if ("login".equals(type)) {
String username = (String) request.getParameter("username");
String password = (String) request.getParameter("password");

if (userDao.userValidate(username, password)){
String nickname=userDao.queryNickName(username);

response.getWriter().print(nickname);
}
else
response.getWriter().print("");
}

}
}

我们可以看到,添加了type为login的“入口”,于是这个AjaxServlet可以处理两种请求了。