springboot跳轉jsp頁面


springboot支持jsp頁面跳轉

官方不推薦jsp的支持(jar包不支持jsp,jsp需要運行在servletContext中,war包需要運行在server服務器中如tomcat)官方推薦使用thymeleaf,freemarker等模版引擎

1.創建maven project項目

 

<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.woms.www</groupId>
    <artifactId>springboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <parent>
        <groupId> org.springframework.boot</groupId>
        <artifactId> spring-boot-starter-parent</artifactId>
        <version>1.3.5.RELEASE</version>
    </parent>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- tomcat支持 -->
       <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>
        <!-- jsp標簽庫 -->
        <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>jstl</artifactId>
       </dependency>

    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

 

這里要注意的主要是引入tomcat支持和jstl標簽庫

2.application.properties配置文件

#springmvc
spring.mvc.view.prefix:/WEB-INF/jsp/
spring.mvc.view.suffix:.jsp

 

3.創建啟動類和controller測試

package com.woms;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

//該@SpringBootApplication注解等價於以默認屬性使用@Configuration,@EnableAutoConfiguration和@ComponentScan。

@SpringBootApplication
public class StringbootApplication {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        SpringApplication.run(StringbootApplication.class, args);

    }

}

 

package com.woms.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


//@RestController
@Controller
@RequestMapping("/login")
public class UserController {
      
     // @RestController相當於@Controller+@ResponseBody(每一個方法上默認返回的是json串)
    
    @RequestMapping("/initLogin")
    public String initLogin(Model model){
        
        model.addAttribute("model", "model:你被支持嗎?");       
        return "hello";
        
    }
    
    @RequestMapping("/")
    public String welcome(){

        return "index";
        
    }
}

 

參考官方有個sample,地址是:
https://github.com/spring-projects/spring-boot/tree/v1.1.5.RELEASE
里面有個spring-boot\spring-boot-samples\spring-boot-sample-web-jsp自己跑一下。

 

springboot打包在linux服務器中運行

如果項目是應用服務,可以將項目設置成jar項目,打包成jar包直接運行

如果項目是web服務,將項目設置成war項目,打包成war包在tomcat環境下運行

1.打包插件

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

 

在eclipse可以用maven命令package直接打包,打包成jar包或者war包

jar包可以直接運行:java -jar xxx.jar    war包需要放在tomcat下運行

用上面的方式啟動springboot的web項目可以像啟動應用項目一樣通過main方法啟動並訪問jsp頁面(適合開發),但是在linux中要打包成war包放在tomcat中運行

2.打包成war項目在tomcat中運行

2.1修改啟動入口

package com.woms;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;

//該@SpringBootApplication注解等價於以默認屬性使用@Configuration,@EnableAutoConfiguration和@ComponentScan。

@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // TODO Auto-generated method stub
        return builder.sources(MyApplication.class);
    }

    

}

 

 

2.2修改pom.xml文件

 

<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>

 

將內嵌的tomcat移除

如果是開發階段的話,沒有wen.xml是沒法加入到tomcat服務器中的

需要注意一下幾點:

1.jar包中的打包方式根據自己的需要進行修改

2.若打包成war包,則需要繼承 org.springframework.boot.context.web.SpringBootServletInitializer類,覆蓋其config(SpringApplicationBuilder)方法

3.打包成war的話,如果打包之后的文件中沒有web.xml文件的話自己可以加進去一個最簡單的web.xml(只有根節點的定義,而沒有子元素),防止因缺乏web.xml文件而部署失敗

 

總結:

1.web項目用maven創建war項目應用項目用maven創建jar項目

2.打包如果是war項目就打包成war包,放在tomcat下運行,如果是jar項目就打包成jar包 java -jar xxx.jar運行(用打包插件打包)

3.在開發階段,jar項目可以通過main方法直接運行,war項目也可以通過main方法直接運行,需要修改pom.xml文件和springboot入口

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM