李慶江
(菏澤學(xué)院 教務(wù)處,山東 菏澤 274015)
網(wǎng)上選課系統(tǒng)很多,在進(jìn)行本系統(tǒng)的研發(fā)之前通過(guò)大量的調(diào)查與研究,決定采用B/S架構(gòu)體系,用JSP語(yǔ)言來(lái)編寫(xiě)動(dòng)態(tài)網(wǎng)頁(yè)、用Java語(yǔ)言編寫(xiě)中間組件,用MYSQL做數(shù)據(jù)庫(kù)服務(wù)器,用TOMCAT做WEB服務(wù)器。
該系統(tǒng)數(shù)據(jù)庫(kù)一共由用戶(hù)信息表、課程信息表、用戶(hù)課程關(guān)系表、公告信息表、留言信息表、錯(cuò)誤日志表六個(gè)表構(gòu)成。課程信息表(course表):存儲(chǔ)課程信息,用來(lái)向教師,管理員,學(xué)生展示可選擇的科目信息。留言信息表(message表):存儲(chǔ)用戶(hù)的留言信息,其中readed表示留言信息是否被閱讀過(guò),0表示未閱讀過(guò),1表示閱讀過(guò)。
學(xué)生、教師、管理員三個(gè)模塊的表在一個(gè)文件夾。用class類(lèi)文件進(jìn)行分類(lèi),對(duì)常用的處理算法以及工具類(lèi)單獨(dú)封裝成一個(gè)util包。系統(tǒng)使用到的公共界面放在文件夾common中。
用戶(hù)輸入正確的用戶(hù)名和密碼,進(jìn)入系統(tǒng)進(jìn)行各種操作的窗口,具有對(duì)用戶(hù)身份進(jìn)行驗(yàn)證的功能,把用戶(hù)的用戶(hù)角色信息傳遞給系統(tǒng),以便系統(tǒng)提供不同的顯示界面,實(shí)現(xiàn)不同權(quán)限的用戶(hù)進(jìn)行不同的操作。
public void doPost(HttpServletRequest request,Http Servlet Response response)
throws ServletException,IOException{String type=request.getParameter("user_type");
String username=request.getParameter("username");
String pwd=Encrypt.getInstance().md5Encrypt(request.getParameter("password"));
HttpSession session=request.getSession();
String url="";User user=Factory.getUserDaoImp().find(username,pwd,type);
PrintWriter out=response.getWriter();Log log=null;if(user!=null){
boolean flag=Factory.getUserDaoImp ().modifyStatus("1",user.getId());
if(!flag){response.sendRedirect("index.jsp");}session.set Attribute("user",user);
if("0".equals(type)){url="admin/index.jsp";}else if("1".equals(type)){
url="teacher/index.jsp";}else{url="student/index.jsp";}
request.getRequestDispatcher(url).forward(request,response);
}else{response.sendRedirect("index.jsp");}
(1)找回密碼。為了提高系統(tǒng)的友好性,對(duì)管理員設(shè)計(jì)一項(xiàng)找回密碼的功能。實(shí)現(xiàn)管理員找密碼的代碼如下。
(2)發(fā)布公告、選課。當(dāng)需要發(fā)布緊急信息或者最新選課情況是,管理員和教師都可以通過(guò)公告發(fā)布,來(lái)及時(shí)發(fā)布與更新公告與新聞。
if(flag){Course course=cd.findById(c_id);if(course!=null){
course.setAvaliable(course.getAvaliable()-1);flag=cd.modify Course(course);}
User user=ud.getInfo(u_id);
System.out.println("學(xué)生號(hào)是"+user.getId()+"學(xué)生選課數(shù)目是"+user.getCounts());
flag=ud.modifyCounts(u_id,user.getCounts()+1);
request.getRequestDispatcher("courseFindAllById").forward(request,response);}}}
(1)課程管理。課程是教師角色的主要功能模塊,教師用戶(hù)可以對(duì)自己教授的課程進(jìn)行信息錄入,對(duì)存在信息錯(cuò)誤的課程查詢(xún)及修改等操作。
throws ServletException,IOException{
String id=RandomUtil.getString();String name=request.getParameter("course_name");
String tips=request.getParameter("course_tips");
int score=Integer.parseInt(request.getParameter("course_score"));
int counts=Integer.parseInt(request.getParameter("course_counts"));
int avaliable=Integer.parseInt(request.getParameter("course_avaliable"));
String begin_time=request.getParameter("begin_time");
String end_time=request.getParameter("end_time");
String address=request.getParameter("course_address");
User user=(User)request.getSession().getAttribute("user");
Course course=new Course ();course.setId(id);course.set Name(name);course.setTips(tips);
course.setScore (score);course.setCounts(counts);course.set Avaliable(avaliable);
course.setBegin_time(begin_time);course.setEnd_time(end_time);
course.setAddress(address);course.setTeacherId(user.getId());
CourseDao cd=Factory.getCourseDao();boolean flag=cd.add Course(course);
if(flag){request.setAttribute("course",course);
request.getRequestDispatcher("teacher/course/course_info.jsp").forward(request,response)
[1]李俊民.MySQL數(shù)據(jù)庫(kù)開(kāi)發(fā)實(shí)例解析[M].北京:機(jī)械工業(yè)出版社,2006:100-105.
[2]耿祥義.JSP實(shí)用教程.2版[M].北京:清華大學(xué)出版社,2007:10-12.
[3]黃縉華.MySQL入門(mén)很簡(jiǎn)單[M].北京:清華大學(xué)出版社,2011:53-55.
[4]前沿科技.精通CSS+DIV網(wǎng)頁(yè)樣式布局[M].北京:中國(guó)人民郵電出版社,2007:8-11.
[5]李剛.瘋狂Java講義[M].北京:中國(guó)電子工業(yè)出版社,2008:12-15.