首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

JSP bug求解,该怎么处理

2013-04-05 
JSP bug求解下面是验证登录的jsp代码,测试结果是这样的,若用户名密码输入不正确,验证码不正确它会弹出aler

JSP bug求解
下面是验证登录的jsp代码,测试结果是这样的,若用户名密码输入不正确,验证码不正确它会弹出alert("输入的验证码错误!");若用户名密码输入正确,验证码不正确  就直接跳转到index.jsp页面了,为什么不执行验证码判断部分了啊。

<%@ page language="java" import="java.util.*,usr.*" pageEncoding="GB2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>用户验证</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

  </head>
  
  <body>
  <%
  String usr = request.getParameter("usr");
  String pwd = request.getParameter("pwd");
  
  String u_code = request.getParameter("v_code").toString().trim();
  String s_code = session.getAttribute("s_code").toString().trim();
  //out.print(u_code);out.print(s_code);
  if(!u_code.equals(s_code))
  {
  %>
  <script language="javascript">
<!-- 
alert("输入的验证码错误!");
window.location="Login.jsp";
-->
</script>
  <%
  }
  
  usr u = new usr(usr.trim(),pwd.trim());
Boolean flag = usrDAO.checkUsr(u);
  out.print(flag);out.print(usr);out.print(pwd);
  if(flag)
  {
  session.setAttribute("usr",u.getUsername());
  response.sendRedirect("index.jsp");
  }
  else
  {
  %>
  <script language="javascript">
<!-- 
alert("用户名或密码错误!");
window.location="Login.jsp";
-->
</script>
  <%
  }
   %>
    <p><br/></p>This is my JSP page. <br>
  </body>
</html>

[解决办法]
其实页面弹出了验证码错误的提示  只是同时执行了response.sendRedirect("index.jsp");

alert只会阻止js代码往下执行   但是不会阻止java代码

建议吧代码结构改成:
if(!u_code.equals(s_code)){
// 验证码错误处理
}else{
 // 如果验证码正确 则判断用户名
 if(用户名和密码是否正确){
  // 用户名验证通过处理
 }else{
  // 用户名验证错误处理
 }
}
  

热点排行