今天看啥
热点:

Web应用之JSP+打war包在tomcat中运行实例讲解,tomcat实例讲解


首先引入依赖:

在build.gradle中

    //支持thymeleaf模板
    //compile("org.springframework.boot:spring-boot-starter-thymeleaf")
    //支持jsp
    compile('javax.servlet:jstl') //
    compile('javax.servlet:javax.servlet-api') 
    compile('org.springframework.boot:spring-boot-starter-tomcat')
    compile('org.apache.tomcat.embed:tomcat-embed-jasper')  //

依赖包范围说明:

compile:编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。典型的例子是spring-code,在编译、测试和运行的时候都需要使用该依赖。

test: 测试依赖范围。使用次依赖范围的Maven依赖,只对于测试classpath有效,在编译主代码或者运行项目的使用时将无法使用此依赖。典型的例子是Jnuit,它只有在编译测试代码及运行测试的时候才需要。

provided:已提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试classpath有效,但在运行时候无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器以及提供,就不需要Maven重复地引入一遍。

特别说明:经验证,暂时发现不能同时使用thymeleaf模板和JSP,如果开启了了支持thymeleaf,则controller跳转仍然按照 thymeleaf的格式跳转到templates 下面的同名html模板文件,同时servlet-api包用的compile范围,但是在idea和外部的tomcat中都可以正常启动。

application.properties配置

要支持jsp,需要在application.properties中配置返回文件的路径以及类型,这里指定了返回文件类型为jsp,路径是在/WEB-INF/jsp/下面。

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

控制类

上面步骤有了,这里就开始写控制类,直接上简单的代码,跟正常的springMVC没啥区别:

@Controller
@RequestMapping("/learnJsp")
public class LearnResourceController {
    @RequestMapping("")
    public ModelAndView index(){
        List learnList =new ArrayList();
        LearnResouce bean =new LearnResouce("官方参考文档","Spring Boot Reference Guide","http://docs.spring.io/spring-boot/docs/1.5.1.RELEASE/reference/htmlsingle/#getting-started-first-application");
        learnList.add(bean);
        bean =new LearnResouce("官方SpriongBoot例子","官方SpriongBoot例子","https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples");
        learnList.add(bean);
        bean =new LearnResouce("龙国学院","Spring Boot 教程系列学习","http://www.roncoo.com/article/detail/125488");
        learnList.add(bean);
        bean =new LearnResouce("嘟嘟MD独立博客","Spring Boot干货系列 ","http://tengj.top/");
        learnList.add(bean);
        bean =new LearnResouce("后端编程嘟","Spring Boot教程和视频 ","http://www.toutiao.com/m1559096720023553/");
        learnList.add(bean);
        bean =new LearnResouce("程序猿DD","Spring Boot系列","http://www.roncoo.com/article/detail/125488");
        learnList.add(bean);
        bean =new LearnResouce("纯洁的微笑","Sping Boot系列文章","http://www.ityouknow.com/spring-boot");
        learnList.add(bean);
        bean =new LearnResouce("CSDN——小当博客专栏","Sping Boot学习","http://blog.csdn.net/column/details/spring-boot.html");
        learnList.add(bean);
        bean =new LearnResouce("梁桂钊的博客","Spring Boot 揭秘与实战","http://blog.csdn.net/column/details/spring-boot.html");
        learnList.add(bean);
        bean =new LearnResouce("林祥纤博客系列","从零开始学Spring Boot ","http://412887952-qq-com.iteye.com/category/356333");
        learnList.add(bean);
        ModelAndView modelAndView = new ModelAndView("/index");
        modelAndView.addObject("learnList", learnList);
        return modelAndView;
    }
}

用的对象类LearnResouce

public class LearnResouce {

    private String author;
    private String title;
    private String url;

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public LearnResouce(String author, String title, String url) {
        this.author = author;
        this.title = title;
        this.url = url;
    }
}

jsp页面编写

需在webapp/WEB_INF/jsp目录下新建index.jsp

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>




<script src="${pageContext.request.contextPath}/vanilla-cream-css/js/libs/modernizr.min.js"></script><script src="${pageContext.request.contextPath}/vanilla-cream-css/js/libs/jquery-1.10.0.js"></script><script src="${pageContext.request.contextPath}/vanilla-cream-css/js/libs/jquery-ui.min.js"></script><script src="${pageContext.request.contextPath}/vanilla-cream-css/js/libs/bootstrap.min.js"></script> <script src="${pageContext.request.contextPath}/vanilla-cream-css/js/general.js"></script>Sptring Boot学习资源大奉送,爱我就关注嘟嘟公众号:嘟爷java超神学堂
作者 教程名称 地址
${learn.author} ${learn.title} 点我

页面访问验证:

最后启动tomcat输入http://localhost:9090/learnJsp 查看效果:

这里写图片描述

外部的Tomcat服务器部署war包

打war包:

在build.gradle中增加

//编译为war包
apply plugin: 'war'

然后运行

这里写图片描述

或者命令行执行 gradle build

会生成war包到配置文件中的生成路径

然后把war放到tomcat的webapps下,最后启动tomcat,能正常访问如下图:

这里写图片描述

注意,springboot打war包需要做到如下修改才可以,否则找不对对应的jsp路径:

主类继承SpringBootServletInitializer,同时重写configure方法

外部容器部署的话,就不能依赖于Application的main函数了,而是要以类似于web.xml文件配置的方式来启动Spring应用上下文,此时我们需要在启动类中继承SpringBootServletInitializer并实现configure方法:

public class Application extends SpringBootServletInitializer {

@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {

return application.sources(Application.class);

}

}

这个类的作用与在web.xml中配置负责初始化Spring应用上下文的监听器作用类似,只不过在这里不需要编写额外的XML文件了。

www.bkjia.comtruehttp://www.bkjia.com/Jspjc/1303178.htmlTechArticleWeb应用之JSP+打war包在tomcat中运行实例讲解,tomcat实例讲解 首先引入依赖: 在build.gradle中 //支持thymeleaf模板 //compile(org.springframework.boot:spr...

相关文章

相关搜索: Web JSP tomcat 运行 代码

帮客评论

视觉看点