012-Spring Boot web【一】创建、请求、使用jsp、freemarker,tomcat、jetty

一、项目搭建

同:http://www.cnblogs.com/bjlhx/p/8324971.html

1)新建maven项目→使用默认配置即可

定义好项目名称等

2)修改jdk版本

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
    </properties>

3)增加spring-boot-dependencies

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>1.5.9.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

4)在pom的dependencies增加依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

不需要增加spring-boot-starter包,在spring-boot-starter-web中已经包含了

5)增加main方法启动程序即可

@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

可增加一个示例,增加一个UserController

@Controller
public class UserController {

    @RequestMapping("/user/home")
    @ResponseBody
    public String home() {
        return "user home";
    }

}

访问:http://127.0.0.1:8080/user/home即可

二、基本配置

1.启动端口

默认配置文件在src/main/resource下的application.properties

服务启动端口

server.port=80

2.请求路径与方式

    @RequestMapping(value = "/user/home", method = RequestMethod.GET)
    @ResponseBody
    public String home() {
        return "user home";
    }

以前的方式使用RequestMapping

在4.3以后提供以下方式

    @GetMapping(value = "/user/show")
    @ResponseBody
    public String show() {
        return "user show";
    }

    @PostMapping(value = "/user/create")
    @ResponseBody
    public String create() {
        return "user create";
    }

即:GetMapping、PostMapping

3、获取请求参数

3.1、获取请求参数RequestParam

    @PostMapping(value = "/user/create")
    @ResponseBody
    public String create(@RequestParam(value="username",defaultValue="admin",required=false) String username,@RequestParam("password")String password) {
        return "user create,username="+username+";password="+password;
    }

3.2、获取url参数@PathVariable

    @GetMapping(value = "/user/{id}")
    @ResponseBody
    public String display(@PathVariable("id") String id) {
        return "user display,id="+id;
    }

3.3、支持注入Servletapi,HttpServletRequest

    @GetMapping(value = "/user/ip")
    @ResponseBody
    public String edit(HttpServletRequest req) {
        return "user edit " + req.getRemoteHost();
    }

4、RestController

为了简化每一个都加@ResponseBody

表明了当前Controller的方法返回值可以直接作为ResponseBody输出。

三、Spring boot中

1.使用jsp

1.1、增加maven:tomcat-embed-jasper;【版本可以根据具体是否添加】

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

1.2、增加配置

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

1.3、增加Controller

@Controller
public class LoginController {
    @PostMapping("/login")
    public String login(@RequestParam("username") String username, @RequestParam("password") String password) {
        if (username.equals(password)) {
            return "/ok";
        }
        return "/fail";
    }
}

注:方法直接返回String,就代表路径+jsp页面名【不含扩展名】

注意:注解使用Controller,不是RestController

1.4、增加jsp页面

位置:src/main/webapp下简历WEB-INF/jsp文件夹

ok.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html ">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>ok
</body>
</html>

fail.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
fail
</body>
</html>

2、给jsp传递参数

java端,Model 的addAttribute,相当于request.setAttribute

    @GetMapping("/login")
    public String loginIndex(Model model) {
        model.addAttribute("username","root");
        return "/login";
    }

jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html ">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
${username}
</body>
</html>

3、模板freemarker

注:尽量先注释掉jsp的设置,pom,配置文件设置

3.1、增加pom

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>

3.2、默认位置于classpath的templates下

reg.ftl

<h1>reg page</h1>

可以查看spring-boot-autoconfigure包,在org.springframework.boot.autoconfigure.freemarker.FreeMarkerProperties中查看

@ConfigurationProperties(prefix = "spring.freemarker")
public class FreeMarkerProperties extends AbstractTemplateViewResolverProperties {

    public static final String DEFAULT_TEMPLATE_LOADER_PATH = "classpath:/templates/";

    public static final String DEFAULT_PREFIX = "";

    public static final String DEFAULT_SUFFIX = ".ftl";

路径:classpath:/templates,默认扩展名:.ftl

模板路径配置:spring.freemarker.templateLoaderPath=classpath:/ftl

4、模板freemarker参数传递

同2一致

5、web容器

5.1、默认是tomcat,更换jetty

排除tomcat。将web修改

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

增加jetty

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>

注意查看

spring-boot-autoconfigure包,在org.springframework.boot.autoconfigure.web.ServerProperties中查看,如何配置web容器配置

server.port=8080
server.contextPath=/

注意:善用contextPath做虚拟目录

原文地址:https://www.cnblogs.com/bjlhx/p/8372584.html

时间: 2025-01-15 05:50:36

012-Spring Boot web【一】创建、请求、使用jsp、freemarker,tomcat、jetty的相关文章

Springboot 系列(六)Spring Boot web 开发之拦截器和三大组件

1. 拦截器 Springboot 中的 Interceptor 拦截器也就是 mvc 中的拦截器,只是省去了 xml 配置部分.并没有本质的不同,都是通过实现 HandlerInterceptor 中几个方法实现.几个方法的作用一一如下. preHandle 进入 Habdler 方法之前执行,一般用于身份认证授权等. postHandle 进入 Handler 方法之后返回 modelAndView 之前执行,一般用于塞入公共模型数据等. afterCompletion 最后处理,一般用于日

使用Spring Boot和Gradle创建AngularJS项目

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 本文主要是记录使用 Spring Boot 和 Gradle 创建项目的过程,其中会包括 Spring Boot 的安装及使用方法,希望通过这篇文章能够快速搭建一个项目. 1. 开发环境 操作系统: mac JDK:1.7.0_60 Gradle:2.2.1 IDE:Idea 2. 创建项目

[转] 使用Spring Boot和Gradle创建项目

Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 本文主要是记录使用 Spring Boot 和 Gradle 创建项目的过程,其中会包括 Spring Boot 的安装及使用方法,希望通过这篇文章能够快速搭建一个项目. 开发环境 操作系统: mac JDK:1.7.0_60 Gradle:2.2.1 创建项目 你可以通过 Spring I

spring boot中使用xml请求

spring boot 中使用xml请求 先在pom文件中引入依赖包 <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.9.0</version></dependency> 编写请求实体 package com.sc

Spring boot - Web综合开发(转)

Web 开发 Spring Boot Web 开发非常的简单,其中包括常用的 json 输出.filters.property.log 等 json 接口开发 在以前使用 Spring 开发项目,需要提供 json 接口时需要做哪些配置呢 添加 jackjson 等相关 jar 包 配置 Spring Controller 扫描 对接的方法添加 @ResponseBody 就这样我们会经常由于配置错误,导致406错误等等,Spring Boot 如何做呢,只需要类添加 @RestControll

Springboot 系列(五)Spring Boot web 开发之静态资源和模版引擎

前言 Spring Boot 天生的适合 web 应用开发,它可以快速的嵌入 Tomcat, Jetty 或 Netty 用于包含一个 HTTP 服务器.且开发十分简单,只需要引入 web 开发所需的包,然后编写业务代码即可. 自动配置原理? 在进行 web 开发之前让我再来回顾一下自动配置,可以参考系列文章第三篇.Spring Boot 为 Spring MVC 提供了自动配置,添加了如下的功能: 视图解析的支持. 静态资源映射,WebJars 的支持. 转换器 Converter 的支持.

Spring Boot AOP之对请求的参数入参与返回结果进行拦截处理

Spring Boot AOP之对请求的参数入参与返回结果进行拦截处理 本文链接:https://blog.csdn.net/puhaiyang/article/details/78146620 本文链接:https://blog.csdn.net/puhaiyang/article/details/78146620 spring Aop切面中的@Before @Around等执行顺序与请求参数统一解码 https://www.cnblogs.com/newAndHui/p/11771035.h

Spring Boot的简介与idea整合jsp

一.Spring Boot简介 SpringBoot是一个框架,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且繁琐的配置文件.它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来.使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器).准生产级别的基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置. SpringB

Spring Boot基础6-web应用开发-模板引擎FreeMarker

原文视频参考:http://www.roncoo.com/course/view/c99516ea604d4053908c1768d6deee3d 一.spring boot的web应用开发,是基于spring mvc 二.Spring boot 在spring默认基础上,自动配置添加了以下特性: 1.   包含了ContentNegotiatingViewResolver和BeanNameViewResolver beans. 2.   对静态资源的支持,包括对WebJars的支持. 3.  

第一个Spring Boot Web程序

需要的环境和工具: 1.Eclipse2.Java环境(JDK 1.7或以上版本)3.Maven 3.0+(Eclipse已经内置了) 写个Hello Spring: 1.新建一个Maven项目 选择 maven-archetype-quickstart 删除项目中的 test,这个我们用不到, 刚刚建好的项目如图所示: 修改 pom.xml ,如果你是第一次玩Spring那么修改pom.xml后Eclipse会自动下载相关依赖包: 1 <project xmlns="http://mav