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