ssm课程网站系统源码分享非maven(ssm课设)

这篇文章给大家聊聊关于ssm课程网站系统源码分享非maven,以及ssm课设对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

一:概述SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛。

Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP。SpringMVC是Spring实现的一个Web层,相当于Struts的框架,但是比Struts更加灵活和强大!Mybatis是一个持久层的框架,在使用上相比Hibernate更加灵活,可以控制sql的编写,使用XML或注解进行相关的配置!

根据上面的描述,学习SSM框架就非常的重要了!

二:搭建一个SSM的过程

使用Maven管理项目使用Maven在Eclipse中创建一个webapp的项目,具体的创建过程不做演示,如有不会创建的[创建项目]也可以使用Maven命令进行创建,在Dos窗口进入指定的目录,执行下面命令:

mvnarchetype:create-DgroupId=org.ssm.dufy-DartifactId=ssm-demo-DarchetypeArtifactId=maven-archetype-webapp-DinteractiveMode=false\n\n

使用命令要注意,系统安装了Maven,并配置好了环境变量![Maven的安装和环境变量配置]

导入项目(命名创建),添加依赖导入项目是IDE中,或者直接在IDE创建,一般默认有【src/main/java】,手动创建【src/test/resources】、【src/test/java】文件夹。如下项目结构:然后直接配置pom.xml文件中的包依赖!

<projectxmlns=&34;xmlns:xsi=&34;\nxsi:schemaLocation=&34;>\n<modelVersion>4.0.0</modelVersion>\n<groupId>org.dufy</groupId>\n<artifactId>ssm</artifactId>\n<packaging>war</packaging>\n<version>0.0.1-SNAPSHOT</version>\n<name>ssmDemo</name>\n<url>http://maven.apache.org</url>\n<properties>\n\t<spring.version>4.0.5.RELEASE</spring.version>\n\t<mybatis.version>3.2.1</mybatis.version>\n\t<slf4j.version>1.6.6</slf4j.version>\n\t<log4j.version>1.2.12</log4j.version>\n\t<mysql.version>5.1.35</mysql.version>\n\t\n\t\n</properties>\n<dependencies>\n<!–添加Spring依赖–>\n\t<dependency>\n\t\t<groupId>org.springframework</groupId>\n\t\t<artifactId>spring-core</artifactId>\n\t\t<version>${spring.version}</version>\n\t</dependency>\n\t<dependency>\n\t\t<groupId>org.springframework</groupId>\n\t\t<artifactId>spring-context</artifactId>\n\t\t<version>${spring.version}</version>\n\t</dependency>\n\t<dependency>\n\t\t<groupId>org.springframework</groupId>\n\t\t<artifactId>spring-context-support</artifactId>\n\t\t<version>${spring.version}</version>\n\t</dependency>\n\t<dependency>\n\t\t<groupId>org.springframework</groupId>\n\t\t<artifactId>spring-aop</artifactId>\n\t\t<version>${spring.version}</version>\n\t</dependency>\n\t<dependency>\n\t\t<groupId>org.springframework</groupId>\n\t\t<artifactId>spring-aspects</artifactId>\n\t\t<version>${spring.version}</version>\n\t</dependency>\n\t<dependency>\n\t\t<groupId>org.springframework</groupId>\n\t\t<artifactId>spring-tx</artifactId>\n\t\t<version>${spring.version}</version>\n\t</dependency>\n\t<dependency>\n\t\t<groupId>org.springframework</groupId>\n\t\t<artifactId>spring-jdbc</artifactId>\n\t\t<version>${spring.version}</version>\n\t</dependency>\n\t<dependency>\n\t\t<groupId>org.springframework</groupId>\n\t\t<artifactId>spring-web</artifactId>\n\t\t<version>${spring.version}</version>\n\t</dependency>\n\t<!–spring单元测试依赖–>\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-test</artifactId>\n\t\t\t<version>${spring.version}</version>\n\t\t\t<scope>test</scope>\n\t\t</dependency>\n\n<!–springwebmvc相关jar–>\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-webmvc</artifactId>\n\t\t\t<version>${spring.version}</version>\n\t\t</dependency>\n\t\t<dependency>\n\t\t\t<groupId>org.springframework</groupId>\n\t\t\t<artifactId>spring-web</artifactId>\n\t\t\t<version>${spring.version}</version>\n\t\t</dependency>\n\n<!–mysql驱动包–>\n\t<dependency>\n\t\t<groupId>mysql</groupId>\n\t\t<artifactId>mysql-connector-java</artifactId>\n\t\t<version>${mysql.version}</version>\n\t</dependency>\n\t\n\t<!–alibabadatasource相关jar包–>\n<dependency>\n<groupId>com.alibaba</groupId>\n<artifactId>druid</artifactId>\n<version>0.2.23</version>\n</dependency>\n\n<!–alibabafastjson格式化对–>\n<dependency>\n<groupId>com.alibaba</groupId>\n<artifactId>fastjson</artifactId>\n<version>1.1.41</version>\n</dependency>\n\t\n\t<!–logbackstart–>\n\t<dependency>\n\t\t<groupId>log4j</groupId>\n\t\t<artifactId>log4j</artifactId>\n\t\t<version>${log4j.version}</version>\n\t</dependency>\n\t<dependency>\n\t\t<groupId>org.slf4j</groupId>\n\t\t<artifactId>slf4j-api</artifactId>\n\t\t<version>${slf4j.version}</version>\n\t</dependency>\n\t<dependency>\n\t\t<groupId>ch.qos.logback</groupId>\n\t\t<artifactId>logback-classic</artifactId>\n\t\t<version>1.1.2</version>\n\t</dependency>\n\t<dependency>\n\t\t<groupId>ch.qos.logback</groupId>\n\t\t<artifactId>logback-core</artifactId>\n\t\t<version>1.1.2</version>\n\t</dependency>\n\t<dependency>\n\t\t<groupId>org.logback-extensions</groupId>\n\t\t<artifactId>logback-ext-spring</artifactId>\n\t\t<version>0.1.1</version>\n\t</dependency>\n\t\n\t<!–mybatis依赖–>\n\t<dependency>\n\t\t<groupId>org.mybatis</groupId>\n\t\t<artifactId>mybatis</artifactId>\n\t\t<version>${mybatis.version}</version>\n\t</dependency>\n\n\t<!–mybatis/spring包–>\n\t<dependency>\n\t\t<groupId>org.mybatis</groupId>\n\t\t<artifactId>mybatis-spring</artifactId>\n\t\t<version>1.2.0</version>\n\t</dependency>\n<!–添加servlet3.0核心包–>\n<dependency>\n<groupId>javax.servlet</groupId>\n<artifactId>javax.servlet-api</artifactId>\n<version>3.0.1</version>\n</dependency>\n<dependency>\n<groupId>javax.servlet.jsp</groupId>\n<artifactId>javax.servlet.jsp-api</artifactId>\n<version>2.3.2-b01</version>\n</dependency>\n<!–jstl–>\n<dependency>\n<groupId>javax.servlet</groupId>\n<artifactId>jstl</artifactId>\n<version>1.2</version>\n</dependency>\n\t<!–单元测试依赖–>\n<dependency>\n<groupId>junit</groupId>\n<artifactId>junit</artifactId>\n<version>3.8.1</version>\n<scope>test</scope>\n</dependency>\n</dependencies>\n<build>\n<finalName>ssmDemo</finalName>\n</build>\n</project>\n\n

创建数据库和表,生成代码创建数据库我参考别人的博客数据库设计,这块没有自己去书写,直接添上代码

DROPTABLEIFEXISTS`user_t`;\n\nCREATETABLE`user_t`(\n`id`int(11)NOTNULLAUTO_INCREMENT,\n`user_name`varchar(40)NOTNULL,\n`password`varchar(255)NOTNULL,\n`age`int(4)NOTNULL,\nPRIMARYKEY(`id`)\n)ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=utf8;\n\n/*Dataforthetable`user_t`*/\n\ninsertinto`user_t`(`id`,`user_name`,`password`,`age`)values(1,&39;,&39;,24)\n

生成代码请查看:

[Mybatis自动生成代码]

生成的代码导入图片解释:

Spring和mybatis整合,连接数据库,进行Junit测试将生成的代码拷贝到项目中,然后进行Spring和Mybatis的整合,添加配置文件!

主要有applicationContent.xml:Spring的相关配置!Spring-mhbatis.xml:Spring和Mybatis集成配置!jdbc.properties:数据库信息配置!logback.xml:日志输出信息配置!(不做介绍,详细信息查看源码

主要介绍applicationContext.xml、Spring-mhbatis.xml、jdbc.properties。主要内容如下:

jdbc.properties

jdbc_driverClassName=com.mysql.jdbc.Driver\njdbc_url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8\njdbc_username=root\njdbc_password=root\n

applicationContext.xml

<?xmlversion=&34;encoding=&34;?>\n<beansxmlns=&34;\nxmlns:xsi=&34;\nxmlns:context=&34;\nxmlns:aop=&34;\nxmlns:tx=&34;\nxsi:schemaLocation=&34;>\n\t<!–1.配置jdbc文件–>\n\t<beanid=&34;class=&34;>\n\t<propertyname=&34;value=&34;/>\n\t</bean>\n\n\t<!–2.扫描的包路径,这里不扫描被@Controller注解的类–><!–使用<context:component-scan/>可以不在配置<context:annotation-config/>–>\n\t<context:component-scanbase-package=&34;>\n\t\t<context:exclude-filtertype=&34;expression=&34;/>\n\t</context:component-scan>\n\t\n\t<importresource=&34;/>\n\t\n</beans>\n

spring-mybatis.xml

<?xmlversion=&34;encoding=&34;?>\n<beansxmlns=&34;\n\txmlns:xsi=&34;xmlns:aop=&34;\n\txmlns:tx=&34;xmlns:context=&34;\n\txsi:schemaLocation=&34;>\n\n<!–3.配置数据源,使用的alibba的数据库–>\n\t<beanid=&34;class=&34;init-method=&34;destroy-method=&34;>\n<!–基本属性url、user、password–>\n<propertyname=&34;value=&34;/>\n\t\t<propertyname=&34;value=&34;/>\n<propertyname=&34;value=&34;/>\n<propertyname=&34;value=&34;/>\n\n<!–配置初始化大小、最小、最大–>\n<propertyname=&34;value=&34;/>\n<propertyname=&34;value=&34;/>\n<propertyname=&34;value=&34;/>\n\n<!–配置获取连接等待超时的时间–>\n<propertyname=&34;value=&34;/>\n<!–配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒–>\n<propertyname=&34;value=&34;/>\n\n<!–配置一个连接在池中最小生存的时间,单位是毫秒–>\n<propertyname=&34;value=&34;/>\n\n<propertyname=&34;value=&39;x&34;/>\n<propertyname=&34;value=&34;/>\n<propertyname=&34;value=&34;/>\n<propertyname=&34;value=&34;/>\n\n<!–打开PSCache,并且指定每个连接上PSCache的大小如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。–>\n<propertyname=&34;value=&34;/>\n<propertyname=&34;value=&34;/>\n\n<!–配置监控统计拦截的filters–>\n<propertyname=&34;value=&34;/>\n</bean>\n\t\n\n\t\n<!–spring和MyBatis完美整合,不需要mybatis的配置映射文件–>\n<beanid=&34;class=&34;>\n<propertyname=&34;ref=&34;/>\n<!–自动扫描mapping.xml文件–>\n<propertyname=&34;value=&34;></property>\n</bean>\n\n\n<!–DAO接口所在包名,Spring会自动查找其下的类,自动扫描了所有的XxxxMapper.xml对应的mapper接口文件,只要Mapper接口类和Mapper映射文件对应起来就可以了–>\n<beanclass=&34;>\n<propertyname=&34;value=&34;/>\n<propertyname=&34;value=&34;></property>\n</bean>\n\n<!–(事务管理)transactionmanager,useJtaTransactionManagerforglobaltx–>\n<!–配置事务管理器–>\n<beanid=&34;\nclass=&34;>\n<propertyname=&34;ref=&34;/>\n</bean>\n\n<!–=======事务配置End===================–>\n<!–配置基于注解的声明式事务–>\n\t<!–enablesscanningfor@Transactionalannotations–>\n\t<tx:annotation-driventransaction-manager=&34;/>\n\n\t\n</beans>\n

测试代码,两种方式:

测试1:

packageorg.ssm.dufy.service;\n\nimportorg.junit.Test;\nimportorg.junit.runner.RunWith;\nimportorg.springframework.beans.factory.annotation.Autowired;\nimportorg.springframework.test.context.ContextConfiguration;\nimportorg.springframework.test.context.junit4.SpringJUnit4ClassRunner;\nimportorg.ssm.dufy.entity.User;\n\n/**\n*配置spring和junit整合,junit启动时加载springIOC容器spring-test,junit\n*/\n@RunWith(SpringJUnit4ClassRunner.class)\n//告诉junitspring配置文件\n@ContextConfiguration({&34;})\npublicclassIUserServiceTest{\n\n\t@Autowired\n\tpublicIUserServiceuserService;\n\t\n\t@Test\n\tpublicvoidgetUserByIdTest(){\n\t\n\t\tUseruser=userService.getUserById(1);\n\t\tSystem.out.println(user.getUserName());\n\t}\n\t\n}

测试2:

packageorg.ssm.dufy.service;\n\nimportorg.springframework.context.ApplicationContext;\nimportorg.springframework.context.support.ClassPathXmlApplicationContext;\nimportorg.ssm.dufy.entity.User;\n\npublicclassIUserServiceTest2{\n\n\t\n\tpublicstaticvoidmain(String[]args){\n\t\tApplicationContextapplication=newClassPathXmlApplicationContext(&34;);\n\t\tIUserServiceuService=(IUserService)application.getBean(&34;);\n\t\tUseruser=uService.getUserById(1);\n\t\tSystem.out.println(user.getUserName());\n\t}\n}

5:整合SpringMVC,添加配置,创建jspSpringMVC需要的依赖在pom.xml中已经加上了,现在需在Web项目中的web.xml中添加启动SpringMVC启动配置和Spring整合SpringMVC的配置了。新增如下两个文件:

spring-mvc.xml

<?xmlversion=&34;encoding=&34;?>\n<beansxmlns=&34;\nxmlns:p=&34;\nxmlns:xsi=&34;\nxmlns:context=&34;\nxmlns:mvc=&34;\nxsi:schemaLocation=&34;>\n\n<!–扫描controller(controller层注入)–>\n<context:component-scanbase-package=&34;use-default-filters=&34;>\n<context:include-filtertype=&34;expression=&34;/>\n</context:component-scan>\n\n<mvc:annotation-driven/>\n\n<!–内容协商管理器–>\n<!–1、首先检查路径扩展名(如my.pdf);2、其次检查Parameter(如my?format=pdf);3、检查AcceptHeader–>\n<beanid=&34;class=&34;>\n<!–扩展名至mimeType的映射,即/user.json=>application/json–>\n<propertyname=&34;value=&34;/>\n<!–用于开启/userinfo/123?format=json的支持–>\n<propertyname=&34;value=&34;/>\n<propertyname=&34;value=&34;/>\n<!–是否忽略AcceptHeader–>\n<propertyname=&34;value=&34;/>\n\n<propertyname=&34;><!–扩展名到MIME的映射;favorPathExtension,favorParameter是true时起作用–>\n<value>\njson=application/json\nxml=application/xml\nhtml=text/html\n</value>\n</property>\n<!–默认的contenttype–>\n<propertyname=&34;value=&34;/>\n</bean>\n\n\n<!–当在web.xml中DispatcherServlet使用<url-pattern>/</url-pattern>映射时,能映射静态资源–>\n<mvc:default-servlet-handler/>\n\t<!–静态资源映射–>\n<mvc:resourcesmapping=&34;location=&34;/>\n\n\n<!–对模型视图添加前后缀–>\n<beanid=&34;class=&34;\np:prefix=&34;p:suffix=&34;/>\n\n\n</beans>

web.xml

<?xmlversion=&34;encoding=&34;?>\n<web-app>\n<display-name>SSM-DEMO</display-name>\n<!–读取spring配置文件–>\n\t<context-param>\n\t\t<param-name>contextConfigLocation</param-name>\n\t\t<param-value>classpath:applicationContext.xml</param-value>\n\t</context-param>\n\t\n\t<!–设计路径变量值\n\t<context-param>\n\t\t<param-name>webAppRootKey</param-name>\n\t\t<param-value>springmvc.root</param-value>\n\t</context-param>\n\t–>\n\n\t<!–Spring字符集过滤器–>\n\t<filter>\n\t\t<filter-name>SpringEncodingFilter</filter-name>\n\t\t<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>\n\t\t<init-param>\n\t\t\t<param-name>encoding</param-name>\n\t\t\t<param-value>UTF-8</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>forceEncoding</param-name>\n\t\t\t<param-value>true</param-value>\n\t\t</init-param>\n\t</filter>\n\t<filter-mapping>\n\t\t<filter-name>SpringEncodingFilter</filter-name>\n\t\t<url-pattern>/*</url-pattern>\n\t</filter-mapping>\n\n<!–添加日志监听器–>\n\t<context-param>\n\t\t<param-name>logbackConfigLocation</param-name>\n\t\t<param-value>classpath:logback.xml</param-value>\n\t</context-param>\n\t<listener>\n\t\t<listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>\n\t</listener>\n\n\t<listener>\n\t\t<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>\n\t</listener>\n\n\t<!–springMVC核心配置–>\n\t<servlet>\n\t\t<servlet-name>dispatcherServlet</servlet-name>\n\t\t<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>\n\t\t<init-param>\n\t\t\t<param-name>contextConfigLocation</param-name>\n\t\t\t<!–spingMVC的配置路径–>\n\t\t\t<param-value>classpath:spring-mvc.xml</param-value>\n\t\t</init-param>\n\t\t<load-on-startup>1</load-on-startup>\n\t</servlet>\n\t<!–拦截设置–>\n\t<servlet-mapping>\n\t\t<servlet-name>dispatcherServlet</servlet-name>\n\t\t<url-pattern>/</url-pattern>\n\t</servlet-mapping>\n\t\n\n<welcome-file-list>\n\t<welcome-file>index.jsp</welcome-file>\n</welcome-file-list>\n</web-app>

新增index.jsp文件

<%@pagecontentType=&34;%>\n<!doctypehtml>\n<html>\n<body>\n<h2>HelloWorld!</h2>\n</body>\n</html>\n

6.启动web服务,测试将上面的项目添加到Tomcat中,启动,控制台没有报错,并在地址栏访问,http://localhost:8080/ssm。页面显示HelloWorld!项目配置ok!

7:编写Controller,和对应得业务界面新增UserController,通过参数传递uid获取用户,若用户存在,跳转到showName.jsp,若用户不存在,则跳转到error.jsp,并返回提示信息!

packageorg.ssm.dufy.web;\n\nimportjavax.servlet.http.HttpServletRequest;\n\nimportorg.springframework.beans.factory.annotation.Autowired;\nimportorg.springframework.stereotype.Controller;\nimportorg.springframework.ui.Model;\nimportorg.springframework.web.bind.annotation.RequestMapping;\nimportorg.springframework.web.bind.annotation.RequestMethod;\nimportorg.springframework.web.bind.annotation.RequestParam;\nimportorg.springframework.web.servlet.ModelAndView;\nimportorg.ssm.dufy.entity.User;\nimportorg.ssm.dufy.service.IUserService;\n\n@Controller\npublicclassUserController{\n\n\t@Autowired\n\tprivateIUserServiceuserService;\n\t\n\t@RequestMapping(value=&34;,method=RequestMethod.GET)\n\tpublicStringshowUserName(@RequestParam(&34;)intuid,HttpServletRequestrequest,Modelmodel){\n\t\tSystem.out.println(&34;);\n\t\tUseruser=userService.getUserById(uid);\n\t\tif(user!=null){\n\t\t\trequest.setAttribute(&34;,user.getUserName());\n\t\t\tmodel.addAttribute(&34;,user.getUserName());\n\t\t\treturn&34;;\n\t\t}\n\t\trequest.setAttribute(&34;,&34;);\n\t\treturn&34;;\n\t}\n}\n

Jsp内容如下:

showName.jsp

<%@pagecontentType=&34;%>\n<!doctypehtml>\n<html>\n<head>\n\t<title>showname</title>\n</head>\n<body>\n\t<h1>Welcome</h1>${name}<h1>访问此页面</h1>\n\n</body>\n</html>\n

error.jsp

<%@pagecontentType=&34;%>\n<!doctypehtml>\n<html>\n<head>\n\t<title>errorpage</title>\n</head>\n<body>\n\t<h2>${error}</h2>\n\n</body>\n</html>\n

三:遇到的问题

1:找不到UserService,报错

可能是包扫描路径的问题,检查一下Service是否在扫描的范围内

2:jsp接收不到request.setAttribute(&34;,&34;);内容

查资料说是因为JSP的版本问题,可以在Jsp上面添加<%@pageisELIgnored=&34;%>或者修改web.xml,添加version版本!

<?xmlversion=&34;encoding=&34;?>\n\n<web-appxmlns:xsi=&34;\n\txmlns=&34;xmlns:web=&34;\n\txsi:schemaLocation=&34;\n\tid=&34;version=&34;metadata-complete=&34;>\n

四:心得总结或许这些都是站在别人的基础的搭建的,但是看一篇SSM的搭建文章可能很快,看完觉得自己懂了,但是我建议一定要自己去搭建一次,看一遍,和动手做一遍完全是两个概念!

附:项目源代码:https://github.com/dufyun/learn-tech-collection/tree/master/ssm

我们一同成长!

&34;

OK,关于ssm课程网站系统源码分享非maven和ssm课设的内容到此结束了,希望对大家有所帮助。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平