三、Spring Boot Web開發一之JSP

Spring Boot Web開發一之JSP

springboot內部對jsp的支持並不是特別理想,而springboot官方推薦的視圖是Thymeleaf,很多書籍和博客也是使用Thymeleaf做web開發,但是對於java開發人員來說還是大多數人員喜歡使用jsp,接下來我們來講解下springboot是如何支持jsp的。

本章目標

整合springboot web項目支持jsp作爲視圖輸出。

1、新建web項目

通過idea新建web項目,具體請參考 初識springboot之快速搭建

2、配置pom.xml

配置pom.xml,下載項目所需依賴包,配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<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>

    <groupId>com.crazyang</groupId>
    <artifactId>secondjspdemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>SecondJSPDemo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--JSP Maven-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>
        <!--Servlet Maven-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>
        <!--JSTL Maven-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

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


</project>

3、修改配置文件

修改application.properties文件,如下所示,springboot自動讀取配置文件,讓springmvc支持視圖的跳轉目錄指向爲/main/webapp/WEB-INF/jsp

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

4、新建jsp文件

在/src/main/下新建/webapp/WEB-INF/jsp文件夾,用於存放jsp文件,新建index.jsp和success.jsp兩個jsp文件,一個用於模擬登陸頁面,一個用於模擬登陸成功跳轉頁面。代碼如下:
index.jsp

<%--
  Created by IntelliJ IDEA.
  User: crazyang
  Date: 2018-6-6
  Time: 14:01
  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>
登陸界面,請輸入用戶名和密碼登陸
<form action="/login">
    <input type="text" name="name"/>
    <input type="password" name="password"/>
    <button type="submit">提交</button>
</form>
</body>
</html>

success.jsp

<%--
  Created by IntelliJ IDEA.
  User: crazyang
  Date: 2018-6-6
  Time: 14:01
  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>
登陸成功,歡迎來到spring boot.
</body>
</html>

5、新建IndexContoller,啓動項目

新建IndexController,主要用於模擬首頁和獲取登陸請求,完成頁面跳轉,代碼如下:

package com.crazyang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;

/**
 * Created with IntelliJ IDEA.
 *
 * @Author crazyang
 * @Desciption:
 * @Date 2018-6-6 14:02
 */
@Controller
public class IndexController {

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

    @RequestMapping("/login")
    public String login(HttpServletRequest request){
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        System.out.println("name = "+name+" , password = "+ password);
        return "success";
    }
}

6、啓動成功,操作效果圖

6.1項目首頁展示

在瀏覽器窗口輸入http://localhost:8080/index,進入如下頁面:
這裏寫圖片描述

6.2打印提交信息

在輸入框中分別輸入 crazyang 和123456,點擊提交,後臺控制檯打印出提交信息,如下圖所示:
這裏寫圖片描述

6.3頁面跳轉

提交成功後,頁面跳轉,如下圖所示:
這裏寫圖片描述

7、總結

本章主要是講解了springboot集成jsp作爲渲染視圖,結合springmvc來轉發請求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章