一、项目要求
1 、项目需求:
课程管理是各大院校的管理工作中尤为重视的一项工作,它一直以来是学校管
理的一项重要的衡量指标。石家庄铁道大学为了提高工作效率,实现信息化管理,
要求开发课程管理系统。
2. 系统要求与功能设计
2.1 页面 功能 要求
(1)能够在 Tomcat 服务器中正确部署,并通过浏览器查看;(1 分)
(2)网站页面整体风格统一;
(3)主页面:要求显示添加新课程、修改课程信息、删除课程信息、查询课程信息四个子菜单。(1 分)
(4)添加新课程页:(3 分)
① 完成添加新课程页面设计,页面内容如下所示(0.5 分)
②新课程信息必须唯一,如有重复,提示用户“课程名称重复,重新录入”; (0.5
分)
③要求判断任课教师为王建民、刘立嘉、刘丹、王辉、杨子光五位教师的其中
一位。(0.5 分)
④要求上课地点开头为“一教、二教、三教、基教”中的一种。(0.5 分)
⑤将新课程信息添加入库。(1 分)
评分标准:
①完成添加新课程页面(未完成 0 分,完成 0.5 分)
②保存新课程信息入库(未完成 0 分,完成 1 分)
③判断课程名称是否唯一(未完成 0 分,完成 0.5 分)
④ 判断任课教师为王建民、刘立嘉、刘丹、王辉、杨子光五位教师的其中一位
(未完成 0 分,完成 0.5 分)
⑤判断上课地点开头为“一教、二教、三教、基教”中的一种
(4)修改课程信息页:可对课程名称、任课教师、上课地点进行修改。(任课
教师和上课地点必须符合录入要求)。(2 分)
评分标准:
①完成修改课程信息页面(未完成 0 分,完成 0.5 分)
② 完成数据库中信息更新(未完成 0 分,完成 1 分)
③修改信息判断是否符合要求。(未完成 0 分,完成 0.5 分)
(5)删除课程信息页:录入课程名称,显示详细信息后,点击“删除”按钮,
删除该信息。
评分标准:
①完成删除课程信息页面(未完成 0 分,完成 0.5 分)
②输入课程名称后可显示其余信息。(未完成 0 分,完成 0.5 分)
③对应删除数据库中信息(未完成 0 分,完成 1 分)
(6)查询课程信息页面:
输入课程名称、任课教师、上课地点等信息可以实现模糊查询。
评分标准:
①完成查询课程信息页面(未完成 0 分,完成 0.5 分)
②实现按照任意条件进行模糊查询。(未完成 0 分,完成 1 分)
③结果信息显示包括全部信息。(未完成 0 分,完成 0.5 分,缺少一项扣除 0.5
分)
2.2 功能要求
(1)设计出合理的数据库和数据表,要求使用 mysql、sqlserver、oracle 三
种数据库中一种(1 分)
(2)数据库连接正常(1 分)。
(3)使用 Serverlet 实现页面交互(1 分)。
(4)使用 Java Bean 封装数据库连接操作(1 分。)
二、项目分析
1、数据存储需要数据库,第一个需要掌握的点即数据库的连接及数据库的增删改查
2、web端的程序必然需要用到jsp界面的设计
3、Serverlet技术实现不同jsp界面间的传值交互
三、项目实践
1、利用数据库可视化工具Navicat建立数据库及数据表
需要注意的是除了项目中要求的三个数据之外,还要添加一个int型的ID属性并且设置为主键,目的是为了之后传值、查询、修改的方便
2、使用Javabean进行数据库的连接;
import java.sql.DriverManager; public class Connection { public java.sql.Connection getCon() { try { Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/classmanager?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true"; String user="root"; String password="******"; java.sql.Connection conn= DriverManager.getConnection(url, user, password); return conn; }catch(Exception e) { e.printStackTrace(); return null; } } }
其中“******”是mysql数据库密码
2、要建立一个实体类来接收数据
package classInfo; public class classInfo { private String classname; private int id; public int getId() { return id; } public void setId(int id) { this.id = id; } private String classteacher; private String classwhere; public String getClassname() { return classname; } public void setClassname(String classname) { this.classname = classname; } public String getClassteacher() { return classteacher; } public void setClassteacher(String classteacher) { this.classteacher = classteacher; } public String getClasswhere() { return classwhere; } public void setClasswhere(String classwhere) { this.classwhere = classwhere; } }
3、使用javabean进行数据库的操作实现增删改查;
package classService; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import classInfo.classInfo; public class classService { private Connection conn; private java.sql.PreparedStatement pstmt; public classService() { conn=new connection.Connection().getCon(); } public boolean addCla(classInfo cla){ try { pstmt=conn.prepareStatement("insert into class"+"(classname,classteacher,classwhere)"+"values(?,?,?)"); pstmt.setString(1, cla.getClassname()); pstmt.setString(2, cla.getClassteacher()); pstmt.setString(3, cla.getClasswhere()); pstmt.executeUpdate(); return true; } catch (SQLException e) { e.printStackTrace(); return false; } } public ArrayList queryAllCla() { ArrayList clas=new ArrayList(); try { pstmt=conn.prepareStatement("select * from class"); ResultSet rs=pstmt.executeQuery(); while(rs.next()) { classInfo cla=new classInfo(); cla.setId(rs.getInt(1)); cla.setClassname(rs.getString(2)); cla.setClassteacher(rs.getString(3)); cla.setClasswhere(rs.getString(4)); clas.add(cla); } return clas; } catch(SQLException e) { e.printStackTrace(); return null; } } public boolean updateCla(classInfo cla) { try { pstmt=conn.prepareStatement("update class set classname=?,classteacher=? ,classwhere=? where id=? "); pstmt.setString(1, cla.getClassname()); pstmt.setString(2, cla.getClassteacher()); pstmt.setString(3, cla.getClasswhere()); pstmt.setInt(4, cla.getId()); pstmt.executeUpdate(); return true; }catch(Exception e) { e.printStackTrace(); return false; } } public classInfo queryclaByid(int id) { try { pstmt=conn.prepareStatement("select * from class where ID=?"); pstmt.setInt(1, id); ResultSet rs=pstmt.executeQuery(); if(rs.next()) { classInfo cla=new classInfo(); cla.setId(rs.getInt(1)); cla.setClassname(rs.getString(2)); cla.setClassteacher(rs.getString(3)); cla.setClasswhere(rs.getString(4)); return cla; } return null; } catch(SQLException e) { e.printStackTrace(); return null; } } public boolean deleteCla(int id) { try { pstmt=conn.prepareStatement("delete from class where ID=?"); pstmt.setInt(1, id); pstmt.executeUpdate(); return true; }catch(Exception e) { e.printStackTrace(); return false; } } }
3、利用HTML、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>Insert title here</title> </head> <frameset rows="10%,*"> <frame src="top.jsp"> <frameset cols="10%,*"> <frame src="main_lift.jsp"> <frame src="main_right.jsp" name="main_right"> </frameset> </frameset> <body> </body> </html>
<%@ 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>Insert title here</title> </head> <body> <a href="inputclassinfo.jsp" target="main_right" >课程信息录入</a><br/> <a href="modifyclainfo.jsp" target="main_right" >课程信息修改</a><br/> <a href="deleteclainfo.jsp" target="main_right" >删除课程信息</a><br/> <a href="displayclainfo.jsp" target="main_right" >查询学生信息</a><br/> </body> </html>
<%@ 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>Insert title here</title> </head> <body> </body> </html>
<%@ 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>Insert title here</title> <style type="text/css"> .mytxt:focus { border: 1px solid #fafafa; -webkit-box-shadow: 0px 0px 6px #007eff; -moz-box-shadow: 0px 0px 5px #007eff; box-shadow: 0px 0px 5px #007eff; } </style> </head> <body> <form action="inputclassinfo_result.jsp" method="post"> <table> <tr> <td align="center" colspan="2">课程信息录入</td></tr> <tr> <tr> <td>课程名称</td> <td><input type="text" size=20 name="classname" class="mytxt"/></td> </tr> <tr> <td>任课教师</td> <td><select name="classteacher" class="mytxt"> <option>刘力嘉</option> <option>刘丹</option> <option selected="selected">王建民</option> <option>王辉</option> <option>杨子光</option> </select> </td> </tr> <tr> <td>上课地点</td> <td> <select name="classwhere" class="mytxt"> <option>一教</option> <option>二教</option> <option>三教</option> <option selected="selected">基教</option> </select> </td> </tr> <tr> <td align="center" colspan="2"> <input type="submit" value="保存"> <input type="reset" value="重置"> </tr> </table> </form> </body> </html>
<%@ 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>Insert title here</title> </head> <body> <% request.setCharacterEncoding("utf-8"); %> <jsp:useBean id="cla" class="classInfo.classInfo"></jsp:useBean> <jsp:setProperty property="*" name="cla"/> <jsp:useBean id="claSer" class="classService.classService"></jsp:useBean> <% if(claSer.addCla(cla)){ out.print("success!!"); %> <script > alert("课程信息录入成功!"); </script> <% }else{ out.print("error"); %> <script > alert("课程信息录入失败!"); </script> <% }%> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import="classInfo.classInfo"%> <%@page import="java.util.Iterator"%> <%@page import="java.util.ArrayList"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="cla" class="classService.classService"></jsp:useBean> <% ArrayList clas=cla.queryAllCla(); //out.print(stus.size()); Iterator iter=clas.iterator(); %> <table> <tr> <td>课程名称</td> <td>任课教师</td> <td>上课地点</td> </tr> <% int i=0; while(iter.hasNext()) { classInfo classx=(classInfo)iter.next(); %> <tr <%if(i%2==0){ %>bgcolor="#F0F8FF"<%} %>> <td> <%=classx.getClassname() %></td> <td> <%=classx.getClassteacher() %></td> <td> <%=classx.getClasswhere()%></td> <td> <a href="modifyOnecla.jsp?id=<%=classx.getId()%>">修改</a></td> </tr> <% i++; } %> </table> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import="classInfo.classInfo"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="cla" class="classService.classService"></jsp:useBean> <% int id=Integer.parseInt(request.getParameter("id")); classInfo classx=cla.queryclaByid(id); %> <form action="modifyOnecla_result.jsp" method="post"> <table> <tr><td colspan="2">修改课程信息</td></tr> <tr> <td>课程名称</td> <td><input type="text" name="classname" value=""/></td> </tr> <tr> <td>任课教师</td> <td> <select name="classteacher"> <option <%if(classx.getClassteacher().equals("刘丹")){ %> selected="selected"<%} %>>刘丹</option> <option <%if(classx.getClassteacher().equals("刘力嘉")){ %> selected="selected" <%} %>>刘力嘉</option> <option <%if(classx.getClassteacher().equals("王建民")){ %> selected="selected" <%} %>>王建民</option> <option <%if(classx.getClassteacher().equals("王辉")){ %> selected="selected" <%} %>>王辉</option> <option <%if(classx.getClassteacher().equals("杨子光")){ %> selected="selected" <%} %>>杨子光</option> </select> </td> </tr> <tr> <td>上课地点</td> <td> <select name="classwhere"> <option <%if(classx.getClasswhere().equals("一教")){ %> selected="selected"<%} %>>一教</option> <option <%if(classx.getClasswhere().equals("二教")){ %> selected="selected"<%} %>>二教</option> <option <%if(classx.getClasswhere().equals("三教")){ %> selected="selected"<%} %>>三教</option> <option <%if(classx.getClasswhere().equals("基教")){ %> selected="selected"<%} %>>基教</option> </select> </td> </tr> <tr> <td align="center" colspan="2"> <input type="submit" value="提交"> <input type="reset" value="重置"> <input type="hidden" name ="id" value="<%=classx.getId()%>"> </tr> </table> </form> </body> </html>
<%@ 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>Insert title here</title> </head> <body> <%request.setCharacterEncoding("utf-8"); %> <jsp:useBean id="cla" class="classInfo.classInfo"></jsp:useBean> <jsp:setProperty property="*" name="cla" /> <jsp:useBean id="claSer" class="classService.classService"></jsp:useBean> <% if(claSer.updateCla(cla)){ out.print("success"); %> <script > alert("课程信息修改成功!"); </script> <% }else{ out.print("error");%> <script > alert("课程信息修改失败!"); </script> <%} %> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import="classInfo.classInfo"%> <%@page import="java.util.Iterator"%> <%@page import="java.util.ArrayList"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="cla" class="classService.classService"></jsp:useBean> <% ArrayList stus=cla.queryAllCla(); //out.print(stus.size()); Iterator iter=stus.iterator(); %> <table> <tr> <td>课程名称</td> <td>任课教师</td> <td>上课地点</td> </tr> <% int i=0; while(iter.hasNext()) { classInfo classx=(classInfo)iter.next(); %> <tr <%if(i%2==0){ %>bgcolor="#F0F8FF"<%} %>> <td> <%=classx.getClassname() %></td> <td> <%=classx.getClassteacher() %></td> <td> <%=classx.getClasswhere()%></td> </tr> <% i++; } %> </table> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import="classInfo.classInfo"%> <%@page import="java.util.Iterator"%> <%@page import="java.util.ArrayList"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="cla" class="classService.classService"></jsp:useBean> <% ArrayList stus=cla.queryAllCla(); //out.print(stus.size()); Iterator iter=stus.iterator(); %> <table> <tr> <td>课程名称</td> <td>任课教师</td> <td>上课地点</td> </tr> <% int i=0; while(iter.hasNext()) { classInfo classx=(classInfo)iter.next(); %> <tr <%if(i%2==0){ %>bgcolor="#F0F8FF"<%} %>> <td> <%=classx.getClassname() %></td> <td> <%=classx.getClassteacher() %></td> <td> <%=classx.getClasswhere()%></td> <td> <a href="deleteOnecla.jsp?id=<%=classx.getId()%>">删除</a></td> </tr> <% i++; } %> </table> </body> </html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@page import="classInfo.classInfo"%> <%@page import="java.util.Iterator"%> <%@page import="java.util.ArrayList"%> <!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>Insert title here</title> </head> <body> <jsp:useBean id="claSer" class="classService.classService"></jsp:useBean> <% int id=Integer.parseInt(request.getParameter("id")); classInfo classx=claSer.queryclaByid(id); if(claSer.deleteCla(id)){ out.print("success!!"); %> <script > alert("课程信息删除成功!"); </script> <% }else{ out.print("false"); %> <script > alert("课程信息删除失败!"); </script> <% }%> </body> </html>
注意:每段代码都是一个JSP页面
这只是我的一点见解,可能存在不足,还请大牛们指教!