Spring Boot Web

1.引入依赖(此依赖已经包含了spring-boot-starter)

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

在启动web时出现以下异常:
出现异常的原因是在引入正确依赖和添加了正确注解的情况下,jar包版本冲突所致。
解决方法(粗暴):新建项目,引入合适版本的依赖

 Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.

2.Spring boot web 的默认端口是8080,可以通过classpath下的application.properties文件进行配置

sever.port=8088

3.在进行测试时可以使用谷歌浏览器的postman插件进行测试。

4.在Spring4.3.0中有一个新特性 @GetMapping(value="/user/home"),相当于@RequestMapping(value="/user/home",method=RequestMethod.GET)。同样还有@PostMapping(value="/user/home")

5.可以使用在类上加@RestController注解的方式代替在每个Controller方法上加@ResponseBody

@RestController	//表明当前当前Controller的方法的返回值可以直接用于body的输出
public class UserController {
    
	@RequestMapping(value="/user/home",method=RequestMethod.GET)
	public String  home()
	{
		return "user home";
	}
}

6.在使用jsp时必须将页面放在src/main/webapp目录下,然后在application.properties中配置前缀和后缀

注意:Spring Boot默认是不支持JSP的,可以导入如下依赖

查找依赖的网站:https://search.maven.org/

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
	<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
spring.mvc.view.prefix=WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

在这里插入图片描述

7.在Eclipse中创建jsp文件 new->other(搜索jsp),在jsp中获取model中的值${}
在这里插入图片描述

8.在SpringBoot中使用freemarker模板需要引入依赖,然后去掉jsp的依赖和配置(前缀和后缀)

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

默认存放位置为classpath下的templates文件夹,默认的文件扩展名.ftl
可以在配置文件中使用 spring.freemarker.templateLoaderPath= 进行配置,具有多个路径时用逗号隔开。
在这里插入图片描述
在该模板中获取参数的方式和jsp几乎一样。

9.在Spring Boot默认的Servlet容器时Tomcat,如果想使用jeety,参考博客

10.在SpringBoot中访问静态资源
静态资源存放的位置:放在webapp下的静态资源可以直接进行访问
在这里插入图片描述
访问方式:http://localhost:8080/User.html

静态资源还可以放在以下路径之中:也可以直接进行访问

“classpath:/META-INF/resources/”, “classpath:/resources/”,“classpath:/static/”, “classpath:/public/”

classpath指的是:src/main/resources
访问路径:http://localhost:8080/login.html
在这里插入图片描述
注意:可以在配置文件application.properties中对默认加载的位置进行修改

spring.resources.staticLocations=classpath:/image  //默认记载classpath下的image文件夹中的静态资源

11.在SprinngBoot中使用Servlet
一种是通过配置类的形式servlet2.5以下只能使用此方式

另一种方式是通过@ServletComponentScan注解(servlet3.0特有的方式)的方式,具体步骤如下

步骤一:继承HttpServlet,并在类上使用@WebServlet注解

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/user.do")//servlet3.0的注解,为servlet映射访问路径
public class UserServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.getWriter().print("user......");
	}

}

步骤二:在启动类上用@ServletComponentScan注解对编写的servlet进行扫描

@ServletComponentScan//对编写的servlet进行扫描
@SpringBootApplication
public class APP
{   
	public static void main( String[] args )
    {
		ConfigurableApplicationContext context=SpringApplication.run(APP.class, args);
//	   SpringApplication app=new SpringApplication(App.class);
//	 
//	   ConfigurableApplicationContext context=app.run(args);
        //context.close();
    }
}

步骤三:访问 http://localhost:8080/user.do

12.在SpringBoot中使用Filter

同样有配置类和注解两种方式实现,如下是注解方式

步骤一:实现Filter 接口

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
@WebFilter("/user.do")//定义拦截的请求形式
public class loginFilter implements Filter {

	public void destroy() {

	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
			throws IOException, ServletException {
	
      System.out.println(arg0.getRemoteHost());
      arg2.doFilter(arg0, arg1);
	}

	public void init(FilterConfig arg0) throws ServletException {

	}

}

步骤二:测试 访问user.dao时会输出访问的主机号

@SpringBootApplication
public class APP
{   
	public static void main( String[] args )
    {
		ConfigurableApplicationContext context=SpringApplication.run(APP.class, args);
//	   SpringApplication app=new SpringApplication(App.class);
//	 
//	   ConfigurableApplicationContext context=app.run(args);
        //context.close();
    }
}

13.在SpringBoot中使用Listener 只需实现 ServletContextListener接口并在实现类上添加
@WebListener 注解即可
也可以通过配置类的形式进行使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值