JBuilder2005实战JSP之切换控制(3)
时间:2007-10-22 来源:不详 作者:林子
12. pStat.setString(1, userBean.getUserId());
13. pStat.setString(2, userBean.getPassword());
14. ResultSet rs = pStat.executeQuery();
15. if (rs.next()) { //密码正确
16. userBean.setUserName(rs.getString(1));//设置用户名
17. session.setAttribute("ses_userBean", userBean);//将userBean放入Session对象中
18. %><jsp:forward page=" welcome.jsp "></jsp:forward>
19. <%} else { //密码错误%>
20. <jsp:forward page="fail.jsp"></jsp:forward>
21. <%
22. }} finally {
23. if(conn != null) conn.close();
24. }
25. %>
ⷥ쬲~3行中引入Scriptlet代码中需要的类。
ⷧ쬷~14行代码向数据库发送查询SQL语句并返回结果。
ⷧ쬱5行通过检查结果集的记录数间接判断用户密码是否正确。
ⷧ쬱6~18行是用户密码正确的响应代码,首先用结果集的USER_NAME属性填充userBean的userName属性值,然后将userBean对象放入Session中,最后转向welcome.jsp页面。
ⷥ𝓧跨𞓥奥d𘍦ᮦ𗶯𛆤𘭥𝕯𗶲s.next()返回false,程序转向第20行,第20行的代码将页面转向到密码输入错误的处理页面fail.jsp。 织梦好,好织梦
ⷧ쬲2~24行的代码用于关闭数据库的连接。
也许大家已经发现虽然第9~21行会抛出SQLException异常,但我们并没有相应的异常捕获块,在标准的Java程序中将导致一个编译期的错误,但在JSP中却可以顺序通过编译,这是因为JSP页面本身会捕获页面中抛出的所有异常。
假设第11行的SQL查询语句发生有错误,如将用户表名误写为User(正确为T_USER),当switch.jsp被调用后,第14行将抛出SQLException异常,此时switch.jsp将显示出异常堆栈迹的跟踪信息页面,如下图如示:
图 14 可怕的错误处理页面
上图所示的错误处理页面可谓青面獠牙,面目狰狞,非常不友好,对于开发人员来说这种报错页面也许是适合的,因为它提供了许多错误跟踪信息,但最终用户是不可能接受这种粗野的出错页面的。JSP允许你通过<%@ page errorPage%>为页面指定一个专门处理错误的JSP页面,以便用一种友好、直观的形式展现错误。在下一节里,我们将创建一个用于处理错误的JSP页面,在创建之后,我们再来为switch.jsp指定错误处理JSP页面。
文章评论
共有位Admini5网友发表了评论 查看完整内容