1、一 试验题目 在线学生管理系统二 开发背景介绍 伴随网络技术发展和普及很多以前基于CS应用全部开始向BS方向发展,而Java在这方面应用有着很多其它技术不含有优点,Java开发Web应用关键技术是Servlet和Jsp技术,其实Jsp只Servlet一个进化方便了开发者使用。它们全部含有强大功效适适用于很多大型项目标开发。在未来基于BS应用也必将得到很好发展。本试验是在讲完Jsp和Servlet课程后为掌握所学知识而做试验。三 开发工具 此次试验是在Windows平台下开发采取集成开发工具是Myeclipse8.5,数据库使用是MySql5.5,服务器采取是Tomcat7.0。四 试验设计 在
2、本试验中模拟是MVC设计模式,但因为系统比较小所以省略了业务层,在页面层中直接调用了数据层。在做这个在线学生管理系统中业务基础上全部是由Jsp页面完成没有用到Servlet控制器。五 实现功效 BrowserTomcat请求htmlJSP处理页MysqlMysql数据库六 试验截图1. 登陆界面登录能够选择是身份,能够是学生,老师,和管理员。登录界面是login.html,它想login.jsp页面传了3个参数来进行页面验证,其中验证部分代码是,String uname = request.getParameter(userName);String pwd = request.getParam
3、eter(userPass);int i =Integer.parseInt(request.getParameter(identity);String sql = select * from userManger where username=+uname+ and userpassword=+pwd+; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); if(rs.next() session.setAttribute(userId,rs.getString(id); sessio
4、n.setAttribute(userMark,rs.getString(identitymark); response.sendRedirect(index.jsp); else response.sendRedirect(2.html); 2. 其中系统用学生表是这是学生表里面初始化数据,你能够看到登录用户名和密码3. 假如你输入登录密码不正确,就会跳转到错误界面4. 这是学生表登录成功界面在这页面显示用户名称和上次登录时间,这里是从数据库里面查询,用到了session功效。当然这个系统也能够在一台电脑上登录多个用户,多个用户之间是不会发生冲突,因为链接代码是学生id号。 int user
5、Id=Integer.parseInt(session.getAttribute(userId).toString(); int userMark =Integer.parseInt(session.getAttribute(userMark).toString(); String sql =select * from student_table where id=? and identitymark=?; PreparedStatement ps=conn.prepareStatement(sql); ps.setInt(1,userId); ps.setInt(2,userMark); R
6、esultSet rs=ps.executeQuery(); rs.next();取得用户显示信息代码以下: 你好, 【管理员】 欢迎登录 你上次登录时间是:*年*月*日 5. 在这个页面,你能够查询自己个人信息。6. 假如个人信息不对,你能够进行修改个人信息,当然修改后会需要管理员同意才生效。修改个人信息时也是先从数据库进行取值,然后放到updatestuInfo.Jsp中进行显示。其中页面代码是: function judgeSex() /alert(); var sel=document.getElementById(s
7、ex); if(=0)sel.innerText=男; else sel.innerText=女; 个人基础信息表 姓名: img src=././ 性别: 年纪: 手机: 所属系名称: 家庭住址: 教导员: 宿舍号: 爱好: 备注: 7. 当然学生还能够查询成绩和查看自己登录情况,我这儿就不一一演示了,我们放到admin中区演示,下面我们看老师登录。老师登录时候在身份栏里面选择老师就行了,当然必需要用户名和密码必需正确,不然又跳转到errorr.html了8. 这是老师数据库中信息表你能够看到老师登录用户名称和密码。9. 这是老师登录界面,你能够看到它所操作得内容显著比学生多了。能够修改学生
8、成绩了。10. 当然老师各个分页面和学生差不多,我也就不一一截图了,你能够直接看我源文件代码。下面我们关键讲管理员登录情况。这是数据库中管理员表,管理员能够是总管理员和各系管理员,她们操作得学生也是不一样。11. 这是管理员登录后界面。12. 因为这个页面比较大,所以我截了两个图。管理员操作内容比较多,能够查看全部用户,添加用户公告,删除用户,修改老师和学生基础信息等等。13. 这是查看学生信息表,这里就包含到了查询,这里面全部信息全部是从数据库里面查询出来。14. 能够对学生学生信息进行修改和删除,还有添加操作。假设我们要对序号为1shezhanjun进行修改操作。当然这里包含到了验证输入是
9、否正确,用到了js和servlet技术。15. 修改成功后就跳转到刚才页面了。这里我这是把名字修改为了佘占君,所以你看到信息就改变了。修改页面用代码:16. 当然我们能够对上面信息进行删除,比如我们还是删除第一条统计,我们删除后,就是这么了。17. 在这里还能够添加学生。录入学生基础信息,还能够直接从数据库中取。在添加页面用到了页面验证,我写到了一个通用js文件里面了,代码以下:/* 判定是否为空!第一个参数是id,第二个参数是判定不为空元件名称。*/function checkIsEmpty(id,message) var flag=true; if(document.getElementB
10、yId(id).value=) alert(message+不能为空!); /鼠标焦点停留在那个文本框,并设置背景色为红色 document.getElementById(id).focus(); document.getElementById(id).style.backgroundColor=red; flag=false; elsedocument.getEmelentById(id).style.backgroundColor=white; return flag; /*让文本框输入只能是数字*/ function checkNumber() if(event.keyCode57|ev
11、ent.keyCodelen) alert(长度必需小于+len+位!);document.getElementById(id).focus();document.getElementById(id).style.backgroundColor=red; return false; elsedocument.getElementById(id).style.backgroundColor=white; return true; 18. 这是学生成绩录入界面。19. 这里面有课程号和课程名称,全部是从数据库中取。20. 学生成绩查询,你能够查询学生成绩。而且能够修改。21. 当然还能够进行学生成
12、绩修改。修改会产生修改统计,我们也保留起来了,以供以后查询使用。22. 学生成绩表在数据库中是这么。这里是学号和课程号得键值对。23. 当然你能够查询其中某个学生成绩单。24. 假如你想了解某个学生基础信息,你能够进行查询。这里支持模糊搜索。25. 老师信息查询和修改和学生差不多,所以我也就不一一陈说了,最终就是系统登录,能够查询用户登录信息。26. 查询后得到登录信息表。它也是从数据库中取得。27. 你查询后就得到了这么表。七试验代码【部分关键功效代码】1.我用到jsp链接代码是:2.常见更新页面代码(这是更新学生信息表,admin和老师用户全部要用它,所以我写在外面了):%int id =
13、 Integer.parseInt(request.getParameter(id);/因为得到汉字会出现乱码现象,所以要进行转码工作String stuname =new String(request.getParameter(txtName).getBytes(ISO8859-1),gb2312);String stupassword =new String(request.getParameter(txtPassword).getBytes(ISO8859-1),gb2312);int age = Integer.parseInt(request.getParameter(chkAge)
14、;String mobile=new String(request.getParameter(txtMobile).getBytes(ISO8859-1),gb2312);String home_address =new String(request.getParameter( txtHomeAddress).getBytes(ISO8859-1), gb2312); String series_name=new String(request.getParameter(txtSeriesName).getBytes(ISO8859-1),gb2312);String counsellor=ne
15、w String(request.getParameter(txtCounsellor).getBytes(ISO8859-1),gb2312);String dorm=new String(request.getParameter(txtDorm).getBytes(ISO8859-1),gb2312);/因为没有处理拷贝文件方法,所以临时 不更新照片路径。/String photo= request.getParameter(txtPhoto);/String hobby=new String(request.getParameter(chkHobby).getBytes(ISO8859-
16、1),gb2312);String hobby=;String boxes=request.getParameterValues(chkHobby); /循环取得复选框里面值 if (boxes != null & boxes.length != 0) for(int i=0;i3.用到重文件中解析学生信息代码:package excel;import java.io.File;import java.util.ArrayList;import beans.Student;import jxl.Sheet;import jxl.Workbook;public class ImportDataF
17、romExcel public static void main(String args)ImportDataFromExcel data = new ImportDataFromExcel();String fileName = 学生信息.XLS;ArrayList students = data.getStuentInfo(fileName,04计算机);for(Student stu:students)System.out.println(stu.toString();public Workbook getWorkBook(String fileName) throws Exceptio
18、nWorkbook workbook = Workbook.getWorkbook(new File(fileName);return workbook;public ArrayList getStuentInfo(String fileName, String sheetName)Workbook workbook = null;tryworkbook = getWorkBook(fileName);catch(Exception e)System.out.println(e.toString();if(workbook = null)return null;Sheet sheet = wo
19、rkbook.getSheet(sheetName);ArrayList students = new ArrayList();for(int i=3;i11;i+)Student stu = new Student();stu.setSid(sheet.getCell(1,i).getContents();stu.setSname(sheet.getCell(2,i).getContents();stu.setSex(sheet.getCell(3,i).getContents();stu.setDepartment(sheet.getCell(4,i).getContents();stu.
20、setMajor(sheet.getCell(5,i).getContents();students.add(stu);return students;4.在index.html用到了css样式表控制,代码以下:#container width:100%; background:url(./images/bg4.gif); margin:auto;#nav background:url(./images/bg1.jpg); height:70px;#header background:url(./images/bg2.jpg); height:25px;#left float:left; wi
21、dth:175px; background:url(./images/bg3.jpg);#right float:left;#bottom clear:both; background:#BACEEF; height:50px;html,body font-size:14/16px; font-family:Arial,宋体,微软雅黑;.font1 font-size:14px;.font2 font-size:16px;a font-size:14px; font-family:华文中宋;a:link color:#1B58A6; text-decoration:none;a:visited color:#728EB3; text-decoration:none;a:hover color:red; text-decoration:underline;a:active color:#BAD0E3; text-decoration:none;八试验心得体会 总来说从这个试验中我学到了不少东西,比如怎样保留用登录,我刚开始一直不会用session不过经过查询资料看了书本后,我知道了,我学会了独立处理问题能力,碰到问题关键是汉字信息乱码问题,不过最终知道用设置字符默认编码方法,所以问题就处理了,我从这个试验中学到还有很多,确实从中学到了不少东西。