if (!(vpwd.equals(vpwdagain))){
returnMsg=returnMsg+"新密码和确认密码必须相同<br>";
returnMsg=returnMsg+"<br><a href='javascript:history.go(-1)'>返回重新填写</a>";
session.putValue("returnMsg",returnMsg);
response.sendRedirect("return.jsp");
return;
}
当对用户的信息进行检查完毕后,下面就可以对数据库进行操作了,我们可以用PreparedStatement类设置查询参数,因为查询语句中有参数,用statement类处理查询中包含参数的情况很不方便,而且PreparedStatement类却很容易解决这样的问题,只要用“?”代替,在用Setstring()方法设置参数值,再向数据库插入一条用户注册信息时,要产生一个无返回结果(NO Resultset)的例外,要想使它后面的输出能执行,而不是发生例外,就转到最后的catch语句,让这个例外被处理掉,这里所谓的例外处理实际上就是什么都不做,这样此例外处理实际上就是什么都不做,这样此例外被处理了,就会继续执行例外后面的程序了,下面是我的插入数据库源代码:
try {
stmt2 = conn.prepareStatement("insert into users(name,pwd,hint,answer,real_name,email,card_number,address) VALUES(?,?,?,?,?,?,?,?)");
stmt2.setString(1,vname);
stmt2.setString(2,vpwd);
stmt2.setString(3,vhint);
stmt2.setString(4,vanswer);
stmt2.setString(5,vreal_name);
stmt2.setString(6,vemail);
stmt2.setString(7,vcard_number);
stmt2.setString(8,vaddress);
if(stmt2.executeUpdate()==0)
out.print("Insert error");
stmt2.close();
}
catch(SQLException ex) {
out.print("aq.executeQuery: " + ex.getMessage());
}
对数据库查询结果的处理要很小心,在上面用的getstring()得到的pwd属性值,temp-password是占10位长度,而不管实际数据是多少位,所以如用equals()方法对它与前面用户输入的pwd做比较,将永远也相等不了,除非原本pwd就是10位的,所以需要用region matches()方法对它们进行比较,此方法只比较两字符串中的一段,用此方法比较此两字符串前面pwd长度的子串,将能除去temp-password中由于数据库的缘故而增加的空位,这样就可以判断用户输入的密码。
上面所述的是对数据库进行修改和查询,下面简单的说一下我是怎么利用数据库来文护我的课件安全的。在文护课件安全方面上我运用了JSP的session对象,session对象指的就是客户端与服务器的一次对话,此次对话从客户连接到服务器端一个Webapplication开始,直到客户端与此服务器端开连接为止,在此之间都可以访问到此session的有关属性及方法,在客户端与服务器端开连接时,此session也将消失。在这次的网络课件系统中,我是利用session对象来保持用户和服务器的通信,我的源代码如下:
if (session.getValue("power")!=null){
if (!("2".equals(session.getValue("power").toString().trim()))){
returnMsg="您还没有登陆,请<br><br>";
returnMsg=returnMsg+"<a href='login.jsp'><font color=red>重新登录</font></a>";
session.putValue("returnMsg",returnMsg);
response.sendRedirect("return.jsp");
return;
}
第三章 开发总结与心得体会
本系统可实现用户注册、登录、查看课件等
(1) 本系统利用了JSP技术、数据库等,可以更安全的保护系统和实现动画。但是无论是那一种JSP实现,在一定的阶段它们的某些版本都会出现给系统带来的安全隐患,即使我们开发遵从了安全编程惯例也无济于事。
(2) 由于本人的经验和技术等众多方面的不足,系统还存在很多缺点,希望各位老师指正,我也会努力去改进的。
随着互联网的发展,我相信JSP系统会做的更完善、会实现的功能也将会变的更多。同时它也会带动其他方面的发展,网络课件也会因为它的发展而更流行,同时我也会把我的网络课件系统做的更完善。
参 考 文 献
[1] JSP 应用开发详解(含光盘) 电子工业出版社 2002.9
[2] JavaScript 1.5实例教程 高等教育出版社 2001.4
[3] 《信息系统开发》 经济科学出版社 1996.9
[4] 《管理信息系统》 电子工业出版社 1999.9
[5] 《软件开发工具》 经济科学出版社 1996.7
[6] XML/JSP Programming Guide网页编程教程 经济科学出版社 1999.4