栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Boot之Web开发与打War包

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot之Web开发与打War包

Spring Boot之Web开发与打War包
  • 一、静态资源访问
  • 二、全局捕获异常
  • 三、渲染Web页面
    • 1.Freemarker渲染web视图
    • 2.JSP渲染Web视图
  • 四、打包方式
    • 1.Jar
    • 2.War

一、静态资源访问

Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:

/static
/public
/resources
/meta-INF/resources

示例:

在src/main/resources/目录下创建static,并在static目录下存放一张图片1.jpg。

访问http://localhost:8080/1.jpg路径即可访问。
二、全局捕获异常

@ExceptionHandler表示拦截的具体异常

@ControllerAdvice是controller的一个辅助类,常作为全局异常处理的切面类。约定了几种可行的返回值:

1.返回String,表示跳到某个view

2.返回modelAndView

3.返回model,需使用@ResponseBody进行json转换
@ControllerAdvice
public class GlobalExceptionHandler {
	@ExceptionHandler(RuntimeException.class)
	@ResponseBody
	public Map exceptionHandler() {
		Map map = new HashMap();
		map.put("code", "101");
		map.put("msg", "系統错误");
		return map;
	}
}
三、渲染Web页面

通过@RestController来处理请求,返回的内容为json对象,如果需要渲染html页面,则Spring Boot提供了多种模板引擎的默认配置支持动态HTML

默认配置的模板引擎主要有以下几种:

Thymeleaf

FreeMarker

Velocity

Groovy

Mustache

当使用上述模板引擎中的任何一个,它们默认的模板配置路径为:src/main/resources/templates。如果要修改这个路径,具体如何修改,可在各模板引擎的配置属性中查询并修改。

1.Freemarker渲染web视图

引入依赖



	org.springframework.boot
	spring-boot-starter-freemarker

添加配置application.properties

#启用模板缓存
spring.freemarker.cache=true
#检查模板位置是否存在
spring.freemarker.check-template-location=true
#设置编码格式
spring.freemarker.charset=UTF-8
#内容类型值
spring.freemarker.content-type=text/html
#后缀,该后缀用于在构建URL时查看名称。
spring.freemarker.suffix=.ftl
#以逗号分隔的模板路径列表
spring.freemarker.template-loader-path=classpath:/templates/

添加web层访问逻辑

@Controller
public class IndexControler {

	@RequestMapping("/index")
	public String index(ModelMap map) {
		map.addAttribute("name", "小白");
		return "index";
	}
}

在src/main/resources/创建一个templates文件夹,新增后缀为*.ftl的文件。




    
    freemarker


	${name}


2.JSP渲染Web视图

SpringBoot应用默认支持的动态网页技术是Thymeleaf,并不支持JSP;因此在SpringBoot应用想要使用JSP需要通过手动整合来实现

引入依赖

	
			org.springframework.boot
			spring-boot-starter-tomcat
		
		
			org.apache.tomcat.embed
			tomcat-embed-jasper
		

修改pom.xml打包方式

war

配置application.properties

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

Controller访问逻辑

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

在main目录下,添加webapp目录与resources目录同级,在main/webapp/WEB-INF/jsp/添加index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>



    
    jsp


    

hello jsp

四、打包方式 1.Jar
SpringBoot项目默认打包方式就是打Jar包,所以无需任何配置。
2.War

指定打包方式

在pom.xml中指定打包方式:War
war

移除自带的内置Tomcat

		
			org.springframework.boot
			spring-boot-starter-web
			
				
					spring-boot-starter-tomcat
					org.springframework.boot
				
			
		

添加servlet-api依赖

	
			javax.servlet
			javax.servlet-api
			provided
		

添加War的启动类

public class WarStarterApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 指向springboot项目的启动类
        return builder.sources(Application.class);
    }
}

最后将生成War包丢进Tomcat运行即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/344897.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号