項目描述:css
隨着家長對孩子教育的日漸重視,社區幼兒學校在國內逐漸興起,對社區幼兒學校的信息化管理成爲迫切需求。社區幼兒學校管理系統須要實現如下功能:html
1) 教師管理:實現對教師信息的查詢、刪除、增長(姓名、所教課程)java
2) 家長管理:實現對家長信息的查詢、刪除、增長(姓名、電話、地址)web
3) 幼兒管理:實現對幼兒信息的查詢、刪除、增長(姓名、生日、照片)數據庫
4) 上課管理:實現對上課信息的查詢、增長(上課時間、內容、效果)編程
請根據上述項目背景描述進行上機操做,完成Web應用系統的開發任務。瀏覽器
任務一 緩存
在數據庫管理系統MySql中建立社區幼兒學校管理系統的數據庫db_ks,並按照如下數據庫設計建立出全部的數據庫表。服務器
社區幼兒醫院管理系統的數據庫設計如表1-1至1-6所示:dom
表1-1 用戶表t_user
列名 |
類型 |
是否主鍵 |
容許 爲空 |
是否 自增加 |
描述 |
id |
int |
是 |
否 |
是 |
用戶id |
role |
varchar(45) |
否 |
否 |
否 |
角色(admin系統管理員、parents家長) |
name |
varchar(45) |
否 |
否 |
否 |
用戶名 |
pwd |
varchar(45) |
否 |
否 |
否 |
密碼 |
tel |
varchar(45) |
否 |
是 |
否 |
電話 |
address |
varchar(256) |
否 |
是 |
否 |
地址 |
表1-2 教師表t_teacher
列名 |
類型 |
是否主鍵 |
|
容許 爲空 |
是否 自增加 |
描述 |
id |
int |
是 |
|
否 |
是 |
教師id |
name |
varchar(45) |
否 |
|
否 |
否 |
教師名 |
表1-3 課程表t_course
列名 |
類型 |
是否主鍵 |
容許 爲空 |
是否 自增加 |
描述 |
id |
int |
是 |
否 |
是 |
課程id |
name |
varchar(45) |
否 |
否 |
否 |
課程名 |
desc |
varchar(256) |
否 |
是 |
否 |
課程描述 |
表1-4 教師課程關係表t_teacher_course
列名 |
類型 |
是否主鍵 |
容許 爲空 |
是否 自增加 |
描述 |
teacherId |
int |
是 |
否 |
否 |
教師id |
courseId |
int |
是 |
否 |
否 |
課程id |
表1-5 幼兒表t_kid
列名 |
類型 |
是否主鍵 |
容許 爲空 |
是否 自增加 |
描述 |
id |
int |
是 |
否 |
是 |
幼兒id |
name |
varchar(45) |
否 |
否 |
否 |
幼兒名 |
birthdate |
varchar(45) |
否 |
是 |
否 |
生日 |
photo |
varchar(128) |
否 |
是 |
否 |
照片 |
parentsId |
int |
否 |
否 |
否 |
家長id(t_user表主鍵) |
表1-6 上課表t_teaching
列名 |
類型 |
是否主鍵 |
容許 爲空 |
是否 自增加 |
描述 |
id |
int |
是 |
否 |
是 |
用戶id |
kidId |
int |
否 |
否 |
否 |
幼兒Id |
teacherId |
int |
否 |
否 |
否 |
教師Id |
teachDate |
varchar(45) |
否 |
否 |
否 |
上課時間 |
content |
text |
否 |
否 |
否 |
上課內容 |
effect |
text |
否 |
否 |
否 |
上課效果 |
任務一的功能是創建數據庫表,只要按照表中的信息來創建就能夠了。
任務二
項目結構
實現用戶登陸功能的開發任務,在頁面輸入用戶名、密碼、驗證碼後,點擊【登陸】按鈕,能自動提交用戶登陸驗證請求,驗證成功後自動跳轉到教師管理頁面
1 使用Eclipse新建一個Dynamic Web Project 項目,項目命名爲KidSchool
操做說明:
2在項目源碼web目錄下的用戶登陸頁面index.jsp,實現用戶登陸頁面的jsp代碼,在項目源碼web目錄下添加樣式表文件styles.css,web目錄下新建一個inc目錄,並在inc目錄下添加頁頭文件header.inc和頁腳文件footer.inc
操做說明:
1)在右側項目資源視圖中,選擇web目錄的默認登陸頁面index.jsp,編寫實現該頁面的JSP代碼
2)在右側項目資源視圖中,選擇web目錄,選擇右鍵菜單New,選擇StyleSheet建立樣式表文件styles.css,再選擇File建立普通文件header.inc和footer.inc,編寫以上新建立文件的代碼
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登陸頁面</title> <link href="styles.css" rel="stylesheet"/> </head> <body> <div> <div id="header"> <h1>社區幼稚園管理系統</h1> </div> <div id="main"> <form action="LoginServlet" method="post"> <table> <tr> <td>姓名</td> <td><input name="username" /></td> </tr> <tr> <td>密碼</td> <td><input type="password" name="pwd"/></td> </tr> <tr> <td>驗證碼</td> <td><input name="usercode" /></td> </tr> <tr> <td>點擊刷新</td> <!-- 爲了不IE的緩存bug 須要每次請求帶上不同的參數 這個參數能夠沒有任何意義 關鍵是要不同 --> <td><img src="CheckCode" onclick="this.src='CheckCode?rand='+Math.random()"/></td><!-- /在html和轉發Dispatcher裏面的含義不一樣 前者表示服務器根目錄 8080:/ 後者表示當前應用根目錄 8080/ph/ --> </tr> <tr> <td></td> <td><input type="submit" value="登陸" /> <input type="reset" value="重置"/></td> </tr> </table> </form> <h4 align="center" style="color:red"><%=request.getAttribute("msg")==null?"":request.getAttribute("msg") %> <%=request.getParameter("para")==null?"":request.getParameter("para") %></h4> </div> <div id="footer"> <%@ include file="inc/footer.inc"%> </div> </div> </body> </html>
style.css
/* CSS Document */ /* 對於CSS來講 每個元素默認的margin和padding就是0px。可是不一樣的瀏覽器會有一個默認的瀏覽器樣式修改默認的margin padding。因此在使用自定義樣式編程前加上 *{ }從新設置margin和padding爲0px,覆蓋瀏覽器樣式使得各個瀏覽器下統一。 */ *{ margin:0px; padding:0px; font-weight: bold; } /*a {*/ /*color:black;*/ /*text-decoration: none;*/ /*}*/ a:link, a:visited { color:#FF0000; text-decoration:underline; } a:hover, a:active { color: #5cffeb; text-decoration:none; } /* ID選擇器 以#開始 用來匹配元素的id值 */ #header{ height:160px; background-color:#0033FF; position:relative; } /*後代選擇器 在多個選擇器之間加入空格表示後代選擇器 用來匹配元素的包含關係 標籤選擇器 直接使用標籤自己來匹配元素 */ #header h1{ color:#FFFF00; font-size:48px; padding-top:40px; width:300px;/* 經過設置margin的左右爲auto能夠實現居中,前提是被居中元素指定寬度*/ margin:0px auto; } /* #header a:first-child #header 裏面全部是一個子元素的連接 #header > a:first-child #header的直接子元素中的第一個a */ #header > a:first-child{ /*float:right;*/ position:absolute; right:15px; top:10px; } /* 全部元素默認的postion是static,其特色按照在文檔中的前後順序進行排列 position:absolute 絕對佈局,其特色相對於最近一個已定位(absolute/relative )父元素進行定位,若是沒有這樣的父元素就相對於body。經過top bottom left right控制 position:relative 相對佈局 其特色是相對於元素原本的位置進行位移 。經過top bottom left right控制,若是嗎,沒有位移量,其顯示仍是在原來的位置,可是性質已經變成定位元素。 */ #header .menu{ position:absolute; bottom:5px; } #header .menu li{ float: left; margin-left:15px; list-style-type:none } #main{ min-height:500px; background-color:pink; } #main table ,#main h4{ width:360px; margin:0px auto; } .minWidth{ min-width:240px; } #main table{ padding-top:60px; } #main table .result{ background-color: white; text-align: center; } #main input,#main img[src='CheckCode']{ width:150px; height:24px; } #main textarea{ width: 150px; height: 96px; } /* 每一個id選擇器算100 類 僞類算10 標籤選擇器算1 將全部的值相加就是優先級 */ #main tr:last-child input{ width:auto; padding:0 10px; } #footer{ background-color:#0033FF; height:80px; } #footer p{ color:red; font-size:20px; padding-top:40px; width:800px;/* 經過設置margin的左右爲auto能夠實現居中,前提是被居中元素指定寬度*/ margin:0px auto; }
inc目錄下的header.inc和footer.inc
header.inc
<%@ page pageEncoding="UTF-8"%> <a href="QuitServlet">退出</a> <a href="">修改密碼</a> <h1>社區幼稚園</h1> <ul class="menu"> <li><a href="teacherSearch.jsp">教師管理</a></li> <li><a href="">家長管理</a></li> <li><a href="">幼兒管理</a></li> <li><a href="courseAdd">課程管理</a></li> </ul>
footer.inc
<%@ page pageEncoding="UTF-8"%> <p>做者:Black_YeJing 單位:XXXXXXX 郵箱:2147807609@qq.com</p>
.......
項目描述:
隨着家長對孩子教育的日漸重視,社區幼兒學校在國內逐漸興起,對社區幼兒學校的信息化管理成爲迫切需求。社區幼兒學校管理系統須要實現如下功能:
1) 教師管理:實現對教師信息的查詢、刪除、增長(姓名、所教課程)
2) 家長管理:實現對家長信息的查詢、刪除、增長(姓名、電話、地址)
3) 幼兒管理:實現對幼兒信息的查詢、刪除、增長(姓名、生日、照片)
4) 上課管理:實現對上課信息的查詢、增長(上課時間、內容、效果)
請根據上述項目背景描述進行上機操做,完成Web應用系統的開發任務。
任務一
在數據庫管理系統MySql中建立社區幼兒學校管理系統的數據庫db_ks,並按照如下數據庫設計建立出全部的數據庫表。
社區幼兒醫院管理系統的數據庫設計如表1-1至1-6所示:
表1-1 用戶表t_user
列名 |
類型 |
是否主鍵 |
容許 爲空 |
是否 自增加 |
描述 |
id |
int |
是 |
否 |
是 |
用戶id |
role |
varchar(45) |
否 |
否 |
否 |
角色(admin系統管理員、parents家長) |
name |
varchar(45) |
否 |
否 |
否 |
用戶名 |
pwd |
varchar(45) |
否 |
否 |
否 |
密碼 |
tel |
varchar(45) |
否 |
是 |
否 |
電話 |
address |
varchar(256) |
否 |
是 |
否 |
地址 |
表1-2 教師表t_teacher
列名 |
類型 |
是否主鍵 |
|
容許 爲空 |
是否 自增加 |
描述 |
id |
int |
是 |
|
否 |
是 |
教師id |
name |
varchar(45) |
否 |
|
否 |
否 |
教師名 |
表1-3 課程表t_course
列名 |
類型 |
是否主鍵 |
容許 爲空 |
是否 自增加 |
描述 |
id |
int |
是 |
否 |
是 |
課程id |
name |
varchar(45) |
否 |
否 |
否 |
課程名 |
desc |
varchar(256) |
否 |
是 |
否 |
課程描述 |
表1-4 教師課程關係表t_teacher_course
列名 |
類型 |
是否主鍵 |
容許 爲空 |
是否 自增加 |
描述 |
teacherId |
int |
是 |
否 |
否 |
教師id |
courseId |
int |
是 |
否 |
否 |
課程id |
表1-5 幼兒表t_kid
列名 |
類型 |
是否主鍵 |
容許 爲空 |
是否 自增加 |
描述 |
id |
int |
是 |
否 |
是 |
幼兒id |
name |
varchar(45) |
否 |
否 |
否 |
幼兒名 |
birthdate |
varchar(45) |
否 |
是 |
否 |
生日 |
photo |
varchar(128) |
否 |
是 |
否 |
照片 |
parentsId |
int |
否 |
否 |
否 |
家長id(t_user表主鍵) |
表1-6 上課表t_teaching
列名 |
類型 |
是否主鍵 |
容許 爲空 |
是否 自增加 |
描述 |
id |
int |
是 |
否 |
是 |
用戶id |
kidId |
int |
否 |
否 |
否 |
幼兒Id |
teacherId |
int |
否 |
否 |
否 |
教師Id |
teachDate |
varchar(45) |
否 |
否 |
否 |
上課時間 |
content |
text |
否 |
否 |
否 |
上課內容 |
effect |
text |
否 |
否 |
否 |
上課效果 |
任務一的功能是創建數據庫表,只要按照表中的信息來創建就能夠了。
任務二
項目結構
實現用戶登陸功能的開發任務,在頁面輸入用戶名、密碼、驗證碼後,點擊【登陸】按鈕,能自動提交用戶登陸驗證請求,驗證成功後自動跳轉到教師管理頁面
1 使用Eclipse新建一個Dynamic Web Project 項目,項目命名爲KidSchool
操做說明:
2在項目源碼web目錄下的用戶登陸頁面index.jsp,實現用戶登陸頁面的jsp代碼,在項目源碼web目錄下添加樣式表文件styles.css,web目錄下新建一個inc目錄,並在inc目錄下添加頁頭文件header.inc和頁腳文件footer.inc
操做說明:
1)在右側項目資源視圖中,選擇web目錄的默認登陸頁面index.jsp,編寫實現該頁面的JSP代碼
2)在右側項目資源視圖中,選擇web目錄,選擇右鍵菜單New,選擇StyleSheet建立樣式表文件styles.css,再選擇File建立普通文件header.inc和footer.inc,編寫以上新建立文件的代碼
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登陸頁面</title> <link href="styles.css" rel="stylesheet"/> </head> <body> <div> <div id="header"> <h1>社區幼稚園管理系統</h1> </div> <div id="main"> <form action="LoginServlet" method="post"> <table> <tr> <td>姓名</td> <td><input name="username" /></td> </tr> <tr> <td>密碼</td> <td><input type="password" name="pwd"/></td> </tr> <tr> <td>驗證碼</td> <td><input name="usercode" /></td> </tr> <tr> <td>點擊刷新</td> <!-- 爲了不IE的緩存bug 須要每次請求帶上不同的參數 這個參數能夠沒有任何意義 關鍵是要不同 --> <td><img src="CheckCode" onclick="this.src='CheckCode?rand='+Math.random()"/></td><!-- /在html和轉發Dispatcher裏面的含義不一樣 前者表示服務器根目錄 8080:/ 後者表示當前應用根目錄 8080/ph/ --> </tr> <tr> <td></td> <td><input type="submit" value="登陸" /> <input type="reset" value="重置"/></td> </tr> </table> </form> <h4 align="center" style="color:red"><%=request.getAttribute("msg")==null?"":request.getAttribute("msg") %> <%=request.getParameter("para")==null?"":request.getParameter("para") %></h4> </div> <div id="footer"> <%@ include file="inc/footer.inc"%> </div> </div> </body> </html>
style.css
/* CSS Document */ /* 對於CSS來講 每個元素默認的margin和padding就是0px。可是不一樣的瀏覽器會有一個默認的瀏覽器樣式修改默認的margin padding。因此在使用自定義樣式編程前加上 *{ }從新設置margin和padding爲0px,覆蓋瀏覽器樣式使得各個瀏覽器下統一。 */ *{ margin:0px; padding:0px; font-weight: bold; } /*a {*/ /*color:black;*/ /*text-decoration: none;*/ /*}*/ a:link, a:visited { color:#FF0000; text-decoration:underline; } a:hover, a:active { color: #5cffeb; text-decoration:none; } /* ID選擇器 以#開始 用來匹配元素的id值 */ #header{ height:160px; background-color:#0033FF; position:relative; } /*後代選擇器 在多個選擇器之間加入空格表示後代選擇器 用來匹配元素的包含關係 標籤選擇器 直接使用標籤自己來匹配元素 */ #header h1{ color:#FFFF00; font-size:48px; padding-top:40px; width:300px;/* 經過設置margin的左右爲auto能夠實現居中,前提是被居中元素指定寬度*/ margin:0px auto; } /* #header a:first-child #header 裏面全部是一個子元素的連接 #header > a:first-child #header的直接子元素中的第一個a */ #header > a:first-child{ /*float:right;*/ position:absolute; right:15px; top:10px; } /* 全部元素默認的postion是static,其特色按照在文檔中的前後順序進行排列 position:absolute 絕對佈局,其特色相對於最近一個已定位(absolute/relative )父元素進行定位,若是沒有這樣的父元素就相對於body。經過top bottom left right控制 position:relative 相對佈局 其特色是相對於元素原本的位置進行位移 。經過top bottom left right控制,若是嗎,沒有位移量,其顯示仍是在原來的位置,可是性質已經變成定位元素。 */ #header .menu{ position:absolute; bottom:5px; } #header .menu li{ float: left; margin-left:15px; list-style-type:none } #main{ min-height:500px; background-color:pink; } #main table ,#main h4{ width:360px; margin:0px auto; } .minWidth{ min-width:240px; } #main table{ padding-top:60px; } #main table .result{ background-color: white; text-align: center; } #main input,#main img[src='CheckCode']{ width:150px; height:24px; } #main textarea{ width: 150px; height: 96px; } /* 每一個id選擇器算100 類 僞類算10 標籤選擇器算1 將全部的值相加就是優先級 */ #main tr:last-child input{ width:auto; padding:0 10px; } #footer{ background-color:#0033FF; height:80px; } #footer p{ color:red; font-size:20px; padding-top:40px; width:800px;/* 經過設置margin的左右爲auto能夠實現居中,前提是被居中元素指定寬度*/ margin:0px auto; }
inc目錄下的header.inc和footer.inc
header.inc
<%@ page pageEncoding="UTF-8"%> <a href="QuitServlet">退出</a> <a href="">修改密碼</a> <h1>社區幼稚園</h1> <ul class="menu"> <li><a href="teacherSearch.jsp">教師管理</a></li> <li><a href="">家長管理</a></li> <li><a href="">幼兒管理</a></li> <li><a href="courseAdd">課程管理</a></li> </ul>
footer.inc
<%@ page pageEncoding="UTF-8"%> <p>做者:Black_YeJing 單位:XXXXXXX 郵箱:2147807609@qq.com</p>
.......