这是公众号 “java攀登” 的一个开源项目,配有代码与视频教程
系统开发平台:Tomcat8.0+JDK1.8+Windows7
开发语言:JavaEE
框架:SSM-Spring+SpringMVC+Mybatis
前端:JSP
数据库:MySql5.7
开发环境:Intellij Idea
浏览器:Chrome
源代码地址链接:链接:https://pan.baidu.com/s/1WNTpfa2SO5MZ7CQ3KF0wqQ
提取码:zf1p
B站视频地址:https://www.bilibili.com/video/BV1VA411i7xX?p=2
=======================================
win10 XP也可以,Tomcat+JDK+MySql版本要一致(我的Tomcat版本是8.5.5,我暂时不换,出问题再换吧,应该支持向下兼容)
mysql 我提供的是5.5.62版本 应该差不多
安装包:链接:https://pan.baidu.com/s/1bg_gfbtkYfI4tjamlsmkXA
提取码:yrxh
安装教程:https://www.bilibili.com/video/BV12b411K7Zu?p=7
Navicat安装包及安装教程
链接:https://pan.baidu.com/s/1yBjYR5PJwWcqDxS6dUoD3A
提取码:kx9s
mysql的可视化界面可以用navicat和sqlyog(给出安装教程)
找到提供的sql文件
导入成功之后按F5刷新
导入数据库之后,可以导入最基础的项目
先确定安装了jdk tomcat maven(3.6.1)
这里可以提供jdk1.8+IDEA安装包 2019.3.3及安装教程
链接:https://pan.baidu.com/s/1Xm_wnWbmFR5JFYPSOhIuig
提取码:jb7u
本项目用的是 maven(3.6.1)
maven下载地址:https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/
百度云地址:链接:https://pan.baidu.com/s/1Ut1ZX5hDAdJKWtt5yXEgcA
提取码:qlcn
我目前的Maven版本是3.3.9,所以我需要换maven 版本,我不知道能不能安装多个Maven版本,所以我决定用3.6.1的包,然后改配置的环境变量,Maven是3.6.1的可略过这一步
安装过程如下
先修改仓库地址
就是Maven自动下载jar包后保存到你电脑上的位置
首先找到Maven3.6.1压缩包解压到自己的目录,打开 apache-maven-3.6.1\conf\settings.xml
可以看到,现在Maven仓库默认位置是.m2/repository
现在,我们更改成自己想要的位置(注意斜杆的方向,不要有中文)在以后的开发中,用到的资源都会慢慢地积累到这里
配置阿里云
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
这里我们直接加一个阿里的镜像源,这样我们在下载依赖的时候会比去中央仓库下载快很多。
配置环境变量
Maven学习笔记(二)maven核心概念、maven工具的安装和配置
可以看到,我的Maven版本已经切换成3.6.1了,我要换成原来的3.3.9的话,也只需要更改一下环境变量
选择Maven版本 3.6.1,注意红框的地方都改一下
可以看到有个小红叉,因为我的Tomcat版本跟原项目不一致,所以我需要配置一下
运行 程序报错
解决方案
idea maven 报-source 1.5 中不支持 diamond 运算符
再次运行,成功解决
可以看到,包不存在
maven下手动导入ojdbc6.jar
使用Maven下载依赖,出现如下错误(可能是我的网络问题,过一会再运行就没有包的问题了)
解决方法
Cannot open url. please check this url is correct
确保端口一样
再次运行,如图,已经运行成功了
有可能你会发现过一会就出现500错误了
解决方法
找到index.jsp 注释掉图中所示的代码(鼠标定位到第6行开头,然后按Ctrl+/)
谷歌浏览器按F12可以调出调试控制台,如下图,可以改变控制台的位置
这个项目是用Maven写的,用Maven引入jar包,代替了传统的直接把jar包拷贝到项目里面的方式
接下来介绍一下用到的包
spring版本4.1.4
<spring.version>4.1.4.RELEASE</spring.version>
mybatis版本
<mybatis.version>3.2.8</mybatis.version>
日志输出
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.17</log4j.version>
单元测试
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<!-- 表示开发的时候引入,发布的时候不会加载此包 -->
<scope>test</scope>
</dependency>
Spring注解编程所需jar
zxing 是二维码需要用
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>2.2</version>
</dependency>
spring核心包
spring-core
spring-web
spring-oxm:跟数据库的关系
spring-tx:支持事务
spring-jdbc 数据库连接
spring-webmvc:用到springmvc这一块
spring-aop面向切面编程
spring-context-support:上下文支持
spring-test 测试
spring-orm跟数据库的映射关系
aspectjweaver 面向切面的框架
cglib反射,对于Spring来说就是动态代理,本质还是反射
hibernate校验
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.0.Final</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
引入JSON
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.6.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.6.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>//阿里巴巴的快速解析json
<version>1.2.11</version>
</dependency>
其他包介绍
com.github.pagehelper 分页工具
com.alipay.sdk 支付
commons-codec 编码解码
commons-httpclient httpclient httpcore 网络连接
json json解析
ueditor 前端富文本,多字体,图片啊之类的
先分析web.xml
web.xml是javaee的入口文件
默认页面显示index.jsp
<welcome-file>index.jsp</welcome-file>
强制编码格式为utf-8
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
/*表示对所有的都做这种过滤
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*
servlet拦截用springmvc拦截
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
分页,默认分页每页15个
<filter>
<filter-name>SystemContextFilter</filter-name>
<filter-class>com.javapandeng.filter.SystemContextFilter</filter-class>
<init-param>
<param-name>pageSize</param-name>
<param-value>15</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SystemContextFilter</filter-name>
<url-pattern>/*