一、简介
ssm框架为现在十分流行的mvc主流框架。mybatis负责与数据库交互,springmvc与spring完美适配,负责控制器和视图渲染。之前有初步学习过ssm框架,这次借学校里的web课设实践一番,并总结出一些问题。前端使用的是bootstrap框架。
二、项目简介
社团是学校个性化设置的综合实践课程,也是培养学生综合素质和个人兴趣的有效途径。为给同学们提供社团的各方面信息,让同学们及时了解社团动态,积极参加社团活动,本系统拟开发实现学校社团报名课程管理系统,包括前台各个社团信息的展示、报名和后台的社团课程管理、选课学员管理、教师管理、社团信息管理以及每个社团的报名统计等功能。 选做:需区分学年或学期(即按学年或学期报名),统计功能实现柱状图或饼图。
三、数据库设计
这次的数据库设计比较简单,没有使用外键,而是冗余设计。
1、学生表(student)
2、课程表(course)
说明:time字段为开课学期,credit为学分,belong为所属社团,amount为课程总人数,selected为已选人数。
3、管理员表(admin)
4、选课表(study)
说明:s开头为学生表中关联字段,c开头为课程表中关联字段
四、运行效果
五、代码结构
这次完成的比较仓促,代码结构不够清晰,其中有许多冗余或者逻辑不合理的部分,欢迎大家提出修改。
六、源代码
https://github.com/verlen/webBigProject
七、遇到的问题(不完全统计)
1、maven 编译出错 webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)
maven的web项目默认的webroot是在src\main\webapp。如果在此目录下找不到web.xml就抛出以上的异常。
<build> <plugins> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.2.8.v20150217</version> <configuration> <httpConnector> <port>8155</port> </httpConnector> <stopKey>shutdown</stopKey> <stopPort>9966</stopPort> <webAppSourceDirectory>${basedir}/web</webAppSourceDirectory> <webAppConfig> <allowDuplicateFragmentNames>true</allowDuplicateFragmentNames> </webAppConfig> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <webResources> <resource> <directory>${basedir}/web</directory> </resource> </webResources> </configuration> </plugin> </plugins> </build>
2、 springmvc 静态资源处理
<mvc:annotation-driven /> <mvc:default-servlet-handler/>
以上配置将Web根路径"/"及类路径下 /META-INF/ 的目录映射为/resources路径。假设Web根路径下拥有images、js这两个资源目录,在images下面有bg.gif图片,在js下面有 test.js文件,则可以通过 /resources/images/bg.gif 和 /resources/js/test.js 访问这二个静态资源。
假设WebRoot还拥有images/bg1.gif 及 js/test1.js,则也可以在网页中通过 /resources/images/bg1.gif 及 /resources/js/test1.js 进行引用。
3、 springmvc使用sevlet做welcome页面
在web.xml中加入
<servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/index</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.mvc</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index</welcome-file> </welcome-file-list>