使用idea整合 spring boot 和jsp详细教程

本文详细介绍如何在SpringBoot项目中整合JSP,包括添加依赖、配置控制器、创建JSP文件及配置等步骤,解决常见404问题。

##使用idea整合springboo和jsp详细教程 ##
项目开发过程中用到springboot整合jsp,在自己百度了一堆网上的教程之后发现,在整合的过程中还是会出现问题,最主要的问题就是404,经过半天的努力之后,自己终于能够整合成功了,所以写个教程;
ps:楼下有朋友说按照我的步骤一步步走结果也是报404,我不知道你是不是使用的module子模块进行整合jsp,如果在一个项目中有父module子module,在子module中整合jsp时,按照下面的方是找不到jsp的,这里需要添加一个路径的配置,具体请看这边博客:springboot的maven多子模块项目整合jsp报错详解
第一步:使用idea创建一个springboot项目:
新建一个项目
工程名称等
选择springboot版本
工程目录
这里写图片描述
具体创建过程比较简单,这里就不多说;
第二步:添加依赖:
我本来的pom.xml是这样的:

<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
</dependencies>
`

现在是这样的:注意在引用依赖的时候,有一个依赖的scope是需要被注释掉的:org.apache.tomcat.embed,她的scope不需要,如果你没有注释的话,后面访问jsp 的时候就会报404;

<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<!-- web项目依赖 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
		</dependency>
		<!--注意:spring boot对jsp的支持不是很好,在使用spring boot自带tomcat的同时,还需要引入另外的一个tomcat,以来如下所示,且scope属性需要被注释掉 -->
		<!--注掉的原因是:maven默认scope是compile,表示打包时会把此包打入jar包中,而provided表示打包时不会打如jar包中,因为它默认是jar包中会提供,说白了就是你标注了provided就不会被打入jar包中,项目跑起来就肯定会有问题了 2019/12/4 -->
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
			<!--<scope>provided</scope> 注意,这个scope需要被注释掉-->
		</dependency>
		<!-- jsp标签库 -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

第三步:添加controller:新建一个package,名字叫controller,并新建一个Java class,名为testController;
这里写图片描述
在TestController中的代码如下:

package com.ccx.springboot.jsp.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestController {
    
    @RequestMapping("/index")
    public String index(){
        return  "index";
    }
}

需要注意一个地方:controller上的注解为@Controller(表示是一个controller),而不是@RestController(返回json格式数据);
第四步:创建目录和jsp文件,并添加web.xml
这里写图片描述
如图所示:在main的下级目录,和Java、resources同级目录创建webapp文件夹,并依次创建WEB-INF和jsp,在jsp文件夹中创建index.jsp;在WEB-INF文件夹中创建web.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
</web-app>

index.jsp文件内容如下(比较简单一个jsp):

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>Full Layout - jQuery EasyUI Demo</title>
</head>
<body>
<input type="button" value="点我" />
<input type="text" style="height:100px;width:90%" id="input"/>
</body>
</html>

第五步:在application.properties中添加jsp的前缀和后缀(我的8080端口号被占用,这里修改一下端口号):

#页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/jsp/
#页面默认后缀目录
spring.mvc.view.suffix=.jsp
#我的8080端口号被占用,改一下端口号
server.port=8092

第六步:启动项目并访问:http://localhost:8092/index
到这里就结束了,如果你的项目还起不来,或者按照我的教程访问不了jsp,或者报404的,你来打我!!!ps欢迎留言
这里写图片描述

评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值