springboot创建webapp文件夹访问jsp页面
一、文章简述

使用IDEA工具创建的SpringBoot项目本身是没有webapp目录的。如果我们想要添加webapp目录的话,可以手动添加。

二、操作步骤

1)点击IDEA右上角的Project Structure
在这里插入图片描述
或者
在这里插入图片描述
出现如下页面
在这里插入图片描述
选择这个web
在这里插入图片描述
如果没有web的话,或者不小心删除,可以点击加号重新选中
在这里插入图片描述
对于路径进行编辑 一般放在src/main/webapp
目录结构为src/main/webapp/WEB-INF/web.xml
在这里插入图片描述
在这里插入图片描述
路径代码

D:\JavaWorkSpace\MySpringBootTest\src\main\webapp\WEB-INF\web.xml

上面完成后下面也一样,点击编辑对于路径编辑,可以写代码也可以自己手动选路径
在这里插入图片描述
在这里插入图片描述
下面路径代码

D:\JavaWorkSpace\MySpringBootTest\src\main\webapp

都完成后apply ok即可,会自动帮我们创建
在这里插入图片描述
然后就能看到这个结构
在这里插入图片描述
webapp的图标中心必须有蓝色的点即为成功
我们创建个jsp访问试下

在这里插入图片描述
别忘了我们的pom依赖还有application.properties配置

   <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

前缀的写法各有千秋,也可以写成/WEB-INF/,只是存放jsp的路径不一样,如果写成/,那么你的jsp在webapp目录下直接创建即可,如果是直接/WEB-INF/,那么你的jsp需要在目录创建,也就是和web.xml在同一层
#配置视图的前缀和后缀
spring.mvc.view.prefix=/或者(前后二选其一)spring.mvc.view.prefix=/WEB-INF
spring.mvc.view.suffix=.jsp

后台访问jsp方法,顺便把数据库查到的数据带过去

 @RequestMapping("test1")
    public String test1(HttpServletRequest request){
        request.setAttribute("info",testService.queryStudent());
        return "TestJsp";
    }

jsp

<%--
  Created by IntelliJ IDEA.
  User: wx_weiyihe
  Date: 2021/8/19
  Time: 15:51
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>我的jsp</h1>
${info}
</body>
</html>

访问

http://localhost:8080/test1

在这里插入图片描述
如果访问不到jsp页面(404)出现以下错误

Path with “WEB-INF” or “META-INF”:
2021-10-25 09:27:35.233 WARN 12892 — [nio-8080-exec-4] o.s.w.s.r.ResourceHttpRequestHandler : Path with “WEB-INF” or “META-INF”: [WEB-INF/showUserJSP.jsp]

因为spring boot不提倡用jsp,需要在pom.xml中加入以下依赖就可以了。

   <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

加完依赖注意刷新maven

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐