首先这么长时间来,不止这个礼拜,我看了很多很多书,JAVAweb已经看完了,但是我还是不满足,我又看了很多其他的书,
而这个礼拜我主要看了JAVAscript这本书,这本书讲的内容让我耳目一新,很多JSP中的操作都是需要javascript
而且在这本书中我第一次接触到了CSS,也就是javaweb前端页面的开发,接触到这个之后我感到非常的新奇,于是也赶快记下了笔记,
下面是我的笔记:
建民在这周发了一个大作业,让我们做了一个石家庄铁道大学的选课管理系统,因为我作为一个初学者,除了练习熟练度,
最主要的还是学习一下框架,怎么熟练地运用MVC,所以我首先就是自己写了一个这个项目的大纲,如下:
值得一提的是,以前我用Dao连接数据库的时候,是一个过那个能写一个class,但是这次我进行了改进,我把他们每一个功能,包括打开,关闭数据库等
全部都封装在了一个函数内。而且我的包除了servlet和Dao又多了一个service层,因为我优化了我的Dao层代码,革除里面的sql语句,我将sql语句放到了service
里面,这样可以实现一个函数的多次使用,比如一个函数就可以实现增删改三个功能:
public static Connection getCon() throws SQLException, ClassNotFoundException { Class.forName(DBDRIVER); Connection con = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); return con; } /* close sql ***** ****** *******/ public static void close(Connection con,PreparedStatement ps,ResultSet rs,Statement stat) { if(rs!= null) { try { rs.close(); }catch(SQLException e) { e.printStackTrace(); } } if(stat!= null) { try { stat.close(); }catch(SQLException e) { e.printStackTrace(); } } if(ps!= null) { try { ps.close(); }catch(SQLException e) { e.printStackTrace(); } } if(con!= null) { try { con.close(); }catch(SQLException e) { e.printStackTrace(); } } } /* add update delete ***** ****** *******/ public static boolean addUpdateDelete(String sql,String[] arr) { Connection con = null; PreparedStatement ps = null; Statement stat =null; ResultSet rs = null; try { con = getCon(); ps = con.prepareStatement(sql); if(arr!=null&& arr.length!=0) { for(int i=0;i<arr.length;i++) { ps.setString(i+1, arr[i]); } } int count = ps.executeUpdate(); if(count>0) { return true; }else { return false; } }catch(ClassNotFoundException e) { e.printStackTrace(); }catch(SQLException e) { e.printStackTrace(); } close(con,ps,rs,stat); return false; }
然后service里面:
public class service { /* add a teacher or student * */ public boolean addCrew(String arr[],String name){ String sql = "insert into "+name+"(account,password,id,name,sex,college,insti) values(?,?,?,?,?,?,?)"; boolean res = Dao.addUpdateDelete(sql, arr); return res; } /* add a class * */ public boolean addClass(String arr[]) { String sql = "insert into class(id,name,number,teacher) values(?,?,?,?)"; boolean res = Dao.addUpdateDelete(sql, arr); return res; } /* update messages * */ public boolean update(String ID,String[]arr,String ele) { String sql = "update teacher set "+ele+" = ? where id = ? "; boolean res = false; res = Dao.addUpdateDelete(sql, arr); return res; }
这样就实现了一个Dao函数实现三个功能:
然后就是学到了通过CSS编写ul>li>ul>li 这种嵌套的格式,
以及嵌套在里面的ul>li 的显示和隐藏,并通过JAVAscript代码实现单机后显隐的控制:
<style type="text/css"> body{ background-color:#eed00e0; } #navigation{ 200px; font-family:Arial; } #navigation > ul> li{ border-bottom:1px solid #AD9F9; } #navigation > ul> li > a{ display:block; padding:5px 5px 5px 0.5em; text-decoration:none; border-left:12px solid #7111111; } #navigation > ul> li > a:link, #navigation > ul > li > a:visited{ background-color :#cllll36; color:#880020; } #navigation > ul > li > a:hover{ background-color:#880020; color:#ff0000; } h1{ color:red; background-color:#49ff01; text-align:center; padding:20px; } img{ float:left; border:2px #F00 solid; margin:5px; } #navigation ul li ul{ margin:0px; padding:0px 0px 0px 0px; display:none; } #navigation ul lu ul li{ border-top:1px solid #ED9F9F; } #navigation ul li ul li a{ display:block; padding:3px 3px 3px 0.5em; text-decoration:none; border-left:28px solid #a71f1f; border-right:1px solid #711515; } #navigation ul li ul li a:link, #navigation ul li ul li a:visited{ background-color:#c2425d; color:#ffff00; } #navigation ul li ul.myShow{ display:none; } #navigation ul li ul.myHide{ display:block; } </style>
这是css代码
下面是通过点击控制显隐性:
function change(){ var secondDiv = this.parentNode.getElementsByTagName("ul")[0]; if(secondDiv.className=="myHide") secondDiv.className = "myShow"; else secondDiv.className = "myHide"; } window.onload = function(){ var Ul = document.getElementById("listUL"); var aLi = Ul.childNodes; var A; for(var i=0;i<aLi.length;i++){ if(aLi[i].tagName=="LI" && aLi[i].getElementsByTagName("ul").length){ A = aLi[i].firstChild; A.onclick = change; } } }
这是一次非常成功的web小项目,其中很让我头疼的就是库内很多很多表的来回调用和计算,很费脑子。
好在经过长时间的思考还是让我想出来了。