两页面的关系:1.htm页面一加载时就用ajax方式调用isLogin.jsp来检测用户是否已登陆。问题:在1.htm页面里ajax无刷新登陆,登陆成功后,用户名替换掉输入框,这时刷新1.htm页面怎么又变回登陆前的输入框了???//以下是isLogin.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String username = (String)session.getAttribute("user");
System.out.println(username); //第一次加载1.htm页面时打印出了用户名。ajax登陆成功后,手动刷新页面,后台就没打印用户名。
if(username == null){
out.print(0);
}else{
out.print("欢迎:<span style='color:red'>" + username + "</span> <a href='user.do?method=logout'>退出</a>");
}
%>
//以下是1.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>login</title>
<script language="javascript">
//ajax初始化
var request = false;
try{
request = new XMLHttpRequest();
}catch(microsoftIE){
try{
request = new ActiveXObject("Msxml2.XMLHTTP");
}catch(microsoftOldIE){
try{
request = new ActiveXObject("Microsoft.XMLHTTP");
}catch(failed){
request = false;
}
}
}
if(!request){
alert("初始化XMLHttpRequest对象失败");
}
//下面是ajax方式检测用户是否已登陆
function ifLoginRequest(){
var url = "ifLogin.jsp";
request.open("get",url,true);
request.onreadystatechange = updatepage;
request.send(null);
}
function updatepage(){
if(request.readyState==4){
if(request.status==200){
var user = request.responseText;
if(user == 0){
alert("您还没登陆"); //每次手动刷新页面这里都被执行了
}else{
document.getElementById("form1").innerHTML = request.responseText;
}
}else if(request.status==404){
alert("找不到页面!");
}else{
alert("错误代码:"+request.status);
}
}
} //下面是ajax方式登陆请求
function loginRequest(){
var username = form1.username.value;
var password = form1.password.value;
var url = "user.do?method=login&username=" + username + "&password=" +password;
request.open("get",url,true);
request.onreadystatechange = updatepage2;
request.send(null);
}
function updatepage2(){
if(request.readyState==4){
if(request.status==200){
var str = request.responseText;
if(str == "loginFail"){
alert("登陆失败!");
}else{
document.getElementById("form1").innerHTML = request.responseText;
}
}else if(request.status==404){
alert("找不到页面!");
}else{
alert("错误代码:"+request.status);
}
}
}
</script>
</head>
<body onload="ifLoginRequest()">
<center>
<form name="form1" id="form1" action="login.do" method="post" style="display:inline">
用户名:<input type="text" name="username" size="10">
密码:<input type="password" name="password" size="10">
<input type="button" value="登陆" onClick="loginRequest()">
</form>
</center>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String username = (String)session.getAttribute("user");
System.out.println(username); //第一次加载1.htm页面时打印出了用户名。ajax登陆成功后,手动刷新页面,后台就没打印用户名。
if(username == null){
out.print(0);
}else{
out.print("欢迎:<span style='color:red'>" + username + "</span> <a href='user.do?method=logout'>退出</a>");
}
%>
//以下是1.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>login</title>
<script language="javascript">
//ajax初始化
var request = false;
try{
request = new XMLHttpRequest();
}catch(microsoftIE){
try{
request = new ActiveXObject("Msxml2.XMLHTTP");
}catch(microsoftOldIE){
try{
request = new ActiveXObject("Microsoft.XMLHTTP");
}catch(failed){
request = false;
}
}
}
if(!request){
alert("初始化XMLHttpRequest对象失败");
}
//下面是ajax方式检测用户是否已登陆
function ifLoginRequest(){
var url = "ifLogin.jsp";
request.open("get",url,true);
request.onreadystatechange = updatepage;
request.send(null);
}
function updatepage(){
if(request.readyState==4){
if(request.status==200){
var user = request.responseText;
if(user == 0){
alert("您还没登陆"); //每次手动刷新页面这里都被执行了
}else{
document.getElementById("form1").innerHTML = request.responseText;
}
}else if(request.status==404){
alert("找不到页面!");
}else{
alert("错误代码:"+request.status);
}
}
} //下面是ajax方式登陆请求
function loginRequest(){
var username = form1.username.value;
var password = form1.password.value;
var url = "user.do?method=login&username=" + username + "&password=" +password;
request.open("get",url,true);
request.onreadystatechange = updatepage2;
request.send(null);
}
function updatepage2(){
if(request.readyState==4){
if(request.status==200){
var str = request.responseText;
if(str == "loginFail"){
alert("登陆失败!");
}else{
document.getElementById("form1").innerHTML = request.responseText;
}
}else if(request.status==404){
alert("找不到页面!");
}else{
alert("错误代码:"+request.status);
}
}
}
</script>
</head>
<body onload="ifLoginRequest()">
<center>
<form name="form1" id="form1" action="login.do" method="post" style="display:inline">
用户名:<input type="text" name="username" size="10">
密码:<input type="password" name="password" size="10">
<input type="button" value="登陆" onClick="loginRequest()">
</form>
</center>
</body>
</html>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货