Spring boot 之一 HelloWorld
谨以此专辑,纪念Spring Boot学习之旅。
创建第一个项目以及跳转到JSP页面
1、新建项目
2、项目创建完成后的目录结构
3、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.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>demo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.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>10</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--web 支持--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--jsp页面使用jstl标签--> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <!--用于编译jsp--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
4、启动类DemoApplication.java 文件
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
5、HelloController控制器文件
package com.example.demo; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; @Controller @RequestMapping(value = "/view") public class HelloController { @RequestMapping(value = "/hello") public String hello(HttpServletRequest request){ System.out.println("测试数据"); request.setAttribute("demo","大漠孤烟直"); request.setAttribute("demo2","长河落日圆"); return "hello"; } }
6、application.properties文件
spring.mvc.view.prefix = /WEB-INF/views/ spring.mvc.view.suffix = .jsp
7、hello.jsp 文件
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basepath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <html> <head> <base href="<%=basepath %>" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Insert title here</title> </head> <body> 这是测试页面 <% String demo = (String)request.getAttribute("demo"); String demo2 = (String)request.getAttribute("demo2"); System.out.println("demo :"+demo); System.out.println("demo2:"+demo2); %> </body> </html>``` 8、启动成功 ![image](https://yqfile.alicdn.com/878fb0ca4dd3e27223e243e7e1690c64d97a6cc3.png) 9、访问测试 ![image](https://yqfile.alicdn.com/cf4d9448373204825fbe75f150930d76db88b47c.png)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
第六章 接口,lamda表达式与内部类
接口 接口可以包含常量, 且不需要publish static final修饰, 接口的域会自动添加该修饰符. Java建议不要写多余的代码,因此省略修饰符更简洁. 全部都是常量的接口背离了接口的初衷,不建议使用 Java SE8 中, 允许接口增加静态方法,但这也有悖接口的初衷 接口的默认方法实现用 defalut 修饰, 适用于子类只需要实现其中几个方法的情况, 而其他方法以默认方法形势存在, 子类没必要实现他们. 接口方法命名的二义性需要子类中解决,可以使用InterfaceName.super.Method()解决 接口和类方法的二义性以类的方法优先, 这样可以保证与之前版本的兼容性 不要让一个接口默认方法重新定义Object中的方法, 原因即上一点提到的, 类的方法优先导致默认方法失效. lamda表达式 对于只有一个抽象方法的接口(没有default修饰)),需要这种接口的对象时,就可以提供一个 lambda 表达式。这种接口称为函数式接口(functional interface)。 @FunctionalInterface 注解表明接口是一个函数式接口,这个注解并非必须...
- 下一篇
Springboot Application 集成 OSGI 框架开发
Java 类加载器 启动类加载器 (Bootstrap ClassLoader) 是 Java 类加载层次中最顶层的类加载器,负责加载 JDK 中的核心类库,如:rt.jar、resources.jar、charsets.jar 等 扩展类加载器(Extension ClassLoader) 负责加载 Java 的扩展类库,默认加载 JAVA_HOME/jre/lib/ext/目下的所有 jar 应用类加载器(Application ClassLoader) 负责加载应用程序 classpath 目录下的所有 jar 和 class 文件。 ClassLoader 使用的是双亲委托模型来搜索类的,每个 ClassLoader 实例都有一个父类加载器的引用(不是继承的关系,是一个包含的关系),虚拟机内置的类加载器(Bootstrap ClassLoader)本身没有父类加载器,但可以用作其它 ClassLoader 实例的的父类加载器。当一个 ClassLoader 实例需要加载某个类时,它会试图亲自搜索某个类之前,先把这个任务委托给它的父类加载器,这个过程是由上至下依次检查的,首先由最...
相关文章
文章评论
共有0条评论来说两句吧...