JavaWeb网上教学系统
前言:前段时间一直忙于搞毕业论文以及帮助同学弄毕设,没怎么写博客。今天整理了一个毕设项目分享出来。
前端 : bootstrap4 jsp java
后端 : springmvc ssh
缓存: redis5.0.5
富文本编辑器 : wangEditor3.1.1
数据格式转换 :gson2.8.5
树插件 : ztree3.5
数据库 : mysql5.7
该系统用户角色分为学生、老师、管理员。下面就简单介绍各个模块:
1、首页
启动项目首先进入首页,首页有个轮播图,下面显示4条通知消息。采用redis缓存,减轻了刷新又去数据库查询的压力。
2、通知公告模块
可以模糊分页查询,点击进去可以查看详情。
3、作业模块
这个模块复杂一点,角色分为学生和老师。老师布置作业,同学下载作业,做完提交上去。老师下载同学提交的作业并修改。改完后和成绩一起提交上去。
3.1、先看同学登录的
3.2、下面是教师登录的
4、资源中心模块
资源中心包括资料下载、视频在线教学两部分。
点进去就可以观看视频了
5、留言解惑模块
6、个人中心模块
学生跟老师的个人中心是不一样的,先看一下 老师的
可以修改个人资料,上传资料,上传教学视频等。
下面是学生的个人中心:可以 修改个人信息,查看我的作业分数以及下载过的资料。
7、后台管理模块
后台管理其实就是对其它模块的增删改
总结:
该系统总统来说难度不大,主要是工作量有点多。还有一些地方需要完善,比如教学视频播放那里支持的格式不多。还有就是留言解惑的评论那里,按正常来说,同学可以评论某个留言,也可以评论留言的评论。如果这样的话需要多建立一张表。我嫌麻烦就没有这么做 。
部分配置文件+截图,需要的可以参考参考
代码已经上传github,下载地址: https://github.com/21503882/netstudy
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
<context:property-placeholder location="classpath:db.properties"/>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url" value="${url}"/>
<property name="driverClassName" value="${driver}"/>
<property name="username" value="${name}"/>
<property name="password" value="${password}"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:mybatis-config.xml" />
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="loginMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.beacon.sms.dao.LoginDao" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="validateCodeUtil" class="com.beacon.sms.utils.ValidateCodeUtil" />
<bean id="loginService" class="com.beacon.sms.service.LoginServiceImpl">
<property name="loginDao" ref="loginMapper" />
<property name="validateCodeUtil" ref="validateCodeUtil" />
</bean>
<bean id="majorMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.beacon.sms.dao.MajorDao" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="dateUtil" class="com.beacon.sms.utils.DateUtil" />
<bean id="stringUtil" class="com.beacon.sms.utils.StringUtil" />
<bean id="majorService" class="com.beacon.sms.service.MajorServiceImpl">
<property name="majorDao" ref="majorMapper" />
<property name="dateUtil" ref="dateUtil" />
<property name="stringUtil" ref="stringUtil" />
</bean>
<bean id="jsonUtil" class="com.beacon.sms.utils.JsonUtil" />
<bean id="majorAction" class="com.beacon.sms.action.MajorAction">
<property name="majorService" ref="majorService" />
<property name="jsonUtil" ref="jsonUtil" />
</bean>
<bean id="studentMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.beacon.sms.dao.StudentDao" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="studentService" class="com.beacon.sms.service.StudentServiceImpl">
<property name="studentDao" ref="studentMapper" />
<property name="majorDao" ref="majorMapper" />
<property name="stringUtil" ref="stringUtil" />
<property name="loginDao" ref="loginMapper" />
</bean>
<bean id="studentAction" class="com.beacon.sms.action.StudentAction">
<property name="studentService" ref="studentService" />
<property name="jsonUtil" ref="jsonUtil" />
</bean>
<bean id="teacherMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.beacon.sms.dao.TeacherDao" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="teacherService" class="com.beacon.sms.service.TeacherServiceImpl">
<property name="teacherDao" ref="teacherMapper" />
<property name="dateUtil" ref="dateUtil" />
<property name="stringUtil" ref="stringUtil" />
<property name="loginDao" ref="loginMapper" />
</bean>
<bean id="teacherAction" class="com.beacon.sms.action.TeacherAction">
<property name="teacherService" ref="teacherService" />
<property name="jsonUtil" ref="jsonUtil" />
</bean>
<bean id="courseMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.beacon.sms.dao.CourseDao" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="courseService" class="com.beacon.sms.service.CourseServiceImpl">
<property name="courseDao" ref="courseMapper" />
</bean>
<bean id="courseAction" class="com.beacon.sms.action.CourseAction">
<property name="courseService" ref="courseService" />
<property name="jsonUtil" ref="jsonUtil" />
</bean>
<bean id="semesterMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.beacon.sms.dao.SemesterDao" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="semesterService" class="com.beacon.sms.service.SemesterServiceImpl">
<property name="semesterDao" ref="semesterMapper" />
</bean>
<bean id="semesterAction" class="com.beacon.sms.action.SemesterAction">
<property name="semesterService" ref="semesterService" />
<property name="jsonUtil" ref="jsonUtil" />
</bean>
<bean id="teachingMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.beacon.sms.dao.TeachingDao" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="scoreMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.beacon.sms.dao.ScoreDao" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
<bean id="teachingService" class="com.beacon.sms.service.TeachingServiceImpl">
<property name="teachingDao" ref="teachingMapper" />
<property name="studentDao" ref="studentMapper" />
<property name="scoreDao" ref="scoreMapper" />
</bean>
<bean id="teachingAction" class="com.beacon.sms.action.TeachingAction">
<property name="teachingService" ref="teachingService" />
<property name="jsonUtil" ref="jsonUtil" />
</bean>
<bean id="scoreService" class="com.beacon.sms.service.ScoreServiceImpl">
<property name="scoreDao" ref="scoreMapper" />
</bean>
<bean id="scoreAction" class="com.beacon.sms.action.ScoreAction">
<property name="scoreService" ref="scoreService" />
<property name="jsonUtil" ref="jsonUtil" />
</bean>
<bean id="excelUtil" class="com.beacon.sms.utils.ExcelUtil" />
<bean id="uploadAction" class="com.beacon.sms.action.UpLoadAction">
<property name="excelUtil" ref="excelUtil" />
<property name="studentService" ref="studentService" />
<property name="teacherService" ref="teacherService" />
<property name="scoreService" ref="scoreService" />
</bean>
<bean id="loginAction" class="com.beacon.sms.action.LoginAction">
<property name="loginService" ref="loginService" />
<property name="teacherService" ref="teacherService" />
<property name="studentService" ref="studentService" />
<property name="scoreAction" ref="scoreAction" />
<property name="upLoadAction" ref="uploadAction" />
</bean>
<context:component-scan base-package="com.beacon.sms.service"></context:component-scan>
<!-- 添加事务 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
<tx:method name="select*" propagation="SUPPORTS" read-only="true"/>
<tx:method name="is*" propagation="SUPPORTS" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution(* com.beacon.sms.service.*.*(..))" id="pc"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pc"/>
</aop:config>
</beans>
该系统总统来说难度不大,主要是工作量有点多。还有一些地方需要完善,比如教学视频播放那里支持的格式不多。还有就是留言解惑的评论那里,按正常来说,同学可以评论某个留言,也可以评论留言的评论。如果这样的话需要多建立一张表。我嫌麻烦就没有这么做 。