前言
本篇文章主要讲述SpringBoot整合Jsp,实现一个简单的用户增删改查示例工程。若需工程源代码,可以直接跳到底部,通过链接下载工程代码。
SpringBoot整合Jsp
开发准备
环境要求
JDK: 1.8
SQL: MySql
这里我们需要在mysql中建立一张用户表,用于存储用户的信息。
数据库脚本如下:
tb_user id
username
sex
password
age
id
utf8 ROW_FORMATCOMPACT
新建好表之后,我们再来创建工程。
我们的这个工程是通过maven创建一个普通的web工程。
创建好工程之后,我们需要下载相应的jar包,然后再来进行相关的开发。
这些jar包我们在pom.xml文件中添加springBoot和Jsp相关的jar即可。
相关的注释以及写在其中了,这里就不在过多讲述了。
Maven依赖如下:
依赖 核心
orgspringframeworkbootgroupId
springbootstarterwebartifactId
RELEASEversion
dependency
热部署 文件之后会自动重启
orgspringframeworkbootgroupId
springbootdevtoolsartifactId
RELEASEversion
optional
dependency
依赖
orgspringframeworkbootgroupId
springbootstartertestartifactId
RELEASEversion
testscope
dependency
JPA
orgspringframeworkbootgroupId
springbootstarterdatajpaartifactId
RELEASEversion
dependency
依赖
orgmybatisspringbootgroupId
mybatisspringbootstarterartifactId
$mybatisspringbootversion
dependency
mysqlgroupId
mysqlconnectorjavaartifactId
version
dependency
fastjson 依赖
comalibabagroupId
fastjsonartifactId
version
dependency
JSP 依赖
servlet依赖
javaxservletgroupId
jstlartifactId
version
dependency
javaxservletgroupId
javaxservletapiartifactId
version
providedscope
dependency
tomcat的支持-
orgapachetomcatembedgroupId
tomcatembedjasperartifactId
version
providedscope
dependency
dependencies
相关的Jar包下载完毕之后,我们再来确认项目的工程结构。
首先是后台相关包说明:
srcmainjavacomdwqincontroller 层
comdwqindao 数据操作层 DAO
comdwqinpojo 实体类
comdwqinservice 业务逻辑层
应用启动类
srcmainjavaresources
applicationyml 应用配置文件,应用启动会自动读取配置
前端的相关文件存放说明:
srcmainwebapppages JSP文件的存放路径
WEBINF webxml web相关的核心配置
整体工程结构图:
工程结构确认之后,我们再来添加相应的配置。
只需在application.yml 添加相应的配置即可。
数据源的配置和之前的差不多,需要注意的是Jsp的相关配置。
由于springBoot默认的支持的模版是Thymeleaf,所以这里我们需要进行相应的更改。
配置如下:
#服务属性配置server
port
spring
application
name springbootjspthymeleaf
mvc
view
prefix pages
suffix jsp
datasource
url jdbcmysqldwqinuseSSLcharacterEncodingutf
username root
password root
drivername
jpa
showsql # 打印sql
generateddl # 自动建表
database # 数据库类型
hibernate
naming
physicalstrategy
代码编写
其实这里的代码和之前文章讲述的基本一致,唯一有点区别的是,这里我是用JPA实现对数据库进行操作的(也就是顺便说下JPA这个框架的使用)。
首先是实体类,这里因为用了JPA,所以和之前的有点不同,添加了一些注解。
Entity:表示这是个实体类。
Table:该实体类映射的数据表名。
Column:指定该字段的属性,nullable 表示是否非空,unique 表示是否是唯一。
那么实体类的代码如下:
name
strategy IDENTITY
id
name
username
name
sex
name
password
name
age
id
id
id id
username
username
username username
sex
sex
sex sex
password
password
password password
age
age
age age
由于用的是JPA,dao层这块只需继承JpaRepository该类即可,需要指定实体类和主键类型。
dao层代码如下:
业务层这块和之前一样调用即可,虽然用的是JPA,但是方法也是很简单的,新增和修改就用save,删除就是delete,findOne就是通过ID查找,findAll就是查询所有等等。
services代码如下:
user
user
id
id
userDao
user
flag
userDaouser
flag
e
out
e
flag
user
flag
userDaouser
flag
e
out
e
flag
id
flag
userDaoid
flag
e
out
e
flag
id
userDaoid
userDao
到了控制层这块,这里提供还是提供接口给Jsp进行调用,不过这里类的注解就不能用之前的RestController这个注解,这个注解以json的格式返回数据,但是我们有时返回的时候需要跳转界面,所以应该使用Controller这个注解。如果想在某个方法中返回的数据格式是json的话,在该方法上加上ResponseBody这个注解即可。
控制层代码如下:
userService
value
model
userList userService
model userList
value
user
userServiceuser
model id
user userServiceid
model user
user
userServiceuser
id
userServiceid
启动类:
依赖 核心
orgspringframeworkbootgroupId
springbootstarterwebartifactId
RELEASEversion
dependency
热部署 文件之后会自动重启
orgspringframeworkbootgroupId
springbootdevtoolsartifactId
RELEASEversion
optional
dependency
依赖
orgspringframeworkbootgroupId
springbootstartertestartifactId
RELEASEversion
testscope
dependency
JPA
orgspringframeworkbootgroupId
springbootstarterdatajpaartifactId
RELEASEversion
dependency
依赖
orgmybatisspringbootgroupId
mybatisspringbootstarterartifactId
$mybatisspringbootversion
dependency
mysqlgroupId
mysqlconnectorjavaartifactId
version
dependency
fastjson 依赖
comalibabagroupId
fastjsonartifactId
version
dependency
JSP 依赖
servlet依赖
javaxservletgroupId
jstlartifactId
version
dependency
javaxservletgroupId
javaxservletapiartifactId
version
providedscope
dependency
tomcat的支持-
orgapachetomcatembedgroupId
tomcatembedjasperartifactId
version
providedscope
dependency
dependencies
0
依赖 核心
orgspringframeworkbootgroupId
springbootstarterwebartifactId
RELEASEversion
dependency
热部署 文件之后会自动重启
orgspringframeworkbootgroupId
springbootdevtoolsartifactId
RELEASEversion
optional
dependency
依赖
orgspringframeworkbootgroupId
springbootstartertestartifactId
RELEASEversion
testscope
dependency
JPA
orgspringframeworkbootgroupId
springbootstarterdatajpaartifactId
RELEASEversion
dependency
依赖
orgmybatisspringbootgroupId
mybatisspringbootstarterartifactId
$mybatisspringbootversion
dependency
mysqlgroupId
mysqlconnectorjavaartifactId
version
dependency
fastjson 依赖
comalibabagroupId
fastjsonartifactId
version
dependency
JSP 依赖
servlet依赖
javaxservletgroupId
jstlartifactId
version
dependency
javaxservletgroupId
javaxservletapiartifactId
version
providedscope
dependency
tomcat的支持-
orgapachetomcatembedgroupId
tomcatembedjasperartifactId
version
providedscope
dependency
dependencies
1
前端jsp代码如下:
index.jsp
依赖 核心
orgspringframeworkbootgroupId
springbootstarterwebartifactId
RELEASEversion
dependency
热部署 文件之后会自动重启
orgspringframeworkbootgroupId
springbootdevtoolsartifactId
RELEASEversion
optional
dependency
依赖
orgspringframeworkbootgroupId
springbootstartertestartifactId
RELEASEversion
testscope
dependency
JPA
orgspringframeworkbootgroupId
springbootstarterdatajpaartifactId
RELEASEversion
dependency
依赖
orgmybatisspringbootgroupId
mybatisspringbootstarterartifactId
$mybatisspringbootversion
dependency
mysqlgroupId
mysqlconnectorjavaartifactId
version
dependency
fastjson 依赖
comalibabagroupId
fastjsonartifactId
version
dependency
JSP 依赖
servlet依赖
javaxservletgroupId
jstlartifactId
version
dependency
javaxservletgroupId
javaxservletapiartifactId
version
providedscope
dependency
tomcat的支持-
orgapachetomcatembedgroupId
tomcatembedjasperartifactId
version
providedscope
dependency
dependencies
2
list.jsp
依赖 核心
orgspringframeworkbootgroupId
springbootstarterwebartifactId
RELEASEversion
dependency
热部署 文件之后会自动重启
orgspringframeworkbootgroupId
springbootdevtoolsartifactId
RELEASEversion
optional
dependency
依赖
orgspringframeworkbootgroupId
springbootstartertestartifactId
RELEASEversion
testscope
dependency
JPA
orgspringframeworkbootgroupId
springbootstarterdatajpaartifactId
RELEASEversion
dependency
依赖
orgmybatisspringbootgroupId
mybatisspringbootstarterartifactId
$mybatisspringbootversion
dependency
mysqlgroupId
mysqlconnectorjavaartifactId
version
dependency
fastjson 依赖
comalibabagroupId
fastjsonartifactId
version
dependency
JSP 依赖
servlet依赖
javaxservletgroupId
jstlartifactId
version
dependency
javaxservletgroupId
javaxservletapiartifactId
version
providedscope
dependency
tomcat的支持-
orgapachetomcatembedgroupId
tomcatembedjasperartifactId
version
providedscope
dependency
dependencies
3
userAdd.jsp
依赖 核心
orgspringframeworkbootgroupId
springbootstarterwebartifactId
RELEASEversion
dependency
热部署 文件之后会自动重启
orgspringframeworkbootgroupId
springbootdevtoolsartifactId
RELEASEversion
optional
dependency
依赖
orgspringframeworkbootgroupId
springbootstartertestartifactId
RELEASEversion
testscope
dependency
JPA
orgspringframeworkbootgroupId
springbootstarterdatajpaartifactId
RELEASEversion
dependency
依赖
orgmybatisspringbootgroupId
mybatisspringbootstarterartifactId
$mybatisspringbootversion
dependency
mysqlgroupId
mysqlconnectorjavaartifactId
version
dependency
fastjson 依赖
comalibabagroupId
fastjsonartifactId
version
dependency
JSP 依赖
servlet依赖
javaxservletgroupId
jstlartifactId
version
dependency
javaxservletgroupId
javaxservletapiartifactId
version
providedscope
dependency
tomcat的支持-
orgapachetomcatembedgroupId
tomcatembedjasperartifactId
version
providedscope
dependency
dependencies
4
userEdit.jsp
依赖 核心
orgspringframeworkbootgroupId
springbootstarterwebartifactId
RELEASEversion
dependency
热部署 文件之后会自动重启
orgspringframeworkbootgroupId
springbootdevtoolsartifactId
RELEASEversion
optional
dependency
依赖
orgspringframeworkbootgroupId
springbootstartertestartifactId
RELEASEversion
testscope
dependency
JPA
orgspringframeworkbootgroupId
springbootstarterdatajpaartifactId
RELEASEversion
dependency
依赖
orgmybatisspringbootgroupId
mybatisspringbootstarterartifactId
$mybatisspringbootversion
dependency
mysqlgroupId
mysqlconnectorjavaartifactId
version
dependency
fastjson 依赖
comalibabagroupId
fastjsonartifactId
version
dependency
JSP 依赖
servlet依赖
javaxservletgroupId
jstlartifactId
version
dependency
javaxservletgroupId
javaxservletapiartifactId
version
providedscope
dependency
tomcat的支持-
orgapachetomcatembedgroupId
tomcatembedjasperartifactId
version
providedscope
dependency
dependencies
5
功能测试
我们直接点击StartApplication启动项目,在浏览器上输入地址查看效果。
1.主界面: http://localhost:8082/index
2.列表页:http://localhost:8082/list
3.添加页面:http://localhost:8082/toAdd
4. 编辑页面:http://127.0.0.1:8082/toEdit?id=7
源代码下载地址: https://download.csdn.net/download/qq_35161159/11966735
还没有评论,来说两句吧...