首页 >> 实验教学 >> 实验项目 >> 详细内容
实验教学
 
实验项目 >> 正文
中小型软件项目研发实践
日期:2021-12-09 18:31:22  发布人:nclgjsj  浏览量:123

实验一 基于Struts2的登录系统实例

一、实验目的:

通过使用MyEclipse10来开发简单的登录系统,从而掌握如何使用它们开发基于Struts2Web项目。

二、实验内容:

该项目为登录系统,项目有一个登录页面(login.jsp),登录页面对应的业务逻辑组件是LoginBean类,对应的业务控制器LoginAction类,如果登录成功(用户名、密码正确)跳转到success.jsp页面,如果登录失败(用户名、密码不正确)则重新回到登录页面(login.jsp)。此外还需要配置web.xml,配置struts.xml

三、实验步骤:

1.web.xml中配置核心控制器FilterDispatcher

<filter>

        <filter-name>struts2</filter-name>

        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

    </filter>

    <filter-mapping>

             <filter-name>struts2</filter-name>

            <url-pattern>/*</url-pattern>

    </filter-mapping>

2.编写视图组件(JSP页面)

登录页面(login.jsp

    <body>

        <form method="post" action="login">

            用户名:<input name="userName" type="text" size="24">  <br>

             码:<input name="password" type="password" size="26">  <br>

            <input type="submit" value="登录">

        </form>

        <hr>

    </body>

登录成功页面(success.jsp

    <body>

        <h1>你登录成功,欢迎你!</h1>

    </body>

3.编写登录页面对应的业务逻辑组件JavaBean

    public boolean login(String userName,String passWord){

        boolean b=false;

        if(userName.equals("QQ")&&passWord.equals("123")){

            b=true;

            return b;

   }else{

            b=false;

            return b;

}    }

4.编写业务控制器Action

为了处理视图的业务逻辑,一般每个视图都会对应一个业务控制器Action。登录页面(login.jsp)对应的业务控制器(LoginAction.java

   public String execute() throws Exception{

        LoginBean lb=new LoginBean();

        if(lb.login(userName, passWord)){

            return "success";

   }else{

            return "error";

}    }

5.struts.xml中配置Action

业务控制器LoginAction需要在struts.xml中配置,只有这样核心控制器才能找到该业务控制器。另外,核心控制器根据业务控制器返回的值以及在struts.xml中的配置决定下一步跳转到哪个页面上去。

<struts>

    <include file="example.xml"/>

    <package name="zzf" extends="struts-default">

    <action name="login" class="ch01Action.LoginAction">

     <result name="error">/login/login.jsp</result>

            <result name="success">/login/success.jsp</result>

        </action>

    </package>

</struts>

6.项目部署和运行

  • 使用MyEclipse10.6开发好项目后,要先发布项目(项目部署),然后启动服务器,最后运行页面。要发布项目可单击如图1-32所示的图标,弹出如图1-33所示的界面,在其中的Project”选择要发布的项目,然后单击Add”,弹出如图1-34所示的界面,选择需要使用的服务器后单击Finish”,再单击OK”,项目发布即完成。

 

实验二 基于Struts2的个人信息管理系统

一、实验目的:

能够熟练运用Struts2的框架知识开发Java Web项目。

二、实验内容:

系统基于B/S设计,可以发布到网上,用户可以随时存取个人信息,可以在系统中任意添加、修改、删除个人数据,包括个人的基本信息、个人通讯录、日程安排、个人文件管理。

三、实验步骤:

1、项目需求说明

要实现的功能包括四个方面:

1)登录与注册

系统的登录和注册功能。

2)个人基本信息管理模块

系统中对个人基本信息的管理包括:个人的姓名、性别、出生日期、民族、学历、职称、登录名、密码、电话、家庭住址等。

2)用户个人通讯录模块

系统的个人通讯录是保存了个人的通讯录信息,包括自己联系人的姓名、电话、邮箱、工作单位、地址、QQ等。可以自由添加联系人的信息,查询或删除联系人。

3)日程安排模块

日程模块记录自己的活动安排或者其它有关事项,如添加从某一时间到另一时间要做什么事,日程标题、内容、开始时间、结束时间。可以自由查询,修改,删除。

4)个人文件管理模块

该模块实现用户在网上存储临时文件的功能。用户可以新建文件夹,修改、删除、移动文件夹;上传文件、修改文件名、下载文件、删除文件、移动文件等。

项目系统分析

2、系统功能描述:

1)用户登录与注册

个人通过用户名和密码登录系统;注册信息包含自己的个人信息。

2)查看个人信息

主页面显示个人基本信息:登录名、用户密码、用户姓名、用户性别、出生日期、用户民族、用户学历、用户职称、用户电话、用户住址、用户邮箱等。

3)修改个人信息

用户可以修改自己的基本信息。如果修改了登录名,下次登录时应使用新的登录名。

4)修改登录密码

用户可以修改登录密码。

5)查看通讯录

用户可以浏览通讯录列表,按照姓名检索等。

6)维护通讯录

用户可以增加、修改、删除联系人。

7)查看日程安排

用户可以查看日程安排列表,可以查看某一日程的内容时间等。

9)维护日程

一个新的日程安排包括:日程标题、内容。用户可以对日程进行添加、修改、删除等操作。

10)浏览下载文件

用户可以任意浏览文件、文件夹,并可以下载到本地。

11)维护文件

用户可以新建文件夹,修改、删除、移动文件夹,移动文件到文件夹,修改文件名、上传文件、下载文件、删除文件等操作。

3、系统模块结构如图所示

 

4、项目数据库设计

本实训在数据库中可建立如下表,用于存放相关信息。

1) 用户表(user),用于管理index.jsp页面中用户登录的信息以及用户注册(register.jsp)的信息。

2) 通讯录管理表(friends),用于管理通讯录,即管理联系人(好友)。

备注:表friends中的用户登录名字段userName用于关联用户的好友信息列表。

3) 日程安排管理表(date),用于管理用户的日程安排。

备注:表date中的用户登录名字段userName用于关联用户的日程信息。

4) 个人文件管理表(file),用于管理个人文件管理。

备注:表file中的用户登录名字段userName用于关联用户的文件管理信息。

5、项目实现(代码见程序)

 

 

实验三 基于Struts2+Hibernate5的登录和注册系统

一、实验目的:

使用Struts2Hibernate5开发一个实现登录和注册功能的项目

二、实验内容:

本项目实现用户登录和用户注册功能。有一个登录页面(login.jsp),登录页面对应的业务控制器为LoginAction,该Action中覆盖了validate()方法,使用手工验证对登录页面进行验证,如果输入的用户名和密码正确,进入登录成功页面(success.jsp),如果用户没有注册需先注册,该注册页面对应的业务控制器为RegisterAction,注册成功后返回登录页面。还需要配置web.xml,在struts.xml中配置Action

在基于Struts2+Hibernate的项目开发中,连接数据库时需要Hibernate的配置文件hibernate.cfg.xml或者hibernate.properties,本项目使用的是hibernate.cfg.xml,配置文件主要用于加载数据库的驱动以及与数据库建立连接等,该配置文件一般与struts.xml文件放在同一位置,该配置文件在项目运行时需要加载,本项目编写一个加载该配置文件的类HibernateSessionFactory,该类封装了配置文件的加载方法,即加载配置文件的JavaBean

另外,在使用Hibernate时,项目所用数据库中的每一张表都对应一个持久化对象PO。通过PO对象把页面中的数据保存起来并把数据存到数据库中。为了简化开发,本项目的登录页面和注册页面都使用同一张表,登录页面和注册页面中的数据都保存在同一个PO对象UserInfoPO中。每个PO对象一般都会对应一个映射文件UserInfoPO.hbm.xml,映射文件配置PO对象与数据库中表之间的映射关系;映射文件一般都放在和其对应的PO对象所在包中。为了封装登录和注册功能对数据的操作,即登录和注册页面要实现的业务逻辑,本项目编写一个名为LoginRegisterInfoJavaBean,该类提供了登录和注册业务处理,可以实现登录和注册的持久化业务操作。

三、实验步骤:

1、编写登录页面(login.jsp)登录成功页面(success.jsp

2、编写注册页面(register.jsp

3、编写业务控制器Action

登录页面对应的业务控制器是LoginAction.java

注册页面对应的业务控制器(RegisterAction.java

4、修改struts.xml配置Action

5、Hibernate的配置文件

  • 使用Hibernate需要通过Hibernate的配置文件加载数据库驱动以及与数据库建立连接,配置文件为hibernate.cfg.xml

<hibernate-configuration>

   <session-factory>

   <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

   <property name="connection.url">jdbc:mysql://localhost:3306/test</property>

   <property name="connection.username">root</property>

<property name="connection.password">root</property>

<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>

<mapping resource="PO/UserInfoPO.hbm.xml"/>

</session-factory>

</hibernate-configuration>

6.加载Hibernate配置文件的类

加载Hibernate.cfg.xml文件的类为HibernateSessionFactory  

7.PO对象以及对应的映射文件

PO对象的类为UserInfoPOPO对应的映射文件(UserInfoPO.hbm.xml

<hibernate-mapping>

<class name="PO.UserInfoPO" table="info" catalog="test">

<id name="id" type="int">

       <column name="id"/>

       <generator class="assigned"/>

     </id>

     <property name="userName" type="string">

     <column name="userName" length="30" not-null="true"/>

     </property>

     <property name="password" type="string">

       <column name="password" length="30" not-null="true"/>

     </property>

</class>

</hibernate-mapping>

8.封装对数据操作的类

将登录和注册业务功能封装到类LoginRegisterInfoJavaBean)中。

9.项目部署和运行

 

实验四 基于Struts2+Hibernate的教务管理系统

一、实验目的:

通过我们熟悉的教务管理系统开发来综合训练Struts2Hibernate框架技术的整合应用,并进一步提高项目实践能力。

、实验内容:

项目实现的功能包括学生管理部分、教师管理部分和管理员管理部分。管理员管理部分实现对学生、教师以及课程的管理。

学生管理部分的功能主要包括:学生学籍管理、必修课成绩查询、修改个人信息和密码、选课功能(选修课选课)、查询选修成绩,并提供QQ留言和校园论坛等功能。

教师管理部分的功能主要包括:教师基本信息管理、修改个人信息和密码、查询必修课课程信息、成绩录入、查询选修课程以及QQ留言和校园论坛等。

管理员管理部分的功能主要包括:学生管理、教师管理、课程管理和修改密码等。

三、实验步骤:

1、项目系统分析

1)学生功能模块实现的功能主要包括:

1)学生学籍管理:学生学籍基本信息包括:学号、姓名、籍贯、电话、电子邮件、学分、学院、性别以及上传照片等。

2)成绩查询:查询必修课中的考试课程及考试分数。

3)修改个人信息:修改学生学籍信息。

4)修改秘密:修改个人密码。

5)进入选课:选择计划修习的选修课程。

6)已选课程:查询已选的选修课程。

7)选课成绩:查询选修课程名称及考试成绩。

8)其它服务:提供QQ留言和校园论坛(BBS)功能。可以通过QQ给管理员或者教师留言,也可以访问学校BBS论坛,在论坛中与同学、教师和管理员进行交流。

2教师功能模块实现的功能主要包括:

1)教师基本信息管理:包括教师姓名、性别、年龄、职称、所在学院等。

2)修改个人信息:修改教师个人基本信息和密码。

3)查询课程:查询必修课程、上课时间、上课地点以及开课专业、选修学生信息等。

4)成绩录入:录入必修课程考试成绩。

5)选修课信息:查询选修课程信息以及如入成绩。

6)其它服务:QQ留言,回复留言,访问学校BBS论坛,在论坛中与学生、教师和管理员进行交流。

3管理员功能模块实现的功能主要包括:

1)学生管理:包括查看所有学生信息、添加学生信息、导入学生信息(以Excel表格形式将批量学生信息导入数据库中)。

2)教师管理:包括查看所有教师信息、添加教师信息、导入教师信息(以Excel表格形式将批量教师信息导入数据库中)。

3)课程管理:包括查看所有课程信息、添加课程信息、导入课程信息(以Excel表格形式将批量课程信息导入数据库中)。

4)修改密码:修改管理员密码

2、设计系统功能模块结构图

 

3、数据库设计

项目中用到数据库(lqmsql)和表(adminclassesscorestudentstudent_classesteacher)。

管理员表(admin)用于管理管理员账号和密码。

课程表(classes)用于管理课程的信息

学生表(student)用于保存学生有关的信息

学生选课表(student_classes)保存学生成绩、学生标识和课程号,即是把学生成绩与学生表和课程表关联起来的一个中间表。

4、项目实现(代码见程序)

 

实验五 基于Struts2+Hibernate+Spring3的登录系统

一、实验目的:

使用Struts2、Hibernate和Spring3开发一个实现登录功能的项目。

、实验内容:

WEB-INF文件夹下新建一个lib文件夹,该文件中保存了Hibernate所需的JAR文件、Spring所需的JAR文件、MySQL的JDBC驱动。在库中加载JAR文件时可以直接从该文件夹中加载这些JAR文件到项目库中;另外,在WEB-INF文件夹下还有一个applicationContext.xml文件,这是因为在web.xml中配置的有加载该文件的参数,便于将来加载该配置文件。

系统有一个登录页面(login.jsp),登录页面对应的业务控制器类为LoginServiceAction(在包com.struts.action中),如果登录成功跳转到登录成功页面(success.jsp),在包com.dao中有一个接口(UserDao.java),该接口定义了登录功能的常用操作,该接口的实现类(UserDaoImpl.java)在包com.dao.impl中,PO对象类(User.java)在包com.entity中,该PO对象对应的映射文件也在包com.entity中,名为User.hbm.xml, Action需要在struts.xml中配置。

三、实验步骤:

1、在web.xml中配置Struts2Spring3

2、编写视图组件(JSP页面)

登录页面(login.jsp

登录成功页面(success.jsp

3、编写ActionJavaBean

登录页面对应的业务控制器类(LoginServiceAction.java

登录功能的接口(UserDao.java

实现登录功能类(UserDaoImpl.java

PO对象(User.java

PO对象对应的映射文件(User.hbm.xml

4、编写Struts2Spring3Hibernate的配置文件

<!-- 配置数据源 -->  

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  

   <property name="driverClass"  value="com.mysql.jdbc.Driver"/>  

   <property name="jdbcUrl"  value="jdbc:mysql://localhost:3306/test"/>

   <property name="user" value="root"/>

   <property name="password" value="root"/>

   <property name="maxPoolSize" value="40"/>

   <property name="minPoolSize" value="1"/>

   <property name="initialPoolSize" value="1"/>

   <property name="maxIdleTime" value="20"/>

</bean>

<!-- 定义了HibernateSessionFactory-->  

<bean id="sessionFactory"  

     class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  

        <property name="dataSource">  <ref bean="dataSource" />   </property>  

       <property name="mappingResources">  

              <list>

                  <value>com/entity/User.hbm.xml</value>    

              </list>  

     </property>  

     <property name="hibernateProperties">  

             <props>  

                <prop key="hibernate.dialect">  

                  org.hibernate.dialect.MySQLDialect   

                 </prop>  

             </props>  

     </property>  

</bean>

<!-- HibernateTemplate类是简化Hibernate数据访问代码的辅助类,可以获取一个Session对象。-->

<bean id="hibernateTemplate"

  class="org.springframework.orm.hibernate3.HibernateTemplate">  

     <property name="sessionFactory"> <ref bean="sessionFactory"/>  </property>  

     <property name="allowCreate"> <value>true</value> </property>  

</bean>

<!-- 依赖注入-->

<bean id="userDao" class="com.dao.impl.UserDaoImpl" >

  <property name="sessionFactory">   

          <ref bean="sessionFactory"/>  

    </property>  

  </bean>

5、项目部署和运行

 

实验六 基于Struts2+Hibernate+Spring3BBS系统

一、实验目的:

系统开发的目的主要是为学生提供一个用于技术交流、生活娱乐的BBS

、实验内容:

BBS系统功能包含了

(1)普通(游客)用户功能,只能查看BBS系统的论坛,不能发帖和留言。

(2)会员用户,包括会员登录功能、网站搜索帖子功能、我的帖子功能、修改个人信息功能、修改密码功能、发帖和回帖功能。用户登录后可以在各个板块发帖和回帖。

(3)管理员,包括登录功能、我的帖子功能、修改个人信息功能、帖子管理功能、板块管理功能。

三、实验步骤:

1、项目系统分析

1)普通(游客)用户:只能查看BBS系统的论坛,不能发帖和留言。

2)会员用户

1)会员登录功能:只有登录后方可实施修改个人信息、上传个人头像、修改密码、发帖、查看自己所有发帖、回复别人帖子等操作。

2)网站搜索帖子功能:可以通过搜索功能查找BBS中的帖子。

3)我的帖子功能:可以查看用户本人发过的所有帖子。

4)修改个人信息功能:可以修改用户的昵称、QQ号码、邮箱以及上传头像。

5)修改密码功能:可以修改用户的登录密码。

6)发帖和回帖功能:用户登录后可以在各个板块发帖和回帖。

3)管理员

1)登录功能:管理员登录后可以实现发布管理员贴子、管理员个人信息修改、对帖子进行管理、板块管理等功能。

2)我的帖子功能:可以发布管理员帖子。

3)修改个人信息功能:可以修改管理员的昵称、QQ号码、邮箱以及上传头像。

4)帖子管理功能:可以修改帖子和删除帖子。

5)板块管理功能:可以增加各级板块功能。

2、绘制系统功能模块结构图

 

 

3、项目的数据库设计

本项目使用的数据库是MySQL。项目中用到的数据库(bbs)和表(adminboardpostreplystudent

 管理员表(admin)用于保存管理员的信息

 板块表(board)用于保存板块的信息

 帖子表(post)用于保存帖子的信息

 回帖表(reply)用于保存回复帖子的信息

 会员表(student)用于保存会员的信息

4、项目实现

该项目命名为BBS”,在项目“Web页”文件夹中创建一个页面(redirect.jsp),运行该文件后将请求提交到业务控制器IndexAction中,用于加载并初始化BBS页面,然后把页面跳转到BBS论坛主页面(index.jsp

核发:nclgjsj 点击数:123收藏本页