前言

先记录、分享“前后端不分离”的项目创建过程(这一篇前端页面使用的是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>

在这里插入图片描述
到此成功连接上数据库,搭建完成

Logo

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

更多推荐