专栏名称: hryou0922
目录
相关文章推荐
杭州日报  ·  明天起,杭州人吃饭可以调整一下了! ·  2 天前  
FM93交通之声  ·  微信、快手、抖音相继宣布:下架! ·  2 天前  
杭州日报  ·  确认了!强制下班!热搜炸锅 ·  2 天前  
51好读  ›  专栏  ›  hryou0922

Spring Boot系列八 spring boot集成jsp、restful接口、springmvc基本功能

hryou0922  · 掘金  ·  · 2018-01-30 02:37

正文

1. 概述

本文介绍spring boot里的spring mvc部分的用法,主要包括如下:

  • 1 实现 spring boot 集成jsp: @Controller+ @RequestMapping
  • 2 模拟登录功能: ModelAndView
  • 3 spring boot 实现restful接口:@RestController

2. 第一个demo: spring boot集成jsp

工程: mvc

本节实现spring boot集成jsp功能

2.1. pom.xml

引入相关的类

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <artifactId>mvc</artifactId>
    <packaging>jar</packaging>

    <name>mvc</name>
    <description>Demo project for spring mvc</description>

    <parent>
        <groupId>com.hry.spring</groupId>
        <artifactId>parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../parent/pom.xml</relativePath>
    </parent>



    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <!-- spring mvc -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.3</version>
        </dependency>
        <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>fastjson</artifactId>
             <version>1.2.12</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <!--<scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

    </dependencies>

</project>

2.2. application.properties

# 页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/page/
## 响应页面默认后缀
spring.mvc.view.suffix=.jsp

注意 :自己写的jsp页面请放置到这个目录下“META-INF/resources/WEB-INF/page/”

2.3. JSP页面配置

META-INF/resources/:请将jsp文件配置在这个目录下,如果不配置在这个目录下,则会出现无法找到jsp页面的问题

META-INF/resources/WEB-INF/page/first/index.jsp

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    This is spring mvc first page.
</body>
</html>

2.4. FirstControl

第一个测试control

@Controller: 定义controller层类 @RequestMapping:定义本请求的请求url

请求后,返回”META-INF/resources/WEB-INF/page/first/index.jsp”的内容

@Controller
public class FirstControl {

    /**
     * http://127.0.0.1:8080/first
     *  返回页面META-INF/resources/WEB-INF/page/first/index.jsp
     * @param model
     * @return
     */
    @RequestMapping("/first")
    public String first(Model model) {
        model.addAttribute("message", "Hello World!");
        return "first/index";
    }   
}

2.5. 启动类MvcApplication

MvcApplication 需要继承SpringBootServletInitializer,重写configure方法。方法fastJsonHttpMessageConverters表示使用fastjson做为json解析的工具

spring mvc的demo都使用这个做为启动类

@SpringBootApplication
 public class MvcApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(MvcApplication.class);
    }

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

    /**
     * 使用fastjson做为spring mvc的json序列化
     * @return
     */
    @Bean
    public HttpMessageConverters fastJsonHttpMessageConverters() {
        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        fastConverter.setFastJsonConfig(fastJsonConfig);
        HttpMessageConverter<?> converter = fastConverter;
        return new HttpMessageConverters(converter);
    }
}

2.6. 测试

执行请求: http://127.0.0.1:8080/first
返回内容:

This is spring mvc first page.

3. 第二个demo: 实现简单的登陆的功能

和上节在相同的工程mvc中,本节只列出不同的地方。 功能如下 :我们先登录from.jsp后,用户输入到信息,如果成功,则转到succ.jsp,否则转到home.jsp







请到「今天看啥」查看全文