jsp中javascript的alert内容无法显示

chenjie19891104 2009-08-15 09:50:10
下面是一段验证login.jsp提交的信息的CheckLogin.jsp页面的核心代码:
填写正确则跳转到success.jsp页面,错误则输出错误信息(javascript来实现,但无法显示),并跳转到login页面。
但现在,正确则跳转到succes.jsp页面,而错误时,直跳转到login.jsp页面,但没有提示错误信息。<%@ page contentType="text/html; charset=gb2312" language="java" import="javabean.CheckLogin" errorPage="" %>
<%@ page import="java.util.Date"%>
<%!//处理中文字符串
public String codeString(String st){
String result=st;
try{
byte b[]=result.getBytes("ISO-8859-1");
result=new String(b);
return result;
}catch(Exception e){
return result;
}
}
%>
<jsp:useBean id="loginBean" class="javabean.CheckLogin" scope="session"></jsp:useBean>
<%//提交信息后,验证正不正确
String message="",
logname="",
password="";
logname=request.getParameter("name");
password=request.getParameter("password");
if(logname==null||password==null)
response.sendRedirect("login.jsp");
//处理中文
logname=codeString(logname);
password=codeString(password);
/*<jsp:setProperty name="login" property="logname" value="<%=logname%>"/>
//<jsp:setProperty name="login" property="password" value="<%=password%>"/>
*/
out.println("测试1");
if(loginBean.isValidUser(logname,password)){
//取得系统时间建立访问日期子串
String logindate;
Date now=new Date();
logindate=(now.getYear()+1900)+"/"+(now.getMonth()+1)+"/"+now.getDate();
//将信息记录在Cookie中
Cookie cousername=new Cookie("logname",logname);
Cookie cologdate=new Cookie("logdate",logindate);
//将Cookie的时间定为一周
int time=7*24*60*60;
cousername.setMaxAge(time);
cologdate.setMaxAge(time);
//将Cookie加入Cookie中
response.addCookie(cousername);
response.addCookie(cologdate);
response.sendRedirect("success.jsp"); }
%>
<script language="javascript">
alert('登陆失败');
javascript:history.go(-1);
</script>
...全文
1169 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ddyouyue 2009-08-15
  • 打赏
  • 举报
回复
首先你要了解一下response.sendRedirect(),他是通过设置http状态来实现的,当执行到response.sendRedirect()是他将停止网客户端流输入数据,而是直接执行跳转。因此response.sendRedirect()后面的数据是不会到达客户端的。
response.sendRedirect("success.jsp"); 的效果等同于
response.sendRedirect("success.jsp"); return;
zhaoyunrui 2009-08-15
  • 打赏
  • 举报
回复

刚刚写错词了
<script>
alert('登录失败!');
document.location="login.jsp"
</script>
zhaoyunrui 2009-08-15
  • 打赏
  • 举报
回复


<script>
alter('登录失败!');
document.location="login.jsp"
</script>
chenjie19891104 2009-08-15
  • 打赏
  • 举报
回复
刚刚又在html里加了单独的一个javascript代码,什么都不判断只完成输出alert里的内容。
结果还是没有任何反应。是不是和浏览器有关???
chenjie19891104 2009-08-15
  • 打赏
  • 举报
回复
刚刚试了,还是一个样子。没有输出alert中的内容,刚刚想了个最笨的办法,重新做一张登陆失败的页面,就是在原来的login页面上面加上一句错误信息。

但,这个问题我还是想弄明白,否则睡不着觉!
快乐的2 2009-08-15
  • 打赏
  • 举报
回复
不会啊,我刚测试了下,JAVASCRIPT可以使用啊。是不是你上面的NULL判断起作用了,导致没有输出JS???
wanglinliang 2009-08-15
  • 打赏
  • 举报
回复
路过,学习了
淡定的峰哥 2009-08-15
  • 打赏
  • 举报
回复
其实也能做得到
只是会有刷新的感觉
具体思路是
在login.jsp页面接收一个参数

<%
String flag = (String)request.getAttribute("flag");
%>

然后js代码

var flag = '<%=flag%>';
if(flag !='null' && flag == '1'){
alert('登陆失败');
}

在CheckLogin.jsp页面的else代码里面

else{
request.setAttribute("flag","1");
response.sendRedirect("login.jsp");
}
chenjie19891104 2009-08-15
  • 打赏
  • 举报
回复
难道用javascript就无法实现这样的功能???
淡定的峰哥 2009-08-15
  • 打赏
  • 举报
回复
你在验证页面的alert当然不会弹出来(其实已经弹了,但接着又跳回到login.jsp了,你当然看不到)
你想要达到这样的效果要用ajax
YY_MM_DD 2009-08-15
  • 打赏
  • 举报
回复
应该转到CheckLogin.jsp就会弹出来吧...
ddyouyue 2009-08-15
  • 打赏
  • 举报
回复
建议改一下跳转语句,也用javascript来实现,window.location.href="login.jsp";

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧