IDEA版SpringBoot全教程 04 整合JSP

简介: IDEA版SpringBoot全教程 04 整合JSP
<!-- servlet依赖. -->
<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
</dependency>
      <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>jstl</artifactId>
      </dependency>
<!-- tomcat的支持.-->
<dependency>
       <groupId>org.apache.tomcat.embed</groupId>
       <artifactId>tomcat-embed-jasper</artifactId>
</dependency>


添加以上配置,不然没法正确访问到jsp

application.yml

spring:
  jpa:
    database: mysql
    hibernate:
      ddl-auto: update
      show-sql: true
  #资源目录  
  resources:
    static-locations: classpath:static/
  #视图解析器  
  mvc:
    view:
      prefix: /WEB-INF/jsp/
      suffix: .jsp

这些配置主要是为了说明资源目录和视图的位置。

在src下新建一个com包,里面写一个启动类:

21.png

package com;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * SpringBoot启动类
 * @author Administrator
 *
 */
@SpringBootApplication(scanBasePackages = "com")
public class Application {
   public static void main(String[] args) {
       SpringApplication.run(Application.class, args);
   }
}

项目肯定需要一个欢迎页,我们需要这样的一个目录结构:

22.png


index.jsp里面的内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首页</title>
</head>
<body>
  恭喜,JSP整合成功!
</body>
</html>

页面有了,下一步就是如何访问这个页面,老规矩,创建Controller

23.png

package com.app.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class IndexController {
  @RequestMapping("/")
  public ModelAndView index(ModelAndView mav){
    mav = new ModelAndView("index");
    return mav;
  }
}

默认访问的就是index.jsp

启动项目,访问 http://localhost

24.png

Jsp中获得项目根路径的方式

1.可以使用EL表达式:${pageContext.request.contextPath}
这种方式是的取到pageContext对象,然后在得到HttpServletRequest对象,最后再拿到contextPath。
2.可以采用JSP的形式来表示:
<%=request.getContextPath()%>
3. jstl set自定义标签 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="basePath" value="${pageContext.request.contextPath}"></c:set>

上面3种方式都是可以的,我们以第三种方式为例。

更新index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="basePath" value="${pageContext.request.contextPath}"></c:set>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首页</title>
</head>
<body>
  恭喜,JSP整合成功! ${basePath}
</body>
</html>

修改application.yml

server:
  port: 80
  context-path: /app

意思就是修改项目根目录为app。

重启,访问 http://localhost/app

25.png



相关文章
|
24天前
|
Java 开发工具 Maven
IntelliJ IDEA安装教程(超详细)
IntelliJ IDEA安装教程(超详细)
84 1
|
2月前
|
Java 数据库连接 mybatis
springboot访问jsp页面变成直接下载?
springboot访问jsp页面变成直接下载?
43 0
|
2月前
|
Kubernetes Java 容器
部署 Spring Boot 应用到 K8S 教程
部署 Spring Boot 应用到 K8S 教程
48 0
|
2月前
|
IDE Java 开发工具
idea一步一步安装教程
idea一步一步安装教程
|
7天前
|
Java Maven Kotlin
[AIGC] 请你写一遍博客介绍 “使用idea+kotinlin+springboot+maven 结合开发一个简单的接口“,输出markdown格式,用中文回答,请尽可能详细
[AIGC] 请你写一遍博客介绍 “使用idea+kotinlin+springboot+maven 结合开发一个简单的接口“,输出markdown格式,用中文回答,请尽可能详细
|
13天前
|
Java Windows Spring
Spring Boot 3.x 全新的热部署配置方式(IntelliJ IDEA 2023.1)
Spring Boot 3.x 全新的热部署配置方式(IntelliJ IDEA 2023.1)
16 1
|
2月前
|
安全 Java 应用服务中间件
新版idea(2023)创建spring boot3项目
新版idea(2023)创建spring boot3项目
157 1
|
2月前
|
前端开发 Java Maven
java集成opencv(不踩坑),实现人脸检测小demo(含上传人像图片识别接口),windows,IDEA,Springboot
java集成opencv(不踩坑),实现人脸检测小demo(含上传人像图片识别接口),windows,IDEA,Springboot
190 0
|
2月前
最新idea激活码附赠激活教程
最新idea激活码附赠激活教程
107 1
|
2月前
|
Java Maven
idea中如何创建SpringBoot项目
idea中如何创建SpringBoot项目