action包用来存放Action类,entity用于存放从hibernate逆向过来的实体类的java文件。
4.1系统Model层实现
由于工程属于数据库先行的方法,因此需要将数据库逆向成为hibernate实体类,hibernate3.1中提供了这样的工具。在逆向之前,我们需要对我们建立好的数据库在MyEclipse的Hibernate视图下建立一个连接。方法是,在Hibernate视图,左边DB Browser鼠标右击->【new】,然后再弹出的对话框中填写好相关信息,点击【Finish】即新建一个数据库连接。
建立好需要的数据库连接之后,就要为项目添加Hibernate组件了,方法是:方法是:在项目上点击鼠标右键->【MyEclipse】->【Add Hibernate capabilities……】,然后选择Hibernate版本,这里用的是3.1,然后单击【Finish】完成Hibernate功能的添加。
接下来,就可以着手将数据表逆向到Hibernate实体类了,还是要到数据库视图,双击打开之前建立好的数据库连接,选择要逆向成为实体类的数据表,鼠标右击->【Hibernate Reserver Engineering】,在弹出来的对话框中,选择实体类生成的位置——也就是之前建立的com.entity包。勾选生成DAO类,其余设置保持默认即可,点击【Finish】完成数据表的逆向,此时再回到工程视图,可以看见生成好的实体类和实体的DAO类。
这里,每一个实体类实际上由三个文件组成:抽象实体类、具体实体类和实体数据库访问对象(DAO)。抽象类中包含了数据表的属性和一些抽象的方法,具体实体类中则是方法的具体实现,DAO类则是实现了对数据库记录的操作。Hibernate已经为DAO类提供了一些常用的方法,而Hibernate自身实际上是用hql语句对数据库进行操作的,如果在使用过程中需要自定义新的数据库操作方法,则可以在对应的DAO文件中编写相应的方法。
到此,Model层就实现了,由于使用了Hibernate,Model的实现变得非常容易。
15
4.2系统配置和界面
4.2.1 界面实现
围绕系统用例,从用例出发来设计所需的Action。那么按照用例,第一个Action的作用应当是实现用户的登陆,若登陆成功,该Action应当导航到用户登陆成功界面,失败则给出提示信息并停留在登陆页面。
登录页面图如下:
登录页面代码如下:
16
学生角色登录系统成功后,会出现下面的页面:
17
页面代码如下:
<%@page language=\ contentType=\%> <%@page import=\errorPage=\ %>
<%String stuid = (String)request.getSession().getAttribute(\);
if(stuid==null){response.sendRedirect(\);}
String root=request.getContextPath(); %>
/studentAction.do?method=getDisplayCourse\>选修课程 >>
/studentAction.do?method=geCheckmark\>查看成绩 >>
/studentAction.do?method=getEditStudent&self=1\>更改信息 >>
/login.jsp\>注销
18
4.2.2 显示学生所选课程信息
4.2.3 显示课程成绩
代码如下:
<%@ page language=\ errorPage=\ pageEncoding=\
contentType=\ isELIgnored=\%> <%@include file=\%>
19