今天大概用了一天的时间,自己写了一下这个精简版的BBS,真是不写不知道,一写全就暴露了!别看自己跟着视频一个一个的代码的敲着很是爽!而且思路很清晰!可是要知道那是老师的!是跟着老师思路走的!当然很顺!而且问题也少,考虑的东西也相对较少(毕竟老师都考虑了),可是自己一写什么问题都来了,不是这的参数传递错误,就是那的SQL语句写得有问题!有的时候还出一些莫名其妙的问题!根本不是自己想的那样!挺郁闷不过也挺开心的!算是一种体验吧!这种效果还不错!虽然谈不上什么成就感!但是学到了不少东西,也对知识有了一定的把握!不过还是有一些问题没有想明白!就在这里罗列出来(等再过一段时间看看!当然有高手能指出来,就感谢了!):
1、在Delete.jsp中,有一个奇怪问题:
[color=red]上下JSP区域(这两部分JSP区域都在同一文件中)中都声明了Statement,这没什么,可是却用这个接口的对象stmt分别执行了两次!而且程序正常运行出来!没有什么错误反应!这到底是为什么呢?而且可以这样用吗?会不会有什么隐含的危险呢?代码罗列如下:[/color]
[color=red][size=xx-large]看这两段代码中stmt被使用的次数,而且是在各自区域中同一个stmt![/size][/color]
[color=blue][size=x-large]各位看官你们遇到过这种情况吗?难道不奇怪吗?而且在视频上也是如此!我就很纳闷了!请高手指教一下!这样写会不会有什么隐含的危险呢?[/size][/color]
2、<%!%>与<%%>的区别!其实这也没什么![color=red]可是就是在ShowArticleTree.jsp这个文件中为什么要将递归的方法(这个方法是私有的)写到<%!%>中呢?[/color]
3、在ShowArticleTree.jsp中的login的执行顺序!(关键我还是要理解<%!%><%%>的区别!)
4、登录时,如果密码写错了,登录失败,页面刷新,怎么样才能在页面刷新后,用户名不为空仍为刚开始登录的用户名呢?
1、在Delete.jsp中,有一个奇怪问题:
[color=red]上下JSP区域(这两部分JSP区域都在同一文件中)中都声明了Statement,这没什么,可是却用这个接口的对象stmt分别执行了两次!而且程序正常运行出来!没有什么错误反应!这到底是为什么呢?而且可以这样用吗?会不会有什么隐含的危险呢?代码罗列如下:[/color]
[color=red][size=xx-large]看这两段代码中stmt被使用的次数,而且是在各自区域中同一个stmt![/size][/color]
//这是上部分JSP区域 看stmt被使用的次数
stmt = conn.createStatement() ;
String sql = "select * from article where pid =" + id ;
rs = stmt.executeQuery(sql) ;
while(rs.next()) {
if(rs.getInt("isleaf") != 0) {
del(conn, rs.getInt("id")) ;
}
}
stmt.executeUpdate("delete from article where id =" + id) ;
[/color]
//这是下部分区域 看stmt被使用的次数
Statement stmt = conn.createStatement() ;
String sql = "select count(*) from article where pid =" + pid;
ResultSet rs = stmt.executeQuery(sql) ;
rs.next() ;
int count = rs.getInt(1) ;
if(count <= 0) {
String sqlUpdate = "Update article set isleaf = 0 where id =" + pid ;
stmt.executeUpdate(sqlUpdate) ;
}
[color=blue][size=x-large]各位看官你们遇到过这种情况吗?难道不奇怪吗?而且在视频上也是如此!我就很纳闷了!请高手指教一下!这样写会不会有什么隐含的危险呢?[/size][/color]
2、<%!%>与<%%>的区别!其实这也没什么![color=red]可是就是在ShowArticleTree.jsp这个文件中为什么要将递归的方法(这个方法是私有的)写到<%!%>中呢?[/color]
3、在ShowArticleTree.jsp中的login的执行顺序!(关键我还是要理解<%!%><%%>的区别!)
4、登录时,如果密码写错了,登录失败,页面刷新,怎么样才能在页面刷新后,用户名不为空仍为刚开始登录的用户名呢?