在Springboot中使用freemarker的步骤:
1.在pom中加入依赖:
org.springframework.boot
spring-boot-starter-freemarker
2.默认的freemarker的模板文件在classpath:templates路径下,默认扩展名为ftl,可以在配置文件中更改其默认路径
spring:
freemaker:
templateLoaderPath: classpath:/ftl
在classpath路径下的ftl文件夹中保存模板文件
一般来说在一个应用中要么是用freemarker模板要么使用jsp,最好不要同时使用
如果不想使用Tomcat容器呢?
在spring-boot-starter-web依赖下排除tomcat容器
org.springframework.boot
spring-boot-starter-tomcat
然后再加入其他的web容器如jetty
org.springframework.boot
spring-boot-starter-jetty
如何在Springboot中访问静态资源:
放在webapp下的静态资源是可以直接访问的!
在org.springframework.boot.autoconfigure.web包下的ResourceProperties中可以发现默认的资源路径可以是
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
"classpath:/META-INF/resources/", "classpath:/resources/",
"classpath:/static/", "classpath:/public/" };
所以我们可以用这几个路径来存放一些静态资源
也可以通过
spring:
resources:
resources:
staticLocations: xxxx
配置修改默认静态资源路径
如何在Springboot使用servlet API:
在启动类上加入 @ServletComponentScan扫描Servlet组件
在Serlvet,Filter,Listener上分别标注注解
@WebSerlvet @WebFilter @WebListener
或者使用配置类 @SpringBootConfiguration
在此类中得到 ServletRegistrationBean来管理Servlet的beans
如何在Springboot中使用拦截器:
和Spring MVC类似 需要写一个Interceptor类去实现HandlerInterceptor然后需要写一个web配置类去继承WebMvcConfigurerAdapter,重写addInterceptors方法,将刚才创建的interceptor注册进去
@Configuration
public class WebConfiguration extends WebMvcConfigurerAdapter{
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LogHandlerInterceptor());
}
}
然后拦截器就可以正常使用了!
如何管理错误页面:
首先在静态资源可访问的路径下创建错误页面,如public/404.html,public/500.html
写一个Error注册类实现ErrorPageRegistrar接口来,创建ErrorPage对象,将对应的状态和写好的静态页面绑定,也可以用来捕获异常,非常类似web.xml中的配置。最后将ErrorPage对象注册到ErrorPageRegistry中即可,不要忘了加上 @Component!
@Component
public class CommonErrorPageRegistry implements ErrorPageRegistrar{
@Override
public void registerErrorPages(ErrorPageRegistry registry) {
ErrorPage e404 = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
ErrorPage e500 = new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html");
ErrorPage args = new ErrorPage(IllegalArgumentException.class,"args.html");
registry.addErrorPages(e404,e500,args);
}
}
全局异常处理:
在Controller中加入 @ExceptionHandler,如SpringMVC