pstmt.close();
pstmt = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
//关闭数库连接对象
public static void closeConn(Connection conn) {
try {
if(conn != null) {
System.out.println("关闭数库连接对象");
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
6.2 系统功能模块
6.2.1 用户注册模块
当用户提出注册请求,系统显示用户注册页面,提示用户输入个人信息,用户输入个人信息,系统验证其信息是否符合要求,如果用户输入的个人信息不符合系统要求,则系统显示错误信息并要求用户重新填写个人信息,用户重新填写信息,或者取消注册,注册成功系统将用户信息写入数据库,页面将经一个显示注册成功的页自动进入登录界面。
要实现用户信息验证功能,主要是通过客户端页面上的JavaScript和服务器端验证,例如验证用户输入的用户名在数据库中是否已存在,如果已存在则在提交的时候会给出提示“用户名已存在”,就要求重新注册。客户端页面上的javascript代码如下:
在服务器端验证时,RegisterAction 调用 RegisterManager类中的addUser方法.addUser会先调同类中的hasUser方法来验证用户是否已存在。关键代码如下:
public boolean hasUser(String user_name) throws Exception{
Connection conn = null;
DBconn db = new DBconn();
PreparedStatement pstmt= null;
ResultSet rs = null;
try{
conn = db.getConn();
pstmt = conn.prepareStatement(Sql.registCheck_tb_user);
pstmt.setString(1,user_name);
rs=pstmt.executeQuery();
rs.next();
int n = rs.getInt(1);
if(n==1){
System.out.print("用户名存在,返回true");
return true;
} else {
System.out.print("用户名不存在,返回false");
return false ;
}
}catch(SQLException e){
e.printStackTrace();
throw e;
}finally{
DBconn.closeRs(rs);
DBconn.closePstmt(pstmt);
DBconn.closeConn(conn);
}
}
6.2.2 登录模块
在登录模块中分为教师登录和学生登录,只有输入正确的用户名和密码才能进入系统。在登录发生错误时会出现相关的提示信息,如用户名或密码错误。当教师登录成功后进入主页可以进行电子教案管理,视频管理,作业管理,在线答疑,留言管理等相关的操作。学生登录成功后进入主页可以查看,下载电子教案和视频,在线向教师提问,上传作业等相关操作。
用户登录模块是系统的入口,用户登录模块应具有以下功能:
获得用户权限。登录模块做为系统的入口,需要对权限进行控制。不同身份登录获的不同的使用权。本系统分为教师用户和学生用户两种权限。教师用户登录后可以进行电子教案管理,视频管理,作业管理,在线答疑,留言管理等相关的操作;学生用户登录成功后可以查看,下载电子教案和视频,在线向教师提问,上传作业等相关操作。网站首页默认为学生用户登录页面。教师用户登录可以点页面中的“教师登录”进入教师登录页面。
验证用户的用户名和密码。系统在登录过程中必须输入其正确的用户名和密码,登录模块会对其进行核对。如果用户的用户名或密码错误则提示信息“用户名或密码错误”并返回用户登录界面。
为实现学生登录功能,要根据用户输入的用户名和密码判断是否是合法用户。于是创建一个LoginAction类。调用UserManager类中的validate(String name,String password)方法:
public boolean validate(String name,String password) throws Exception {
Connection conn = null;
DBconn db = new DBconn();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = db.getConn();
pstmt = conn.prepareStatement(Sql.login_tb_user);
pstmt.setString(1,name);
pstmt.setString(2,password);
rs = pstmt.executeQuery();
rs.next();
int n = rs.getInt(1);
if(n==1)
{
return true;
} else {
return false;
}
}catch(SQLException e){
e.printStackTrace();
throw e;
}finally{
db.closeRs(rs);
db.closePstmt(pstmt);
db.closeConn(conn);
}
}
本系统的教师登录模块采用了固定的用户名和密码。为实现它,我创建了一个AdminLoginAction类,调用AdminManager类中的方法:
public boolean validate(String name, String password)
{
if (("admin".equals(name))&&("admin".equals(password)))
{
System.out.print("正确!");
return true;
}else
{
System.out.print("错了");
return false;
}
}
如果教师输入的用户名或密码有误则会有提示:"用户名或密码不匹配,请重新登录!"接着页面会跳到教师登录页面。
鉴于对系统安全的考虑,用户使用系统必须先到登录页面进行身份验证,通过登录窗口用户输入用户名和密码,只有输入正确的用户名和密码后用户才能进入系统。
6.2.3 电子教案管理模块
a.电子教案管理模块分为学生用户主页的电子教案管理和教师用户主页的电子教案管理。教师成功登录后,在教师用户主页中的电子教案管理模块,教师可以上传新电子教案,也可以删除以前传过的旧电子教案。点击“上传电子教案”就会进入到电子教案上传的页面,教师点击“浏览”选择要上传的电子教案,然后点上传就完成了一个电子教案的上传。创建了一个继承于DispatchAction的UpLoadAction类,该类用于上传和下载文件。关键代码如下:
UpLoadForm uploadFile = (UpLoadForm)form;
FormFile file = uploadFile.getFile();
String uuidName = UUID.randomUUID().toString();
String kejian_Name = uuidName+file.getFileName();
String kejian_Time =uploadFile.getKejian_Time();
ServletContext servletContext = this.getServlet().getServletContext();
String path = servletContext.getRealPath("");
FileOutputStream out = new FileOutputStream(path+"/uploadC/"+ kejian_Name);
out.write(file.getFileData());
out.flush();
out.close();
UpLoadManager ulm = new UpLoadManager();
boolean flag = ulm.kejianAdd(video_Name, video_Time);
if(flag)
{
request.setAttribute("currentTime", new Date());
request.setAttribute("upload", "success");
retur, , n mapping.findForward("upload");
}
request.setAttribute("upload", "fail");
return mapping.findForward("AuploadC");
path表示得到当前项目下webRoot 的路径,为了保存视频,在webRoot下建立了一个名为uploadV的文件夹,考虑到一处编写到处运行的java语言初衷,把视频保存在tomcat服务器下.代码中的FormFile类,是映射上传文件的,对你上传的文件进行操作,可以取得文件的名字,文件的内容等。由于怕上传的电子教案的名的字会相同,于是用个UUID类。用UUID.randomUUID()给文件名加一个随机的32位的不会重复的数字。上传成功的电子教案会存在服务器的uploadC文件夹中。
6.2.4 公告管理模块
站内公告管理小模块主要功能是管理站内公告,教师可通过公告管理模块向学生们发布通知,也可以删除通知。 这是一个小模块,因此创建Back_NoteAction类调用NoteManager类中的add()方法向数据库中添加公告内容:
public boolean add(String note_title,String note_content,String note_time) throws Exception{
Connection conn = null;
DBconn db = new DBconn();
PreparedStatement pstmt= null;
try{
conn = db.getConn();
pstmt = conn.prepareStatement(Sql.add_tb_note);
pstmt.setString(1,note_titl
上一篇:JSP论文:浅议在线CD销售系统的开发及其应用