<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@page import="com.bwm.page.Show"%>
<%@page import="com.bwm.string.Str"%>
<%@page import="com.bwm.db.Data"%>
<%request.setCharacterEncoding("gb2312");%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";String user = (String)session.getAttribute("use");
if(session.getAttribute("name") == null || user == null || (!user.equals("student")))
{
//out.println("<center><font size = 5 color = blue>请先登录,谢谢!");
    //out.println("<br>经2秒后,网页自动回到主页面!</font></center>");
    //response.setHeader("refresh","2;URL=../index.jsp");
}
response.setHeader("Cache-Control","no-cache"); 
response.setHeader("Pragma","no-cache"); 
response.setDateHeader ("Expires", 0); 
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>修改学生数据之初步</title>
    <script type="text/javascript" src="../js/md5.js"></script>
  </head>
  
<body>
<jsp:useBean id="student" class="job.Student"></jsp:useBean>
<jsp:setProperty name="student" property="*"/>
<% 
Str str = new Str();
Show show = new Show();
student.setBirthday(str.dbEncode(student.getBirthday()));
student.setEmail(str.dbEncode(student.getEmail()));
student.setKnowledge(str.dbEncode(student.getKnowledge()));
student.setName(str.dbEncode(student.getName()));
student.setPassword(str.dbEncode(student.getPassword()));
student.setResume(str.dbEncode(student.getResume()));
student.setRpassword(str.dbEncode(student.getRpassword()));
student.setSchool(str.dbEncode(student.getSchool()));
student.setSname(str.dbEncode(student.getSname()));
student.setSpecialty(str.dbEncode(student.getSpecialty()));
student.setSex(str.dbEncode(student.getSex()));
student.setAge(str.dbEncode(student.getAge()));

if(student.getName().equals("") || student.getPassword().equals("") || student.getRpassword().equals("") || student.getEmail().equals("") || student.getBirthday().equals(""))
{
out.print(show.errorBox("请填写完整信息!","错误信息"));
return;
}else{
System.out.println("第一次密码为:" + student.getPassword());
System.out.println("第二次密码为:" + student.getRpassword());
System.out.println("真值为:" + !student.getPassword().equals(student.getRpassword()));
if(!student.getPassword().equals(student.getRpassword()))
{
out.print(show.errorBox("两次密码不一致!","注册信息"));
return;
}else{
int intT = 0;
Data data = new Data();
String sql = "UPDATE tb_student SET password='" + student.getPassword() + "',name='" + student.getName() + "',age=" + student.getAge() + ",sex=" + student.getSex() + ",birthday='" + student.getBirthday() + "',school='" + student.getSchool() + "',specialty='" + student.getSpecialty() + "',knowledge='" + student.getKnowledge() + "',email='" + student.getEmail() + "',resume='" + student.getResume() + "' WHERE sname='" + student.getSname() + "'";
System.out.println(sql);
intT = data.update(sql);

if(intT <= 0)
{
out.print(show.errorBox("修改注册失败,数据库错误!","错误信息"));
return;
}else{
%>
<form name="insertForm2" method="post" action="mregInfoMd5.jsp">
<input type="hidden" name="passwordmd5" value="">
<input type="hidden" name="sname" value="<%=student.getSname() %>">
<input type="hidden" name="password" value="<%=student.getPassword()%>">
</form>
<script type="text/javascript" language="javascript">
<!--
var a = "<%=student.getPassword() %>";
var pasword = MD5(a);
alert("pasword");
document.all.passwordmd5.value = pasword;
document.insertForm2.submit();
//-->
</script>
<% 
System.out.print("sedse");
}

}
}
%>
</body>
</html>
-----------------------------------------------------------------------------------
浏览器左下方:感叹号提示:行:29
Char :3
错误;缺少对象
代码:0
URL:http://localhost:8080/Myjob/student/mregInfo.jsp
------------------------------------------------------
以上代码中,我觉得jsp部分没有问题的.我找不到问题出在哪? 别的页面我用了相同的javascript代码是可以的.
不知道这里为什么? 也找不到具体是哪里错了.

解决方案 »

  1.   

    跟jsp没有关系,那是javascript的错误,打开网页后,查看源代码,找到对应位置就知道什么问题了。
      

  2.   

    var pasword = MD5(a);//此句提示缺少对象。我不知道为什么/?????我找不出来,谢谢!谢谢!
      

  3.   

    <script type="text/javascript" src="../js/md5.js"> </script> 
    引的外部文件
    路径应该没有问题,因为我在别的页面用的,是可以的.
      

  4.   

    用firefox浏览器,用firebug跟踪一下javascript脚本
      

  5.   

    ../js/md5.js中内容如下:
    /* MD5 Message-Digest Algorithm - JavaScript*/ 
    function MD5(sMessage)
     { 
    function RotateLeft(lValue, iShiftBits)
     {  
      return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));  
     } 
    function AddUnsigned(lX,lY)
     { 
      var lX4,lY4,lX8,lY8,lResult; 
      lX8 = (lX & 0x80000000); 
      lY8 = (lY & 0x80000000); 
      lX4 = (lX & 0x40000000); 
      lY4 = (lY & 0x40000000); 
      lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF); 
      if (lX4 & lY4) return (lResult ^ 0x80000000 ^ lX8 ^ lY8); 
      if (lX4 | lY4)
       { 
       if (lResult & 0x40000000) return (lResult ^ 0xC0000000 ^ lX8 ^ lY8); 
       else return (lResult ^ 0x40000000 ^ lX8 ^ lY8); 
       } 
      else return (lResult ^ lX8 ^ lY8); 

    function F(x,y,z) { return (x & y) | ((~x) & z); } 
    function G(x,y,z) { return (x & z) | (y & (~z)); } 
    function H(x,y,z) { return (x ^ y ^ z); } 
    function I(x,y,z) { return (y ^ (x | (~z))); } 
    function FF(a,b,c,d,x,s,ac)
     { 
      a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac)); 
      return AddUnsigned(RotateLeft(a, s), b); 
     } 
    function GG(a,b,c,d,x,s,ac)
     { 
      a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac)); 
      return AddUnsigned(RotateLeft(a, s), b); 
     } 
    function HH(a,b,c,d,x,s,ac) 
     { 
      a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac)); 
      return AddUnsigned(RotateLeft(a, s), b); 
     } 
    function II(a,b,c,d,x,s,ac) 
     { 
      a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac)); 
      return AddUnsigned(RotateLeft(a, s), b); 
     } 
    function ConvertToWordArray(sMessage) 
     { 
      var lWordCount; 
      var lMessageLength = sMessage.length; 
      var lNumberOfWords_temp1=lMessageLength + 8; 
      var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64; 
      var lNumberOfWords = (lNumberOfWords_temp2+1)*16; 
      var lWordArray=Array(lNumberOfWords-1); 
      var lBytePosition = 0; 
      var lByteCount = 0; 
      while ( lByteCount < lMessageLength ) 
      { 
       lWordCount = (lByteCount-(lByteCount % 4))/4; 
       lBytePosition = (lByteCount % 4)*8; 
       lWordArray[lWordCount] = (lWordArray[lWordCount] | (sMessage.charCodeAt(lByteCount)<<lBytePosition)); 
       lByteCount++; 
      } 
      lWordCount = (lByteCount-(lByteCount % 4))/4; 
      lBytePosition = (lByteCount % 4)*8; 
      lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition); 
      lWordArray[lNumberOfWords-2] = lMessageLength<<3; 
      lWordArray[lNumberOfWords-1] = lMessageLength>>>29; 
      return lWordArray; 
     } 
    function WordToHex(lValue)
     { 
      var WordToHexValue="",WordToHexValue_temp="",lByte,lCount; 
      for (lCount = 0;lCount<=3;lCount++) { 
       lByte = (lValue>>>(lCount*8)) & 255; 
       WordToHexValue_temp = "0" + lByte.toString(16); 
       WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2); 
      } 
      return WordToHexValue; 
     } 
        var x=Array(); 
        var k,AA,BB,CC,DD,a,b,c,d 
        var S11=7, S12=12, S13=17, S14=22; 
        var S21=5, S22=9 , S23=14, S24=20; 
        var S31=4, S32=11, S33=16, S34=23; 
        var S41=6, S42=10, S43=15, S44=21; 
        // Steps 1 and 2.  Append padding bits and length and convert to words 
        x = ConvertToWordArray(sMessage); 
        // Step 3.  Initialise 
        a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476; 
        // Step 4.  Process the message in 16-word blocks 
        for (k=0;k<x.length;k+=16) 

            AA=a; BB=b; CC=c; DD=d; 
            a=FF(a,b,c,d,x[k+0], S11,0xD76AA478); 
            d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756); 
            c=FF(c,d,a,b,x[k+2], S13,0x242070DB); 
            b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE); 
            a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF); 
            d=FF(d,a,b,c,x[k+5], S12,0x4787C62A); 
            c=FF(c,d,a,b,x[k+6], S13,0xA8304613); 
            b=FF(b,c,d,a,x[k+7], S14,0xFD469501); 
            a=FF(a,b,c,d,x[k+8], S11,0x698098D8); 
            d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF); 
            c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1); 
            b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE); 
            a=FF(a,b,c,d,x[k+12],S11,0x6B901122); 
            d=FF(d,a,b,c,x[k+13],S12,0xFD987193); 
            c=FF(c,d,a,b,x[k+14],S13,0xA679438E); 
            b=FF(b,c,d,a,x[k+15],S14,0x49B40821); 

            a=GG(a,b,c,d,x[k+1], S21,0xF61E2562); 
            d=GG(d,a,b,c,x[k+6], S22,0xC040B340); 
            c=GG(c,d,a,b,x[k+11],S23,0x265E5A51); 
            b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA); 
            a=GG(a,b,c,d,x[k+5], S21,0xD62F105D); 
            d=GG(d,a,b,c,x[k+10],S22,0x2441453); 
            c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681); 
            b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8); 
            a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6); 
            d=GG(d,a,b,c,x[k+14],S22,0xC33707D6); 
            c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87); 
            b=GG(b,c,d,a,x[k+8], S24,0x455A14ED); 
            a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905); 
            d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8); 
            c=GG(c,d,a,b,x[k+7], S23,0x676F02D9); 
            b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A); 

            a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942); 
            d=HH(d,a,b,c,x[k+8], S32,0x8771F681); 
            c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122); 
            b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C); 
            a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44); 
            d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9); 
            c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60); 
            b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70); 
            a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6); 
            d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA); 
            c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085); 
            b=HH(b,c,d,a,x[k+6], S34,0x4881D05); 
            a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039); 
            d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5); 
            c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8); 
            b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665); 

            a=II(a,b,c,d,x[k+0], S41,0xF4292244); 
            d=II(d,a,b,c,x[k+7], S42,0x432AFF97); 
            c=II(c,d,a,b,x[k+14],S43,0xAB9423A7); 
            b=II(b,c,d,a,x[k+5], S44,0xFC93A039); 
            a=II(a,b,c,d,x[k+12],S41,0x655B59C3); 
            d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92); 
            c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D); 
            b=II(b,c,d,a,x[k+1], S44,0x85845DD1); 
            a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F); 
            d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0); 
            c=II(c,d,a,b,x[k+6], S43,0xA3014314); 
            b=II(b,c,d,a,x[k+13],S44,0x4E0811A1); 
            a=II(a,b,c,d,x[k+4], S41,0xF7537E82); 
            d=II(d,a,b,c,x[k+11],S42,0xBD3AF235); 
            c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB); 
            b=II(b,c,d,a,x[k+9], S44,0xEB86D391); 
            a=AddUnsigned(a,AA); b=AddUnsigned(b,BB); c=AddUnsigned(c,CC); d=AddUnsigned(d,DD); 
        } 
        // Step 5.  Output the 128 bit digest 
        var temp= WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d); 
        return temp.toLowerCase(); 
      

  6.   

    var a = " <%=student.getPassword() %>"; 
    定义了啊.
      

  7.   

    你把student.getPassword()输出来看,是否为空
      

  8.   

    已经解决!<script type="text/javascript" src="../js/md5.js"> </script> 
    应该为src="js/md5.js"虽然我不明白为什么这路径倒是对了,上面那个却不对,不知道为什么.
    明明是在本页面是在student文件夹下,而md5.js在js文件夹下.两个文件夹同级且都在项目名下.不知道为什么????不明白????