idea搭建Springboot工程+mybatis(带JSP,手动添加webapp文件夹)
前言
先记录、分享“前后端不分离”的项目创建过程(这一篇前端页面使用的是jsp);后续会再出一篇(配合前端工程)前后端分离的搭建过程
搭建过程
1. File—>new—>project,选择Spring Initializr(SDK默认1.8)

2. 编辑项目基础信息

3.Web下勾选Spring Web;Template Englines勾选Thymeleaf
(需要创建springboot的war包项目多是勾选Spring Web,较高版本的Springboot没有此选项,勾选Spring Web Start)

4.选择项目路径,点击finish

5.刚创建好的项目目录结构,点击右侧的Maven,点击设置(扳手图标)进行项目Maven仓库的配置;

6.配置application文件
文件夹resources下有一个名为application.properties的配置文件,因为更习惯用.yml后缀。直接对该文件右键选择Refact,选择Rename,将后缀改为yml。
application有两种文件格式,一种是以.properties为后缀,另一种是以.yml,两种方式有些区别,具体的可以参考这个网址:https://blog.csdn.net/qq_29648651/article/details/78503853;
server:
port: 8089 #端口号
servlet:
context-path: /web #url后缀
7.在resource资源文件夹下的templates中新建index.html页面
作为启动的初始页面(下面会改为jsp页面)

8.在com.demo.init下新建controller文件夹
在controller文件夹下建一个简单的TestController类;(Controller类要添加@Controller注解,项目启动时,SpringBoot会自动扫描加载Controller)

TestController代码如下:
package com.demo.init.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@RequestMapping("/index")
public String index() {
return "index";
}
}
9.启动Application类运行项目
可以在启动信息中看到项目运行后的端口号和地址

比如我的是:
http://localhost:8089/web/index;到这里,最基础的一个springboot工程勉强算是完成了。接下来是jsp和数据库的配置

10.【配置jsp】添加webapp文件夹,映射jsp
因为这篇前端是jsp,按照通用的项目结构,将jsp文件写在webapp文件夹下。
Springboot访问静态资源有两个默认目录:一个是目录classpath/static 【src/mian/resource】
,另一个是根目录ServletContext 下(【src/main/webapp】
(不确定是不是需要在创建工程的时候勾选什么,工程才会自带webapp文件夹;没有没关系,在这里自己手动添加webapp目录)
① File->Project Structure->……(图文描述)配置web.xml文件和新增webapp文件夹路径

下方webapp文件夹路径红色字体,点击一下,会提示你“webapp文件夹不存在,是否创建?”,确定后下方点击“ apply ”,再点击“ ok ”。
完成后的初步结构如下,webapp文件夹图标会有蓝色的小圆点(我习惯在WEB-INF文件夹下新建一个文件夹jsp,来存放test.jsp)

②添加jsp相关依赖,更新maven
<!-- 使用Jasper引擎解析JSP -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
</dependency>
③在application.yml中配置jsp访问路径(整个application.yml文件的代码会贴在后面)

④这时候是不能直接访问WEB-INF文件夹下的jsp文件,有两种处理方法:
一是在application.yml中添加

另一种是在pom.xml中注释掉thymeleaf依赖
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-thymeleaf</artifactId>-->
<!-- </dependency>-->
不这样改的话静态资源的访问路径会一直映射到templates文件夹【具体原因还需要再花时间了解】。以上两种方法二选一即可
修改controller方法,映射到test.jsp文件;
再次启动,jsp文件映射成功

11.添加【数据库配置】
①自己先在本地新建一个名为moudle的数据库,建表,

创建并编写entity层、(我喜欢@Data注解省略对象的属性set、get方法封装)dao层【@Mapper】、service层【@Service】、controller层【@Controller】;
可以先在test层中写一个简单的测试单元看看是否能连接上数据库,这一步我这边跳过了

②先在pom.xml文件中添加相关依赖,这里数据库框架用的是mybatis,所以一并导入mybatis依赖
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!-- 数据库连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
③在application.yml添加配置信息,以下贴入较为完整的配置代码
server:
port: 8089
servlet:
context-path: /web
#以下三行配置信息,修改jsp文件不用重启
jsp:
init-parameters:
development: true
spring:
datasource: #简单测试,这里不设数据库连接池
name: moudle #数据库名
url: jdbc:mysql://localhost:3306/moudle?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&serverTimezone=GMT%2B8&useSSL=false
username: root #用户名
password: myroot #密码
# driver-class-name: com.mysql.jdbc.Driver #数据库连接驱动
driver-class-name: com.mysql.cj.jdbc.Driver #数据库连接驱动(版本8以上,兼容低版本)
mvc:
view:
prefix: /WEB-INF/jsp/ #jsp文件夹映射路径
suffix: .jsp #省略文件后最
jpa:
open-in-view: false
#mybatis映射路径
mybatis:
mapper-locations: classpath:mybatis/*/*.xml,mybatis/**/*.xml
④在WEB-INF/jsp/文件夹下创建login.jsp作为登录页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>登录</title></head>
<body>
<div><input id="sysAcc" value="" name="sysAcc" type="text" placeholder="请输入账号"/></div>
<div><input id="sysPw" value="" name="sysPw" type="password" placeholder="请输入密码"/></div>
<div style="margin-top: 17px;"><a class="btn btn-block" id="loginBtn" style="text-align: center;width: 257px; background-color: #0384EA;color: #fff;border-radius: 2px;">登录</a></div>
<script src="assets/js/jquery-1.10.2.js"></script>
<script>
$('#loginBtn').click(function () {
$.ajax({
url : "./getLogin",
type : "post",
dataType : "json",
data : {
sysAcc : $('#sysAcc').val(),
sysPw : $('#sysPw').val()
},
success : function(data) {
if (data && data.code == 0) {
console.log("登录成功");
window.location.href = "./index?name="+data.admin.name;
} else {
console.log("登录失败");
}
}
});
})
</script>
</body>
</html>
⑤启动项目,登录“http://localhost:8089/web/login”

登录成功
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>首页</title>
</head>
<body>
欢迎:${name},登录成功
</body>
</html>

到此成功连接上数据库,搭建完成
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)