• 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-bootspring-boot-samplesspring-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入口

  • 相关阅读:
    Event bubbling
    input/change event practice
    Form event
    Event_Object
    DOM_this keyword
    Random color generator exercise
    DOM_events_addEventListener
    Spring值SpEL
    Spring之使用外部属性文件
    Spring之Bean的作用域
  • 原文地址:https://www.cnblogs.com/woms/p/6030476.html
Copyright © 2020-2023  润新知